《SQL Server企業級平台管理實踐》讀書筆記——幾個系統庫的備份與恢複

來源:互聯網
上載者:User

標籤:style   blog   http   io   color   os   使用   sp   strong   

原文:《SQL Server企業級平台管理實踐》讀書筆記——幾個系統庫的備份與恢複

master資料庫

master作為資料庫的主要資料庫,記錄著SQL Server系統的所有系統級資訊,例如登入使用者、系統配置設定、端點和憑證以及訪問其他資料服務器所需要的資訊。master資料庫還記錄著啟動伺服器執行個體所需要的初始化資訊,每個其它資料庫的主檔案位置。master資料庫是SQL Server啟動的時候開啟的第一個資料庫。SQL Server是從這個資料庫裡找到其它資料的資訊的。如果master資料庫有問題,整個SQL Server都將無法啟動。

master資料庫本身不大,做一次備份很快。建議要經常做master的完整Database Backup,以充分保護您的資料。如果master資料庫已損壞,可以通過還原master資料庫的最近完整Database Backup,輕鬆修複已損壞的資料庫。

如果由於master資料庫損壞嚴重大無法啟動伺服器執行個體,有沒有備份,這時候只能重建了。重建master資料將使的所有的系統資料庫恢複到其原始狀態。例如,重建master資料庫會刪除並重新建立msdb資料庫。這將導致丟失所有的計劃資訊以及備份與還原記錄。所以重建master資料庫後,SQL Server就像被重裝過一樣。所有的使用者記錄都會丟失,使用者資料庫需要再次附加,SQL Server任務記錄都要重建。這是一個很折騰的過程。重建master資料庫是個萬不得已的選擇。

在執行任何語句或系統過程中來更改master資料庫中的資訊以後(例如,更改伺服器範圍的配置選項以後),應備份master資料庫。如果在更改master資料庫後沒有進行備份,則自上次備份以來的更改都將在還原備份時丟失。

一下行為會更改master中中繼資料:

1、建立或刪除使用者資料庫,這裡不包括使用者資料庫自動成長以容納新資料時,master資料時不受影響的。

2、添加或刪除檔案和檔案組

3、添加登入或其它與登入安全相關的操作,這裡不包括對資料庫層面的操作,比如添加使用者

4、更改伺服器範圍的配置選項或資料庫配置選項

5、建立或刪除邏輯備份裝置

6、配置用於分散式查詢和遠端程序呼叫(RPC)的伺服器,如添加連結的伺服器或遠程登入。

恢複master資料庫使用還是RESTORE指令。可是還原master資料庫後,SQL Server執行個體將自動停止。我們前面講過,master裡面記錄了其他所有資料庫主檔案的地址。SQL Server通過這個地址來尋找這些資料庫。如果我們將master資料庫恢複到一台新的伺服器上,難免檔案地址會有所變化。這時SQL Sever將找不到其它資料庫。需要使用單一使用者模式啟動SQL Server,將master資料庫裡資訊修改成新的地址。

開啟單一使用者模式,需要停止所有SQL Server服務(伺服器執行個體本身除外),並停止所有SQL Server工具 + 生產力(SQL Server代理,報表伺服器等)。停止服務和工具 + 生產力可以防止他們嘗試訪問伺服器執行個體。否則單使用者啟動後,他們會佔用這個使用者串連,管理員反而串連不進去了。

model 資料庫

建立使用者資料庫時,model資料庫是SQL Server使用的模板。model資料庫的全部內容(包括資料庫選項)都會被複製到新的資料庫。所以這個資料庫是推薦做任何修改的。除非有目的的建立一些模板,否則不要去更改這個資料庫,也不要把任何使用者資料放在這個資料庫裡。

雖然這個資料庫的內容一般不發生變化,但是在SQL Server啟動的時候,要使用model資料庫的某些設定建立新的tempdb。如果沒有tempdb,SQL Server將無法啟動。因此model資料庫必須始終存在於SQL Server系統中。所以這個資料庫也要備份。

還原model資料庫與對使用者資料執行完整資料庫還原過程一樣。

msdb資料庫

msdb資料庫用來儲存計劃資訊以及備份與還原記錄的資訊,所以SQL Server本身,ssms和Agentd都要用到它。

SQL Server將在msdb資料庫中自動維護一份完整在下備份與還原記錄。這些資訊包括執行備份一方的名稱、備份時間和用來儲存備份的裝置或檔案。SSMS利用這些資訊提出計劃還原資料庫並應用交易記錄備份。將會記錄有關所有Database Backup事件,即使他們由自訂程式或第三方建立的。例如,如果使用C#程式調用SQL Server執行備份操作時,所有的事件都將記錄在msdb系統資料表、windows應用程式記錄檔和SQL Server錯誤記錄檔中。而SQL Server代理使用的所有計劃資訊。包括計劃的定義、排程、曆史日誌等資訊。

