備庫暫停應用xlog日誌

2021-09-20 14:14:19 字數 1599 閱讀 2421

--對於主從複製來說,有時候想停止從庫應用主庫的xlog做一些事情,此時可以用不pg提供的複製函式

--在從庫檢視其是否在應用xlog,返回f說明其沒有暫停應用xlog日誌

postgres=# select pg_is_xlog_replay_paused();

pg_is_xlog_replay_paused

--------------------------

f(1 row)

--在主庫建立測試資料

postgres=# create table t (id int);

create table

postgres=# insert into t select n from generate_series(1,1000);

postgres=# insert into t select n from generate_series(1,1000) n;

insert 0 1000

--由於從庫還在應用xlog,故可在從庫查到資料的變更

postgres=# select count(*) from t;

count

-------

1000

(1 row)

--停止從庫應用xlog日誌

postgres=# select pg_xlog_replay_pause();

pg_xlog_replay_pause

----------------------

(1 row)

postgres=# select pg_is_xlog_replay_paused();

pg_is_xlog_replay_paused

--------------------------

t(1 row)

--主庫繼續變數資料

postgres=# insert into t select n from generate_series(1,10000) n;

insert 0 10000

--由於從庫已停止應用xlog,所以在從庫查詢不到資料的變數

postgres=# select count(*) from t;

count

-------

1000

(1 row)

--從庫繼續應用xlog

postgres=# select pg_xlog_replay_resume();

pg_xlog_replay_resume

-----------------------

(1 row)

postgres=# select pg_is_xlog_replay_paused();

pg_is_xlog_replay_paused

--------------------------

f(1 row)

--檢視從庫,可發現主庫的變更已經被應用

postgres=# select count(*) from t;

count

-------

11000

(1 row)

資料庫災備

資料庫災備 資料是企業重要的生產資料,關鍵資料的丟失可能會給企業致命一擊,因為資料是計算機系統存在的原因和基礎。資料往往是不可再生的,一旦發生資料丟失,企業就會陷入困境 客戶資料 技術檔案 財務賬目等客戶 交易 生產資料可能被破壞得面目全非。概括起來,資料丟失分三個層次 邏輯錯誤 包括軟體bug 病...

pg rewind增量同步備庫

在資料庫變得比較大時,例如上tb,如果部署了postgresql primary standby 流複製或者log shipping ha.當發生了failover,old primary節點可能因為某些原因需要重新同步資料.在廣域網上,由於網路異常也可能造成standby節點落後主節點,導致需要重...

MYSQL 備庫延遲問題

mysql 備庫延遲問題 乙個執行緒負責客戶端寫入主庫,另一線程sql thread 執行中轉日誌 relay log 在官方的 5.6 版本之前,mysql 只支援單執行緒複製,由此在主庫併發高 tps 高時就會出現嚴重的主備延遲問題。coordinator sql thread 在分發的時候,需...