pgsql 环境下有时需要每天同步数据或者新加一个salve时,同时又需要对master不造成影响时,可以采用如下方式。
1、暂停 stream 复制
$ psql psql (9.1.22) Type "help" for help. postgres=# select * from pg_xlog_replay_pause(); pg_xlog_replay_pause ---------------------- (1 row)
2、使用 rsync 同步文件
# rsync -rlgovp /pg_tbs/idx root@10.10.2.221:/pg_tbs/ # rsync -rlgovp /pg_tbs/data root@10.10.2.221:/pg_tbs/ # rsync -rlgovp /var/lib/postgresql/9.1/main --exclude=pg_xlog root@10.10.2.221:/var/lib/postgresql/9.1/ # rsync -rlgocvp /pg_tbs/idx root@10.10.2.221:/pg_tbs/ # rsync -rlgocvp /pg_tbs/data root@10.10.2.221:/pg_tbs/ # rsync -rlgocvp /var/lib/postgresql/9.1/main --exclude=pg_xlog root@10.10.2.221:/var/lib/postgresql/9.1/
3、启动 stream 复制
$ psql psql (9.1.22) Type "help" for help. postgres=# select * from pg_xlog_replay_resume(); pg_xlog_replay_resume ----------------------- (1 row)