預設情況下,msdb資料庫使用簡單復原模式。如果要恢複使用者資料庫時使用msdb資料庫中的所有備份與還原記錄資訊,建議對msdb資料庫使用完整復原模式,並建議考慮將msdb資料庫交易記錄放置在容錯存放裝置中。

tempdb臨時庫和資源資料庫(Resource Databse)

SQL Server還有兩個系統資料庫比較特別。他們是tempdb和資源資料庫。缺了這個兩個資料庫SQL  Server頁將無法啟動。但是這兩個庫不能做Database Backup。

temdp系統資料庫是一個全域資源。可供串連到SQL Server執行個體的所有使用者使用。

每次啟動SQL Server時都會重建tempdb資料庫,從而在系統啟動時總保持一個乾淨的資料庫副本。串連斷了以後,SQL Server會自動刪除暫存資料表和預存程序。因此tempdb資料庫中不會有什麼內容需要在服務關閉的時候儲存下來。只要有乾淨的model資料庫就可以。SQL Server都能夠建立出一個tempdb資料庫。Temdp資料本身倒不用備份。SQL Server同樣也沒有提供對tempdb資料庫的備份與還原操作。保護好model資料庫,就能保證在下次啟動時,得到一個好的tempdb資料庫。所以對tempdb資料庫保護,轉為了對model資料庫的保護。

Resource資料時一個唯讀資料庫。它包含了SQL Server中所有的系統對象。系統對象(例如sys.objects)在物理上存在於Resource資料庫中。但是在邏輯上,他們出現在每個資料庫的sys結構中。Resource資料庫不包含任何使用者或使用者中繼資料。對於同一個版本的SQL Server。他們的Resource資料庫應該都是一樣的。

預設在執行個體下是看不到資產庫的,但是Resource資料庫的物理存在的,物理檔案名稱為mssqlsystemresource.mdf和mssqlsystemresource.ldf。預設情況下,這些檔案儲存體於目錄:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL

在群集中,Resource資料庫位於共用磁碟中的Data檔案夾中。其實Resource資料庫依賴於master資料庫位置。如果管理員移動了master資料庫,則必須也將Resource資料庫移動到相同的位置。

因為Resource資料庫從來不做修改,所以SQL Server理論上不用備份的。但是管理員不但要考慮SQL Server層面的問題。還要考慮整個系統層面的問題。難免物理磁碟損壞會發生,使得檔案出現損壞。所以要通過將mssqlsystemresource.mdf檔案作為二進位檔案,做基於檔案的備份或基於磁碟的備份。恢複時要將SQL 服務停止。手段還原mssqlsystemresource.mdf的檔案備份副本。並且必須謹慎,不同版本的Resource資料庫會不一樣。是要使用到期版本或可能不安全的版本覆蓋當前Resource資料庫。

 我們集中列舉下

系統資料庫 說明   是否支援備份 復原模式 注釋
master 記錄SQL Server系統的所有系統層級資訊的資料庫 支援 簡單

必須經常備份Master資料庫,以便根據業務需要充分

保護資料。建議使用定期備份計劃,這樣在大量更新

之後可以補充更多的備份

model 在SQL Server執行個體上為所有資料庫建立的模板 支援 使用者可配置

僅在業務需要時備份model資料庫,例如自訂其資料

庫選項後立即備份。最佳方法是:建議根據需要建立

model資料庫完整性Database Backup。由於model資料庫較小

而且很少更改,因此無需備份日誌

msdb  

SQL Server代理用來安排警示和作業以及記錄操作員

資訊的資料庫。msdb資料庫還包含記錄表,例如

備份與還原記錄表

支援 簡單(預設值) 更新時備份msdb資料庫
Resource(RDB)

包含SQL Server附帶的所有系統對象副本的唯讀

資料庫

不支援  

Resource資料庫位於mssqlsystemresource.mdf檔案中,

該檔案近包含代碼。因此,SQL Server不能備份Resource資料庫。

但是可以通過檔案備份和磁碟備份,同樣還原的時候不通過SQL Server,

還原這些備份,只能手動還原mssqlsystemresource.mdf的備份副本,

並且必須謹慎,不要使用到期版本或可能不安全的版本覆蓋當前的Resource資料庫

tempdb

 用於儲存曆史或中間結果集的工作空間,

每次啟動SQL Server執行個體時都會重建該庫,服務

器執行個體關閉時,將永久刪除Tempdb資料庫中的所有資料

不支援 簡單

 無法備份tempdb系統資料庫

distribution

 只有將伺服器配置為複製散發者時才存在

此資料庫。此資料庫儲存中繼資料庫、各種複製的記錄資料以及用於事務複製的事務

支援 簡單

 根據您具體的複製配置決定

《SQL Server企業級平台管理實踐》讀書筆記——幾個系統庫的備份與恢複

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.