postgresql集羣方案hot standby初級測試(一)——模擬集羣狀況

上次安裝了集羣后,一段時間沒有時間寫個測試文章,今天有空就寫了篇初級測試的文章,如果大家還想知道不同情況下postgres集羣的處理方法,可以留言給我!!!

 

本文來自:http://blog.csdn.net/lengzijian/article/details/7729380

 

先來模擬下主從庫關閉,看看數據的同步情況:

 

1.   重啓主節點:

 

方式①:./pg_ctl stop -D ../data/

waiting  for server to shut  down............................................................... failed

pg_ctl:  server does not shut down

HINT:  The "-m fast" option immediately disconnects sessions rather than

waiting for session-initiated  disconnection.

雖然顯示關閉失敗,但是連接數據庫操作已經不可用,並且顯示錯誤!!!

方式②./pg_ctl stop -D ../data/ -m fast

直接關閉數據庫,連接數據庫時,顯示沒有服務。

重啓主節點後,對集羣功能沒有影響

方式③:kill -9 8581 8582 8584 8585 8586 8587  8589 8597 8669

向其中一臺從節點插入一條數據;

(這裏理論上是可讀,但是爲了方便展示還是插入一條)

insert  failed:ERROR:  cannot execute INSERT in  a read-only transaction

啓動主節點,插入一條數據,並驗證集羣功能:

集羣功能完好

2.   關閉從節點

 

關閉方式①:./pg_ctl stop -D ../data_bac/ -m fast

插入主節點一條數據,再打開從節點,查看數據是否同步。

數據同步成功。

關閉方式②:kill -9 19971 19972 19973 19974 19975 19976

插入二條數據後;正常啓動子節點,查看數據是否同步:

可以看到自己點意外死亡情況,重啓後會同步數據。

3. 在插入過程中殺死主節點

 

關閉方式①:./pg_ctl stop -D ../data_bac/ -m fast

用單線程方式,插入100000數據,並在中途按方式①,關閉主節點;重啓後查看主庫和從庫數據是否一致:

1.     當斷開後,查看兩個從庫的數據量都爲5719

2.     重啓主數據庫,查看數據量:

發現數據沒有丟失,爲了驗證正確性,我們驗證10個線程每個線程100000併發時,沒有丟數據情況發生

關閉方式②:kill -9 19971 19972 19973 19974 19975 19976

查看從庫數據量:

啓動主庫,查看主庫數據量:

可以發現主庫和從庫數據量不等,有人可能會說丟數據,先別下太早的結論,我們再來看下從庫數據量是否有變化:

我們可以認爲,當主節點意外死亡時,主庫wal日誌還沒有發送到從庫主機,使得主從庫數據不同步,但是重啓主庫後,主庫會把沒有傳遞的wal日誌重發,再次同步數據。

上面是我模擬的一些集羣會遇到的情況,目前只能想到這麼多,如果有建議可以留言。

 

 

發佈了81 篇原創文章 · 獲贊 1 · 訪問量 51萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章