--對於主從複製來說,有時候想停止從庫應用主庫的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 在分發的時候,需...