sql server 備份與恢復系列八 系統資料庫備份與恢復分析

来源:https://www.cnblogs.com/MrHSR/archive/2018/09/01/9544614.html
-Advertisement-
Play Games

一.概述 在前面講過"sql server 備份與恢復系列"都是集中在用戶資料庫上。sql server還維護著一組系統資料庫,這些系統資料庫對於伺服器實例的運行至關重要。在每次進行系統更新後必須備份多個系統資料庫。必須備份的系統資料庫包括:msdb,master,model。如果使用了複製,還要備 ...


一.概述

  在前面講過"sql server 備份與恢復系列"都是集中在用戶資料庫上。sql server還維護著一組系統資料庫,這些系統資料庫對於伺服器實例的運行至關重要。在每次進行系統更新後必須備份多個系統資料庫。必須備份的系統資料庫包括:msdb,master,model。如果使用了複製,還要備份distribution庫。備份以防止系統故障時,用於還原恢復。

  1.master資料庫介紹

    master資料庫記錄著所有系統級信息,如登錄賬戶,系統配置,端點和憑據,以及訪問其他資料庫伺服器需要的信息。還有記錄實例啟動時需要的初始化信息,其它資料庫主文件位置,master是sql server啟動時第一個打開的資料庫,如果master庫有問題,整個sql server無法正常啟動。
    master資料庫不大,建議經常做完整資料庫備份。如果因為master庫損壞無法啟動伺服器實例,又沒有備份,則必須重建。 重建後會刪除並重新創建msdb庫,導致丟失所有計劃信息以及備份和還原歷史記錄。sql server也被重裝過一樣。用戶記錄丟失,資料庫要再次附加,任務計劃要重建。是一件很折騰的過程。
    恢復master資料庫使用的還是restore指令。還原master資料庫後,sql server實例將自動停止。因為master記錄了所有資料庫主文件地址,通過這些地址尋找這些資料庫。如果將master資料庫恢復到一臺新的伺服器上,難免文件地址會發生變化,這時找不到地址,就需要使用單用戶模式啟動sql server,將master資料庫里的信息修改成新的地址。
    如果要啟動單用戶模式,首先停止所有sql server服務(伺服器實例本身除外),並停止所有sql server實用工具。否則單用戶啟動後它們占用了這個用戶連接,管理員反而連接不進去了。

  2.model資料庫

    當創建用戶資料庫時,model資料庫是sql server使用的模板。不推薦對該庫對任務修改。雖然該庫內容一般不發生變化,但sql server在啟動時候,需要使用model庫的某些設置創建新的tempdb。如果沒有tempdb ,實例無法啟動。
  3. msdb資料庫
    msdb存儲了計劃信息,備份和還原歷史記錄信息等。預設情況下,msdb資料庫使用簡單恢復模式。如果在恢復用戶資料庫時使用msdb資料庫中的備份與還原歷史記錄信息,建議對msdb資料庫使用完整恢復模式,並建議將msdb資料庫事務日誌放置在容錯存儲設備中。
  4. tempdb資料庫和資源資料庫
    sql server還有二個系統資料庫比較特別,是tempdb和資源資料庫Resource Database。缺了這兩個資料庫, sqlserver無法啟動,但它們又不能做資料庫備份。tempdb系統資料庫是一個全局資源,可供連接到sqlserver實例的所有用戶使用。每次啟動sqlserver,會重建tempdb庫,保持一個乾凈的副本。會話連接斷開後,會自動刪除該會話的臨時表。因此tempdb不會有什麼內容需要在伺服器關閉的時候保存下來。tempdb不用備份和還原操作,保護好model資料庫就能保證在下次啟動時,得到一個好的tempdb資料庫。
    Resource 資料庫是一個只讀資料庫,它包含了sql server中的所有系統對象。例如sys.objects。Resource 資料庫從來不做修改,所以sql server理論上不用備份Resource 資料庫。考慮到物理磁損壞,可以做基於文件的備份或基於磁碟的備份。

 二. 系統資料庫備份策略

-- 查看系統資料庫預設的恢復模式
SELECT name, recovery_model_desc FROM sys.databases

    

系統資料庫 說明 是否支持備份 恢復模式 註釋
 master  記錄sqlserver系統的所有系統級
信息的資料庫
 支持  簡單  必須經常備份,定期備份計劃,大量更新後補充備份。
 model 為所有資料庫創建的模板  支持  用戶可配置  根據需要創建完整資料庫備份,由於資料庫較小且
很少改動,因此不必備份日誌。
 msdb  sqlserver代理用來安排警報和作業
以及記錄操作員信息的資料庫。msdb
資料庫還包含歷史記錄表,例如備份和
還原歷史記錄表
 支持  簡單
(預設值)
 更新時備份msdb資料庫。
 Resource 所有系統對象副本的只讀資料庫   不支持    不能備份Resource資料庫。
 tempdb 用於保存臨時或中間集的工作空間,
啟動實例時會重新創建此庫,關閉服務
時永久刪除tempdb資料庫中所有數據
 不支持  簡單  無法備份tempdb資料庫。
 distribution

 複製分發伺服器時才存在此資料庫。
存儲元數據,各種複製的歷史記錄數據
以及用於事務複製的事務

 支持  簡單  根據具體的複製配置決定。

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 變數名 含義 ARGC 命令行變元個數 ARGV 命令行變元數組 FILENAME 當前輸入文件名 FNR 當前文件中的記錄號 FS 輸入域分隔符,預設為一個空格 RS 輸入記錄分隔符 NF 當前記錄里域個數 NR 到目前為止記錄數 OFS 輸出域分隔符 ORS 輸出記錄分隔符 1、awk '/10 ...
  • Linux Namespaces機制提供一種資源隔離方案。 PID,IPC,Network等系統資源不再是全局性的,而是屬於特定的Namespace。每個Namespace裡面的資源對其他Namespace都是透明的。 要創建新的Namespace,只需要在調用clone時指定相應的flag。 Li ...
  • 常見的linux指令 1、ls ll 查看文件信息 2、cd 切換工作目錄 cd 或 cd ~ 切換到/home/用戶目錄 cd. 切換到當前目錄 cd.. 切換到上級目錄 cd- 切換入上次所在的目錄 3、clear 或 ctrl + l 清屏 4、pwd 顯示當前路徑 5、mkdir 創建目錄 ...
  • 初學mysql時,可能不太明白delimiter的真正用途,delimiter在mysql很多地方出現,比如存儲過程、觸發器、函數等。 學過oracle的人,再來學mysql就會感到很奇怪,百思不得其解。 其實就是告訴mysql解釋器,該段命令是否已經結束了,mysql是否可以執行了。預設情況下,d ...
  • 當MySQL單表記錄數過大時,增刪改查性能都會急劇下降,可以參考以下步驟來優化:除非單表數據未來會一直不斷上漲,否則不要一開始就考慮拆分,拆分會帶來邏輯、部署、運維的各種複雜度,一般以整型值為主的表在千萬級以下,字元串為主的表在五百萬以下是沒有太大問題的。而事實上很多時候MySQL單表的性能依然有不... ...
  • FOREIGN KEY約束添加規則 1、外鍵約束並不僅僅可以與另一表的主鍵約束相鏈接,它還可以定義為引用另一個表中 UNIQUE 約束的列。 2、如果在 FOREIGN KEY 約束的列中輸入非 NULL 值,則此值必須在被引用列中存在;否則,將返回違反外鍵約束的錯誤信息。 若要確保驗證了組合外鍵約 ...
  • 問題: 解決方案: 在PHP 代碼中 輸入 ; 完美解決: ...
  • 問題:[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ' which ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...