我正確地故障轉移到鏡像數據庫時遇到問題。當我連接到主體數據庫(dbx)(鏡像已啓用並設置)並對主體數據庫進行故障切換(關閉SQL Server以模擬崩潰)時,我無法再發送查詢而沒有發生故障。這是預期的,因爲之前的連接現在丟失了。修改sys.database_mirroring中的mirroring_partner_instance名稱
我想簡單地關閉我的連接和句柄,並使用相同的連接字符串重新建立一個新連接,並重新連接到鏡像數據庫(dby,它現在是主體數據庫)。
我的連接字符串如下:
驅動程序= {SQL本機客戶端};服務器= DBX; Failover_Partner = DBY;數據庫= DB; UID = UID; PWD = PWD;網絡= DBMSSOCN;
通過研究,我瞭解到連接中的Failover_Partner參數幾乎毫無價值。它僅在主服務器關閉並且第一次建立新連接時使用。出於某種原因,當與主體建立連接並且使用sys.database_mirroring表中找到的mirroring_partner_instance代替時,Failover_Partner會在內部被覆蓋。因此,當我將Failover_Partner指定爲dby時,在建立連接後,我查詢它認爲故障切換夥伴的內容,並返回故障切換夥伴的INSTANCE名稱而不是DNS名稱(dby)。
這是問題所在,我無法使用INSTANCE名稱作爲故障轉移夥伴。我需要使用DNS名稱作爲故障轉移合作伙伴。
所以我的問題(S)是/是這樣的:
- 是否有修改sys.database_mirroring進入並改變mirroring_partner_instance的方法嗎?
- 該字段從哪裏獲得它的價值?
- 是否有任何其他方式強制SQL Server使用DNS名稱而不是實例名稱?