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]
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狀態
差異備份如下圖:
如果還原資料庫:還原完整備份資料庫沒有問題,但是還原差異備份資料庫時報如下錯誤:
“無法還原日誌備份或差異備份,因為沒有檔案可用於前滾”
解決辦法:首先刪掉剛才還原的資料庫(完整備份還原)
接著再次執行完整備份還原,注意勾選如下選項:
接著再還原差異備份資料庫就不會報錯了。