SQLServerDatabase Backup測試)

來源:互聯網
上載者:User

--建立測試
CREATE DATABASE db
GO

--正常備份
BACKUP DATABASE db TO DISK='c:\1.bak' WITH FORMAT
BACKUP LOG db TO DISK='c:\2.bak' WITH FORMAT
BACKUP LOG db TO DISK='c:\3.bak' WITH FORMAT
BACKUP DATABASE db TO DISK='c:\4.bak' WITH FORMAT
BACKUP DATABASE db TO DISK='c:\5.bak' WITH FORMAT,DIFFERENTIAL
BACKUP LOG db TO DISK='c:\6.bak' WITH FORMAT
GO

--下面是用於記錄備份和差異備份還原中易犯的錯誤

--1. 恢複時使用錯誤的日誌順序
IF DB_ID('db') IS NOT NULL DROP DATABASE db
RESTORE DATABASE db FROM DISK='c:\1.bak' WITH NORECOVERY
RESTORE LOG db FROM DISK='c:\3.bak'
/*--收到資訊
伺服器: 訊息 4305,層級 16,狀態 1,行 5
此備份組中的日誌開始於 LSN 6000000002800001,該 LSN 太晚,無法應用到資料庫。包含 LSN 6000000002500001 的較早的記錄備份可以還原。
--*/
GO

--2. 恢複時,將記錄備份應用於錯誤的完全備份
IF DB_ID('db') IS NOT NULL DROP DATABASE db
RESTORE DATABASE db FROM DISK='c:\4.bak' WITH NORECOVERY
RESTORE LOG db FROM DISK='c:\2.bak'
/*--收到錯誤資訊
伺服器: 訊息 4326,層級 16,狀態 1,行 5
此備份組中的日誌終止於 LSN 6000000002800001,該 LSN 太早,無法應用到資料庫。包含 LSN 6000000003000001 的較新的記錄備份可以還原。
--*/
GO

--3. 將記錄備份用於RESTORE DATABASE
IF DB_ID('db') IS NOT NULL DROP DATABASE db
RESTORE DATABASE db FROM DISK='c:\2.bak' WITH NORECOVERY
/*--收到錯誤資訊
伺服器: 訊息 3135,層級 16,狀態 2,行 4
檔案 'c:\2.bak' 中的備份組是由 BACKUP LOG 建立的,無法用於此還原作業。
--*/
GO

--4. 將差異備份用於RESTORE LOG
IF DB_ID('db') IS NOT NULL DROP DATABASE db
RESTORE DATABASE db FROM DISK='c:\4.bak' WITH NORECOVERY
RESTORE LOG db FROM DISK='c:\5.bak'
/*--收到錯誤資訊
伺服器: 訊息 3135,層級 16,狀態 2,行 3
檔案 'c:\5.bak' 中的備份組是由 BACKUP DATABASE WITH DIFFERENTIAL 建立的,無法用於此還原作業。
--*/
GO

--5. 將差異備份用於錯誤的完全備份中
IF DB_ID('db') IS NOT NULL DROP DATABASE db
RESTORE DATABASE db FROM DISK='c:\1.bak' WITH NORECOVERY
RESTORE DATABASE db FROM DISK='c:\5.bak'
/*--收到錯誤資訊
伺服器: 訊息 3136,層級 16,狀態 1,行 3
無法將裝置 'c:\5.bak' 上的備份應用於資料庫 'db'。
--*/
GO

--6. 直接使用記錄備份或者差異備份還原
IF DB_ID('db') IS NOT NULL DROP DATABASE db
RESTORE DATABASE db FROM DISK='c:\5.bak'
RESTORE LOG db FROM DISK='c:\2.bak'
/*--收到錯誤資訊
伺服器: 訊息 913,層級 16,狀態 8,行 3
未能找到 ID 為 65535 的資料庫。可能該資料庫尚未啟用,也可能正在轉換過程中。
--*/
GO

--7. 還原完全備份時,未使用NORECOVERY,導致不能正確還原記錄備份或者差異備份
IF DB_ID('db') IS NOT NULL DROP DATABASE db
RESTORE DATABASE db FROM DISK='c:\1.bak'
RESTORE LOG db FROM DISK='c:\2.bak'
/*--收到錯誤資訊
伺服器: 訊息 4306,層級 16,狀態 1,行 4
先前的還原作業未指定 WITH NORECOVERY 或 WITH STANDBY。請在除最後步驟之外的所有其他步驟中指定 WITH NORECOVERY 或 WITH STANDBY 後,重新啟動該還原序列。
--*/
GO

--刪除測試
IF DB_ID('db') IS NOT NULL DROP DATABASE db

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.