資料庫版本 SQL SERVER 2012 企業版,版本號:11.0.5582.0 問題場景: 資料庫配置Alwayson環境,同機房2節點同步自動切換+跨機房非同步,在非同步機房中選取同一節點做完整備份和日誌備份,完整備份為COPY_ONLY方式,完整備份從0:35開始至1:40成功結束,日誌備份從0 ...
資料庫版本 SQL SERVER 2012 企業版,版本號:11.0.5582.0
問題場景: 資料庫配置Alwayson環境,同機房2節點同步自動切換+跨機房非同步,在非同步機房中選取同一節點做完整備份和日誌備份,完整備份為COPY_ONLY方式,完整備份從0:35開始至1:40成功結束,日誌備份從00:00開始每15分鐘一次日誌備份。DBA在0:48左右手動對資料庫日誌文件進行一次收拾操作,收縮操作順利完成,未報任何錯誤。主資料庫處於正常提供服務,每15分鐘產生約200MB的日誌備份文件(壓縮備份方式)。
下麵是備份出錯情況:
0:30 備份成功
0:45 備份成功
1:00 備份成功
1:15 備份失敗
1:30 備份失敗
1:45 備份成功
錯誤信息:
2017-01-16 01:15:09.59 *** 錯誤: 備份 對於 伺服器“SERVER_XXXX”失敗。 (Microsoft.SqlServer.SmoExtended) ***
2017-01-16 01:15:09.59 *** 錯誤: 執行 Transact-SQL 語句或批處理時發生了異常。(Microsoft.SqlServer.ConnectionInfo) ***
2017-01-16 01:15:09.59 *** 錯誤: 輔助副本上資料庫“DB_XXX”的日誌備份失敗,因為來自主資料庫的最後一個備份 LSN (0x000840fc:00000420:0001)大於當前本地重做 LSN (0x000840fc:00000418:0001)。此時不需要備份任何日誌記錄。請在以後重試該日誌備份操作。
BACKUP LOG 正在異常終止。(.Net SqlClient Data Provider) ***
該問題在無人干涉條件下自動恢復,因事務日誌備份作業失敗被髮現。
--=========================================================================--
原因猜測:
單獨對類似配置的資料庫做日誌文件收拾操作不會有類似問題,而單獨對類似配置的資料庫做COPY_ONLY也不會出現問題,很有可能是因為在做COPY_ONLY的完整備份時做日誌文件收拾導致。
雖然COPY_ONLY從字面意思上理解不會對日誌文件有任何影響,但完整備份期間會影響到CHECKPOINT操作,CHECKPOINT操作又影響到資料庫日誌,由於在輔助節點上進行完整備份,因此主節點和輔助節點之間必定達成一致來避免CHECKPOINT問題,但此時DBA手動執行資料庫日誌收縮被當成“一個事務日誌備份”來處理,因此報主資料庫最後一個備份LSN大於本地重做LSN。
最後當完整COPY_ONLY備份完成後,主資料庫上的最後一個備份LSN被調整會正確狀態,從而默默地修複了該問題。
--=========================================================================--
夜深啦,隨便找個妹子鎮貼,各位湊合下!