程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> SQL Server誤區30日談 第7天 一個實例多個鏡像和日記傳送延遲

SQL Server誤區30日談 第7天 一個實例多個鏡像和日記傳送延遲

編輯:MSSQL

SQL Server誤區30日談 第7天 一個實例多個鏡像和日記傳送延遲。本站提示廣大學習愛好者:(SQL Server誤區30日談 第7天 一個實例多個鏡像和日記傳送延遲)文章只能為提供參考,不一定能成為您想要的結果。以下是SQL Server誤區30日談 第7天 一個實例多個鏡像和日記傳送延遲正文


誤區 #20:在損壞日記備份鏈以後,須要一個完全備份來從新開端日記鏈
毛病

事務日記備份會備份自前次事務日記備份以來一切的事務日記(假如歷來沒有過日記備份的話,那就從上一次完全備份開端)。有好幾品種型的操作會中止事務日記的持續性,也就是說除非從新開端新的日記鏈,SQL Server沒法再停止日記備份。上面這幾種操作都有能夠惹起日記鏈斷裂:

由完全恢復形式或年夜容量事務日記恢復形式轉為簡略恢復形式
從數據庫鏡像停止恢復
備份日記時指定了NO_LOG 或 WITH TRUNCATE_ONLY(還好在SQL Server 2008中這個選項被撤消了)

更多請看:post BACKUP LOG WITH NO_LOG - use, abuse, and undocumented trace flags to stop it

經由過程上面的例子對此停止論述:


CREATE DATABASE LogChainTest;
GO
ALTER DATABASE LogChainTest SET RECOVERY FULL;
GO
BACKUP DATABASE LogChainTest TO DISK = 'C:\SQLskills\LogChainTest.bck' WITH INIT;
GO
BACKUP LOG LogChainTest TO DISK = 'C:\SQLskills\LogChainTest_log1.bck' WITH INIT;
GO
ALTER DATABASE LogChainTest SET RECOVERY SIMPLE;
GO
ALTER DATABASE LogChainTest SET RECOVERY FULL;
GO

成果是:

已為數據庫 'LogChainTest',文件 'LogChainTest' (位於文件 1 上)處置了 168 頁。
已為數據庫 'LogChainTest',文件 'LogChainTest_log' (位於文件 1 上)處置了 2 頁。
BACKUP DATABASE 勝利處置了 170 頁,消費 0.224 秒(5.916 MB/秒)。
已為數據庫 'LogChainTest',文件 'LogChainTest_log' (位於文件 1 上)處置了 3 頁。
BACKUP LOG 勝利處置了 3 頁,消費 0.121 秒(0.137 MB/秒)。

我起首創立了一個數據庫,將其設置為完全恢復形式,這個是日記鏈的終點,然後轉為簡略恢復形式,再轉為完全恢復形式。
上面我再測驗考試停止日記備份

BACKUP LOG LogChainTest TO DISK = 'C:\SQLskills\LogChainTest_log2.bck' WITH INIT;
GO

則會獲得以下報錯信息:

新聞 4214,級別 16,狀況 1,第 1 行
沒法履行 BACKUP LOG,由於以後沒稀有據庫備份。
新聞 3013,級別 16,狀況 1,第 1 行
BACKUP LOG 正在異常終止。

SQL Server曾經記載了我損壞日記鏈的操作和與停止日記 備份沒法備份自前次日記備份以來一切的日記,所以SQL Server不許可我停止日記備份。
這個誤區是說此時就須要完全備份能力恢復日記鏈,但現實上,我只須要做一個差別備份(這個差別備份的跨度跨越日記鏈斷裂的間隙),代碼以下:

BACKUP DATABASE LogChainTest TO DISK = 'd:\Test_bak\LogChainTest_log1.bck' WITH INIT, DIFFERENTIAL;
GO
BACKUP LOG LogChainTest TO DISK = 'd:\Test_bak\LogChainTest_log1.bck' WITH INIT;
GO

獲得的成果:

已為數據庫 'LogChainTest',文件 'LogChainTest' (位於文件 1 上)處置了 64 頁。
已為數據庫 'LogChainTest',文件 'LogChainTest_log' (位於文件 1 上)處置了 1 頁。
BACKUP DATABASE WITH DIFFERENTIAL 勝利處置了 65 頁,消費 0.119 秒(4.267 MB/秒)。
已為數據庫 'LogChainTest',文件 'LogChainTest_log' (位於文件 1 上)處置了 1 頁。
BACKUP LOG 勝利處置了 1 頁,消費 0.052 秒(0.150 MB/秒)。

不能不說這類方法更Cool一些,由於你不再須要一個完全備份能力持續停止日記備份。
假如你的備份戰略中包括了文件或是文件組的備份,你乃至只須要單個文件的差別備份就可以持續停止日記備份。但條件是這個備份的跨度跨越了斷裂LSN的長度,固然這是更深的話題了。
又揭露了一個誤區!
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved