1. 程式人生 > >SQL Server2008資料庫的維護 (第四部分)

SQL Server2008資料庫的維護 (第四部分)

4.1離線與聯機資料庫

Online: 可以對資料庫進行訪問

Offline: 資料庫無法使用

檢視資料庫狀態的方法:

1)使用查詢語句查詢

SELECT state_desc FROM sys.databases WHERE NAME = 'E_Market'

2)使用DATABASEPROPERTYEX(database, property)函式

SELECT DATABASEPROPERTYEX('E_Market', 'status')

離線:斷開資料庫與所有人的連線;資料庫名在資料庫節點中存在;不能執行任何有效的資料庫操作

注意:如果需要拷貝mdf或者ndf檔案,只有在資料庫離線的狀態下才可以

聯機:資料庫處在可操作,可查詢的狀態(不能對資料庫檔案進行遷移和複製)

4.1.1使用資料庫聯機文件

連線上資料庫如下

按F1鍵開啟聯機文件->點選索引->然後再查詢框裡輸入需要尋找的欄位,如”資料庫狀態

4.2分離與附加資料庫

分離與附加資料庫的方式

4.2.1在檢視下分離與附件資料庫

附加時選擇新增時,只選擇主資料檔案.mdf即可

4.2.2使用儲存過程分離與附加資料庫

分離資料庫: EXEC [email protected] = E_Market

附加資料庫: EXEC [email protected]

= E_Market, @filename1 = ‘E:\Project\E_Market_data.mdf’, @filename2 = ‘E:\Project\E_Market_log.ldf’

4.2.3離線與分離資料庫的異同點

不同點:

離線:與資料庫服務斷開連線,但在資料庫節點上還存在離線的資料庫名稱

分離:將資料庫從伺服器上分離出去,資料庫不存在,只存在對應的資料檔案和日誌檔案

相同點:

都可以對資料庫檔案進行賦值等操作

4.3收縮資料庫

收縮資料庫:刪除資料庫的每個檔案中已經分配但還沒有使用的頁;收縮後資料庫空間自動減少

收縮方式:自動收縮資料庫;手動收縮資料庫

自動收縮

SQL Server每半個小時檢查一次檔案使用情況,如果空閒空間大於25%,那麼就會自動收縮,防止資料庫有過多的空間而不使用

手動收縮

1)收縮資料庫

執行完後記得重新整理資料庫

2)收縮檔案

4.4資料庫的備份與還原(完整備份與還原)

SQL Server提供四種資料庫備份方式

1)完整備份:備份整個資料庫的所有內容包括事務日誌

2)差異備份:只備份上次完整備份後更改的資料部分

3)事務日誌備份:只備份事務日誌裡的內容

4)檔案或檔案組備份:只備份檔案或檔案組中的某些檔案

在資料庫完整備份期間,SQL Server做一下工作

1)備份資料及資料庫中所有表的結構和相關的檔案結構

2)備份在備份期間發生的所有活動

3)備份在事務日誌中未確認的事務

4.4.1資料庫完整備份

備份資料庫所有物件,缺點是時間較長,備份的檔案較大

4.4.2資料庫還原

首先刪除E_Market資料庫

資料庫檔案也一併被刪除

還原E_Market: 使用完整備份的E_Market.bak檔案

4.5資料庫的備份與還原(差異備份與還原)

差異備份:是完整備份的補充;備份上次完整備份以來的資料變動的部分。

5:00中執行完整備份1,6點鐘執行差異備份1,7點鐘執行差異備份2。如果要恢復資料庫在7:00的狀態,則首先需要恢復完整備份1,接著恢復差異備份2,即可恢復資料庫至7:00狀態

差異備份如下圖:

如果還原資料庫:還原完整備份資料庫沒有問題,但是還原差異備份資料庫時報如下錯誤:

無法還原日誌備份或差異備份,因為沒有檔案可用於前滾

解決辦法:首先刪掉剛才還原的資料庫(完整備份還原)

接著再次執行完整備份還原,注意勾選如下選項:

接著再還原差異備份資料庫就不會報錯了。