亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PostgreSQL數據庫單機怎樣擴展為流復制

發布時間:2021-11-29 10:52:19 來源:億速云 閱讀:169 作者:柒染 欄目:數據庫

本篇文章為大家展示了PostgreSQL數據庫單機怎樣擴展為流復制,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

1. 在standby服務器安裝postgres數據庫,不需要初始化.

安裝過程詳見:http://www.cnblogs.com/ilifeilong/p/6979288.html

2. 在primary服務器創建具有REPLICATION權限的復制用戶

postgres=# CREATE ROLE repl WITH REPLICATION PASSWORD ‘repl‘ LOGIN;

3. 允許復制用戶遠程連接到primary服務器

$ grep "^host" pg_hba.conf host    all             all             127.0.0.1/32            trust host    replication             repl             0.0.0.0/0               md5  host    all             all             ::1/128                 trust

4. 在primary服務器設置流復制相關的參數

$ mkdir /usr/local/pgsql/arch  $ egrep "archive_mode|max_wal_senders|wal_keep_segments|archive_command|wal_level|hot_standby" postgresql.conf al_level = hot_standby            # minimal, archive, hot_standby, or logical archive_mode = on        # enables archiving; off, on, or always archive_command = ‘test ! -f /usr/local/pgsql/arch/%f && cp %p /usr/local/pgsql/arch/%f‘         max_wal_senders = 5        # max number of walsender processes wal_keep_segments = 30        # in logfile segments, 16MB each; 0 disables hot_standby = on            # "on" allows queries during recovery #hot_standby_feedback = off        # send info from standby to prevent

5. 重新啟動primary服務器進程

$ pg_ctl stop -m fast $ pg_ctl start

6. 對primary服務器做一個全備并傳輸到standby服務器

  • 在primary服務器通過pg_(start|stop)_backup函數進行備份

postgres=# SELECT pg_start_backup(‘label‘, true);  pg_start_backup  -----------------  7/E6000060 (1 row) $ rsync -az --progress ${PGDATA} postgres@10.189.100.195:/usr/local/pgsql/ --exclude postmaster.pid postgres=# SELECT pg_stop_backup(); NOTICE:  pg_stop_backup complete, all required WAL segments have been archived  pg_stop_backup  ----------------  7/E60005C8 (1 row)

在standby服務器通過pg_basebackup命令進行備份,要求standby的PGDATA目錄為空

$ pg_basebackup --host=10.189.102.118 --username=repl --port=5432 --label=backup --verbose --progress --pgdata=/usr/local/pgsql/data --checkpoint=fast --format=p --xlog-method=stream Password:  transaction log start point: 7/EA000028 on timeline 1 pg_basebackup: starting background WAL receiver 65933562/65933562 kB (100%), 1/1 tablespace                                          transaction log end point: 7/EA000830 pg_basebackup: waiting for background process to finish streaming ... pg_basebackup: base backup completed

7. 設置standby數據庫復制相關參數,使得standby失效轉移后可以作為主庫工作

$ mkdir /usr/local/pgsql/arch $ egrep "archive_mode|max_wal_senders|wal_keep_segments|archive_command|wal_level|hot_standby" postgresql.conf wal_level = hot_standby                 # minimal, archive, hot_standby, or logical archive_mode = on               # enables archiving; off, on, or always archive_command = ‘test ! -f /usr/local/pgsql/arch/%f && cp %p /usr/local/pgsql/arch/%f‘ max_wal_senders = 5             # max number of walsender processes wal_keep_segments = 30          # in logfile segments, 16MB each; 0 disables hot_standby = on                        # "on" allows queries during recovery #hot_standby_feedback = off             # send info from standby to prevent

8. 在standby文件創建恢復文件

$ cat recovery.conf  restore_command = ‘cp /usr/local/pgsql/arch/%f "%p"‘ standby_mode = ‘on‘ primary_conninfo = ‘user=repl password=repl host=10.189.102.118 port=5432 sslmode=disable sslcompression=1‘ archive_cleanup_command = ‘pg_archivecleanup -d /usr/local/pgsql/arch %r >> /usr/local/pgsql/arch/archive_cleanup.log‘ trigger_file = ‘/usr/local/pgsql/data/trigger_active_standby‘

9. 啟動standby數據庫進程,自動啟動流復制

$ pg_ctl start -w waiting for server to start....LOG:  could not create IPv6 socket: Address family not supported by protocol LOG:  redirecting log output to logging collector process HINT:  Future log output will appear in directory "pg_log".  done server started

10. 檢查primary和standby數據庫的延遲

  • 通過函數和系統表查看

edbstore=# select * from pg_stat_replication;           #在primary主庫查看 -[ RECORD 1 ]----+------------------------------ pid              | 15013 usesysid         | 19206 usename          | repl application_name | walreceiver client_addr      | 10.189.100.195 client_hostname  |  client_port      | 56072 backend_start    | 2017-06-13 08:10:35.400508-07 backend_xmin     |  state            | streaming sent_location    | 7/EC01A588 write_location   | 7/EC01A588 flush_location   | 7/EC01A588 replay_location  | 7/EC01A588 sync_priority    | 0 sync_state       | async  edbstore=# SELECT pg_current_xlog_location();                      #在primary主庫查看  pg_current_xlog_location  --------------------------  7/EC01A588 (1 row)  postgres=# select pg_last_xlog_receive_location(),pg_last_xlog_replay_location(),pg_last_xact_replay_timestamp();     #在standby備庫查看  pg_last_xlog_receive_location | pg_last_xlog_replay_location | pg_last_xact_replay_timestamp  -------------------------------+------------------------------+-------------------------------  7/EC01A588                    | 7/EC01A588                   | 2017-06-13 08:25:20.281568-07 (1 row)
  • 通過進程查看

$ ps -ef | grep sender | grep -v grep #在primary庫查看  postgres 15013 24883 0 08:10 ? 00:00:00 postgres: wal sender process repl 10.189.100.195(56072) streaming 7/EC01A668  $ ps -ef | grep receiver | grep -v grep #在standby庫查看  postgres 12857 12843 0 08:10 ? 00:00:00 postgres: wal receiver process streaming 7/EC01A668

上述內容就是PostgreSQL數據庫單機怎樣擴展為流復制,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泗洪县| 许昌市| 抚松县| 宜昌市| 浪卡子县| 星座| 习水县| 增城市| 繁峙县| 三河市| 巩义市| 宁城县| 宜良县| 平度市| 吴忠市| 资溪县| 鄯善县| 渑池县| 黑水县| 玉环县| 黄石市| 双城市| 涿鹿县| 屯昌县| 科技| 正安县| 青州市| 涞源县| 图木舒克市| 抚顺县| 亚东县| 焦作市| 铜鼓县| 灵丘县| 睢宁县| 合肥市| 长子县| 孝感市| 临颍县| 汾西县| 绩溪县|