演練不同模式下鏡像數據庫SQL Server的異常處理

鏡像數據庫是SQL Server高可用性方案的一種。配置比較簡單,但是有多種模式。如果鏡像數據庫出現異常,在不同模式下的表現形式也是各異的。這里,我們演練在不同模式下,服務器出現異常后,可能的效果,這樣能幫助我們選擇合適的模式,以及了解在對數據庫鏡

鏡像是sql server高可用性方案的一種。配置比較簡單,但是有多種模式。如果鏡像出現異常,在不同模式下的表現形式也是各異的。這里,我們演練在不同模式下,出現異常后,可能的效果,這樣能幫助我們選擇合適的模式,以及了解在對數據庫鏡像做維護期間,需要注意的地方。

【數據庫鏡像的模式】

數據庫鏡像主要有這么幾種模式:

· High Performance模式 (也就是異步模式)

數據庫在Principle的事務,不需要得到Mirror的確認,可以直接完成。Principle數據庫性能會比較好。但是Mirror跟Principle之間事務傳遞可能延遲。

· High Safety 模式 (也就是同步模式)沒有 witness服務器

數據庫在Principle的事務,需要馬上得到mirror的確認,才能完成。這種情況下,Mirror和Principle的數據是同步的。但是因為所有的事務需要mirror的確認,所以性能可能會有所影響。

· High Satefy模式 (也就是同步模式)有 witness服務器

如果帶有witness,那么一旦Principle數據庫有異常,無法連通,則在witness服務器的見證下,會做自動切換。鏡像數據庫會變成主數據庫,以繼續提供服務。

【High Performance模式下,出現異常】

演練不同模式下鏡像數據庫SQL Server的異常處理

· MIRROR數據庫有問題,這時候PRINCIPLE數據庫會處于 (Principle, Disconnected) 狀態。在這種情況下,Principle數據庫依舊能正常服務。當Mirror數據庫恢復正常后,數據會自動進行同步,同步后,PRINCIPLE服務器會恢復到 (Principle, Synchronized) 正常狀態。這種情況雖然不會對服務造成問題,但是我們應該盡快恢復Mirror數據庫,否則,在Principle端,日志會累積,變得越來越大。會占滿磁盤空間。

· Principle數據庫有問題,無法連接,這時候應用當然不能使用。Mirror數據庫處于 (Mirror, Disconnected/In Recovery) 狀態。這時候我們有兩種選擇,1. 盡快恢復Principle數據庫運營。2. 使用Forcing Service方法把Mirror數據庫改為主數據庫以繼續服務。對于Forcing Service方法,我們要注意:

1. 完全停掉舊的PRINCIPLE 數據庫,以避免出現兩邊同時做數據更新。

2. 在mirror服務器上,我們用下面命令把mirror數據庫改為主數據庫:

ALTER DATABASE SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS

3. 使用Forcing Service會導致數據有丟失的可能。如果在原先的主數據庫數據還沒來得及傳送到鏡像數據庫, 那么該部分數據會被丟失。所以使用Forcing Service我們需要權衡。

4. 原先的主數據庫起來后,Mirror會處于暫停狀態,我們可以恢復鏡像,把原來的主數據庫為新的鏡像數據庫 (當然,會導致部分數據永久丟失) 。或者把原先的主數據庫去除鏡像設置,改為普通數據庫,查看在原主數據庫上寫入而在原鏡像數據庫上沒有寫入的記錄,然后手工倒入到新的主數據庫上。用這種辦法倒數據,我們需要對應用非常熟悉。

【High Satefy模式沒有witness,出現異常】

演練不同模式下鏡像數據庫SQL Server的異常處理

· MIRROR數據庫有問題,無法連接,PRINCIPLE數據庫會處于 (Principle, Disconnected) 狀態。在這種情況下,PRINCIPLE數據庫依舊能正常服務。當MIRROR服務器恢復正常后,數據會自動進行同步,同步后,PRINCIPLE數據庫會處于 (Principle, Synchronized) 正常狀態。這種情況雖然不會對服務造成問題,但是我們應該盡快恢復MIRROR數據庫,否則,在PRINCIPLE數據庫上,日志會累積,變得越來越大。最后可能導致磁盤滿。

· PRINCIPLE服務器有問題,這時候應用當然不能使用。MIRROR數據庫處于 (Mirror, Disconnected/In Recovery) 狀態。這時候我們有兩種選擇,1. 盡快恢復PRINCIPLE數據庫。2. 使用Forcing Service方法把Mirror數據庫改為Principle以繼續服務。

? 版權聲明
THE END
喜歡就支持一下吧
點贊10 分享