轉 SQL檔案組備份和還原(二)

2021-09-06 04:14:09 字數 2072 閱讀 9091

from :

上次關於sql檔案組的備份和還原似乎意猶未盡,我總覺得好像欠些什麼。做了尾日誌備份,是為了能將資料庫還原到故障發生時的那個點。但如果沒有發生故障,而是因為誤操作,想還原到前面的乙個點呢,當然,同樣要先做尾日誌備份,否則還原會出錯,但是還原的時候不要還原尾日誌了。

我建了乙個測試資料庫test,兩個檔案組,primary和fg1,fg1為預設檔案組,

(1)先在fg1建了乙個表grade,然後對兩個檔案組都做了乙個完整備份(基備份)。

(2)然後對錶grade插入一些資料,再做了乙個事務日誌備份。

(3)又在fg1建了乙個表mark。

(4)對兩個檔案組都做了差異備份。

(5)對錶mark插入10條記錄。

(6)做事務日誌備份。

(7)對錶再插入10條記錄。

(8)做事務日誌備份。

備份資訊如下圖:

現在我想將資料庫還原到第(6)步時的狀態。

use master

gorestore database test

filegroup='primary'

from myback1,myback2

with file=1,norecovery

gorestore database test

filegroup='fg1'

from myback1,myback2

with file=2,norecovery

gorestore database test

filegroup='primary'

from myback1,myback2

with file=4,norecovery

gorestore database test

filegroup='fg1'

from myback1,myback2

with file=5,norecovery

gorestore log test

from myback1,myback2

with file=6,recoverygo

這一步我測試成功。

有一點要注意的是:不管你要備份哪個檔案組,主檔案組primary一定要先備份,不然以後在備份其他檔案組的差異備份就會報錯,提示基備份不存在。因為主檔案組包含主資料檔案,用於儲存資料庫的啟動資訊和元資料,包括系統表和物件。

在上面的測試當中,在完整檔案組備份和差異備份之間還有一次事務日誌備份,在還原的時候這個事務日誌並沒有還原。但是,但是如果在那次事務日誌備份之後沒有對主檔案組進行差異備份,而僅僅對檔案組fg1進行了差異備份,那麼在還原的時候這個日誌一定要還原,而且是在完整檔案組備份還原後就得還原(按順序進行),否則在還原後面的事務日誌時就會提示你這個日誌太晚,不能應用於資料庫的錯誤資訊。

還原變成如下:

use master

gorestore database test

filegroup='primary'

from myback1,myback2

with file=1,norecovery

gorestore database test

filegroup='fg1'

from myback1,myback2

with file=2,norecovery

gorestore 

log test

from myback1,myback2

with file=3,norecovery

gorestore database test

filegroup='fg1'

from myback1,myback2

with file=5,norecovery

gorestore log test

from myback1,myback2

with file=6,recoverygo

所以在還原檔案或檔案組的時候,還原完最近的差異備份後,事務日誌一定要緊接著還原,如果完整備份之後沒有再進行差異備份,那麼還原完完整備份後,事務日誌一定也要歡原。

轉 SQL檔案組備份和還原

from 如果乙個資料庫比較大的時候,一般會包含多個檔案組,由於備份還原是個很耗資源和時間的事情,所以檔案組的備份和還原成了另外一種選擇。在建立帶有多個檔案組的時候,建議將使用者資料放在輔助檔案組中,就是將其中乙個檔案組設定為預設,而不是用primary作為預設的檔案組 create databas...

檔案及檔案組備份與還原示例 sql

以下 簡單地演示了如何進行檔案組的備份及還原 在還原時,模擬了丟失第二次檔案組備份檔案的情況 建立測試資料庫 create database db on primary name db data filename c db data.mdf filegroup db fg1 name db fg1 ...

轉 SQL的完整備份和還原

from 對於資料庫來說,備份和還原無疑是非常重要的。今天就在自己的機器上學習並操作了一下,總結一下。我用的是2005,今天先總結的是完整資料庫備份和還原。1 首先先建立備份裝置 exec sp addumpdevice disk myback1 d backup myback1.bak goexe...