mssql 資料庫與日誌的備份 與還原

2021-05-26 15:26:55 字數 2348 閱讀 3800

在使用資料庫的過程中,及時的進行資料庫的備份工作是很有必要的。

針對 mssql 2000, 我們有log explorer之類的工具,可以幫助備份與恢復資料庫, 但是這個比較的耗資源。

本身sqlserver 還提供了一組命令backup來進行同行的工作, 本文來描述一下這個命令的使用的語法。 更多的資訊,請參考msdn

對整個資料庫進行備份 :

backup database  

to [ ,...n ]

[ ] [ next-mirror-to ]

[ with ]

[;]

對特定的檔案或者是檔案組進行備份

backup database  

[ ,...n ]

to [ ,...n ]

[ ] [ next-mirror-to ]

[ with ]

[;]

對事務日誌進行備份

backup log  

to [ ,...n ]

[ ] [ next-mirror-to ]

[ with [ ,...n ] ]

[;]

下面就來對上面的具體的引數進行描述:

首先是備份的地方:backup_device, 可以是邏輯磁碟也可以是物理磁碟。

邏輯磁碟主要是針對做san或者是磁碟陣列的,可以對映到某個具體的物理磁碟,或者 直接就是物理磁碟。 

::= 

| =

}

其次,當備份特定的檔案或者是檔案組的時候, 檔案或者檔案組就是當前資料庫使用的檔案或者檔案組, 

::=

| filegroup =

}

還有就是 with 選項

1) 通用的with選項

[ ,...n ]::=--backup set options

copy_only

| | description =

| name =

| password =

| | retaindays = }

copy_only:

指定備份為「僅複製備份」,該備份不影響正常的備份順序.

用於執行特殊目的的備份,例如在進行聯機檔案還原前備份日誌

: 指定些備份是否壓縮, 2008才有備份壓縮。

name:  指定備份集的名稱

:指定允許覆蓋該備份的備份集的日期。如果同時使用這兩個選項,retaindays 的優先級別將高於 expiredate。

2) 介質選項

控制備份操作是追加到還是覆蓋備份介質中的現有備份集。預設為追加到介質中最新的備份集

noinit:表示備份集將追加到指定的介質集上,以保留現有的備份集,此選項是預設的

init:

指定應覆蓋所有備份集,但是保留介質標頭。如果指定了 init,將覆蓋該裝置上所有現有的備份集(如果條件允許)。預設情況下,backup 將檢查下列條件,如果其中的任一條件存在,都不會覆蓋備份介質:

指定是否應該在用於此備份操作的卷上寫入介質標頭,以覆蓋任何現有的介質標頭和備份集。

noformat

指定備份操作在用於此備份操作的介質卷上保留現的有介質標頭和備份集。這是預設行為。

format

指定建立新的介質集。format 將使備份操作在用於備份操作的所有介質卷上寫入新的介質標頭。卷的現有內容將變為無效,因為覆蓋了任何現有的介質標頭和備份集。

筆者使用的是每週一完整備份, 其餘每天差異備份。

完整備份

差異備份:

對master, msdb 和model db,要進行每天的備份

還原使用 backup 命令所做的備份。

1)  完整還原

restore database  

[ from [ ,...n ] ]

[ with

]| , [ ,...n ]

| , | , | , | , } [ ,...n ]

][;]

2) 還原特定的頁面

restore database  

[ ,...n ]

[ from [ ,...n ] ]

with

[ ,...n ]

[;]

3)從snapshot還原

restore database  

from database_snapshot = database_snapshot_name

MsSQL資料庫日誌清除

mssql資料庫使用久了後,日誌空間也逐步變大,備份時也占用大量的空間,此時建議在備份前先清除log,以下語句可以縮小所有資料庫的日誌空間 alter procedure dbo sp truncatelog asbegin declare name nvarchar 250 declare sql...

移動SQL SERVER資料庫的資料與日誌檔案位置

以下示例將移動乙個名為mydb的資料庫,該資料庫包含乙個資料檔案mydb.mdf和乙個日誌檔案mydblog.ldf。如果您要移動的資料庫還有其他資料或日誌檔案,請在儲存過程sp attach db中用乙個逗號分隔的列表將它們全部列出。無論資料庫包含多少檔案,儲存過程sp detach db都不會更...

msSQL資料庫備份還原小結

mssql自帶了乙個樣例資料庫pubs,就拿這個舉例好了。首先,來一次完全備份。對於資料量很大的資料庫,這樣的操作當然很費時間。所以我們採用每天凌晨4點一次完全備份,每個小時乙個差異備份,每分鐘一次日誌備份。這樣資料的丟失率就是一分鐘了。在企業管理器中右擊要備份的資料庫pubs 所有任務 備份資料庫...