PostgreSQL叢集方案hot standby初級測試

來源:互聯網
上載者:User

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

先來類比下主從庫關閉,看看資料的同步情況:

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日誌重發,再次同步資料。

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

  • 1
  • 2
  • 下一頁
【內容導航】
第1頁:類比叢集狀況 第2頁:處理資料能力

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.