在SQL Server中,使用Database Backup和還原工具可以建立資料庫的拷貝,將該拷貝放到安全的地方,當伺服器崩潰或資料被破壞時,該拷貝就可以用於還原資料庫。這就是我們本篇文章要說的備份和恢複。
(1)完整備份與恢複
製作資料庫中所有內容的副本,在備份過程中需要花費的時間和空間最多,不宜頻繁進行
恢複時,僅需要恢複最後一次全庫備份即可
備份:backup database 資料庫名 to 備份裝置名 with [name='備份的名稱'][init /noinit]
backup database MagDB to MagDb_1 with init
恢複:restore database 資料庫名 from 備份裝置名 with [norecovery/recovery]
restore database MagDbfrom MagDb_1with norecovery
(2)差異(增量)備份與恢複
只備份最後一次全庫備份後被修改的資料,備份的時間和空間較少
恢複時,先恢複最後一次完整備份,再恢複最後一次差異備份
備份:backup database 資料庫名 to 備份裝置名 with differential [name='備份的名稱']
backup database MagDb to MagDb_1 defferential
恢複:restore database 資料庫名 from 備份裝置名 with [norecovery/recovery]
restore database MagDbfrom MagDb_1with file =2,recovery
(3)交易記錄備份與恢複
只備份最後一次記錄備份後所有的交易記錄記錄,備份時所用的時間和空間更少
恢複時,可以指定恢複到某一事務;可以將其恢複到某個破壞性操作執行前的一個事務,這是全庫備份和差異備份所不能做到的,但利用記錄備份進行恢複時,需要重新執行日誌記錄中的修改命令,來恢複資料庫中的資料,所以通常恢複的時間較長;先恢複最後一次全庫備份,再恢複最後一次差異備份,再順序恢複最後一次差異備份以後進行的所有交易記錄備份
備份:backup log 資料庫名 to 備份裝置名 with init/noinit
backup log DocDb to disk='c:\databak\DocDb_1.bat'
恢複:restore log 資料庫名 from 備份裝置名 with [norecovery/recovery]
restore log DocDbfrom disk='c:\databak\DocDb1.bat'
(4)檔案和檔案組備份與恢複
備份某個資料庫檔案或資料庫檔案組,必須與交易記錄結合才有意義
恢複時,使用交易記錄,使所有的資料檔案恢複到同一個時間點
備份:backup database 資料庫名 file='檔案的邏輯名稱'(filegroup) to 備份裝置名 with init/noinit
backup database DocDb file='DocDb_Data'to disk='c:\databak\Docfile1.dat'
恢複:restore database 資料庫名 file='檔案的邏輯名稱'(filegroup) from 備份裝置名
restore database DocDbfile="DocDb_Data"from disk="c:\databak\Docfile1.dat"
讓您的資料萬事無憂吧,做好備份,恢複,易如反掌。