Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

SQL Server 災難恢復頂級技巧:超越資料庫鏡像的完整策略

編輯:關於伺服器

核心觀念:容錯移轉只是戰役的一半

Log Shipping、Replication、Database Mirroring、Always On 可建立備援資料庫,但應用程式能否無縫切換,取決於資料庫外部的相依性是否已預先就緒。

關鍵外部相依性清單

  • 登入與使用者:SQL 驗證登入的 SID 必須同步,否則資料庫使用者變成「孤立使用者」
  • SQL Agent 作業:備份、維護、ETL 排程
  • SSIS/DTS 套件:儲存於 MSDB 或檔案系統
  • 連結伺服器:跨實例查詢設定
  • 系統資料庫物件:master 中的登入、msdb 中的作業、model 中的預設設定
  • 同名資料庫衝突:多租戶環境需規劃命名空間
  • 檔案路徑與權限:資料/記錄檔路徑、服務帳號 NTFS 權限
  • 應用程式連接字串:DNS 別名、多子網故障轉移支援

登入同步最佳實踐

方案 A:sp_help_revlogin 指令碼(微軟官方)

在主庫執行 sp_help_revlogin 產生含 SID、密碼雜湊的 CREATE LOGIN 指令碼,於備援伺服器執行,完美保留 SID 映射關係。

方案 B:Contained Database(SQL 2012+)

啟用 CONTAINMENT = PARTIAL,使用者直接在資料庫層級建立,無需實例級登入,故障轉移零同步負擔。

方案 C:臨時修復孤立使用者

USE YourDB;
EXEC sp_change_users_login 'UPDATE_ONE', 'DBUser', 'LoginName';

預先部署清單

  1. 將所有 Agent 作業、SSIS 套件、連結伺服器腳本化,納入版控
  2. 建立「故障轉移驗證腳本」:檢查登入、作業、連結伺服器、磁碟空間、服務狀態
  3. 使用 DNS CNAME 或 SQL Client Alias 指向生產實例,切換時只改 DNS/IP,應用端零修改
  4. 定期演練:每季模擬故障轉移,記錄 RTO/RPO 實測值

拉丁諺語啟示

Si vis pacem, para bellum —— 若想要安寧,須先備戰。災難恢復的本質,是在平時把「戰時」需要的一切都準備妥當。

Copyright © Windows教程網 All Rights Reserved