PostGreSql 12.6 的流複製(CentOS)
PostGreSql 12.6 的流複製
流複製允許一臺後備伺服器比使用基於檔案的日誌傳送更能保持為最新的狀態。後備伺服器連線到主伺服器,主伺服器則在 WAL 記錄產生時即將它們以流式傳送給後備伺服器而不必等到 WAL 檔案被填充。
預設情況下流複製是非同步的。
主庫操作:
安裝之後,初始化資料庫:
[root@pg01 ~]# /usr/pgsql-12/bin/postgresql-12-setup initdb
Initializing database ... OK
[postgres@pg01 ~]$ createdb mydb
[postgres@pg01 ~]$ psql
psql (12.6)
輸入 "help" 來獲取幫助資訊.
postgres=# \l
資料庫列表
名稱 | 擁有者 | 字元編碼 | 校對規則 | Ctype | 存取許可權
-----------+----------+----------+-------------+-------------+-----------------------
mydb | postgres | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 |
postgres | postgres | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 |
template0 | postgres | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 行記錄)
##登入系統,新建測試DB, mydb
postgres=# CREATE USER replicator WITH REPLICATION ENCRYPTED PASSWORD 'secret';
CREATE ROLE
修改引數
[postgres@pg01 data]$ cat pg_hba.conf
host all all 0.0.0.0/0 ident
host replication replicator 192.168.56.11/32 md5
## Salve 伺服器IP地址是 11.
[postgres@pg01 data]$ pg_ctl restart -D $PGDATA
##reboot DB
[postgres@pg01 data]$ psql -c "select pg_is_in_recovery()"
pg_is_in_recovery
-------------------
f
(1 行記錄)
#false, 是Master 伺服器
[postgres@pg01 data]$ psql -x -c "select * from pg_stat_replication"
-[ RECORD 1 ]----+------------------------------
pid | 4064
usesysid | 16385
usename | replicator
application_name | walreceiver
client_addr | 192.168.56.11
client_hostname |
client_port | 47944
backend_start | 2021-04-16 00:04:30.215703+08
backend_xmin |
state | streaming
sent_lsn | 0/3000060
write_lsn | 0/3000060
flush_lsn | 0/3000060
replay_lsn | 0/3000060
write_lag |
flush_lag |
replay_lag |
sync_priority | 0
sync_state | async
reply_time | 2021-04-16 00:04:50.920327+08
Salve 伺服器操作
[postgres@pg02 12]$ pg_basebackup -h 192.168.56.10 -U replicator -p 5432 -D $PGDATA -Fp -Xs -P -R
口令:
33514/33514 kB (100%), 1/1 表空間
###會自動產生standby.signal,一個標識為slave的空檔案,可以用touch 自建
[postgres@pg02 12]$ ls -al
總用量 8
drwx------. 5 postgres postgres 62 4月 16 00:02 .
drwx------. 3 postgres postgres 35 4月 14 15:50 ..
drwxrwxr-x. 2 postgres postgres 6 4月 13 10:54 archive
drwx------. 2 postgres postgres 6 2月 11 09:16 backups
drwx------. 20 postgres postgres 4096 4月 16 00:02 data
-rw-------. 1 postgres postgres 997 4月 14 15:50 initdb.log
[postgres@pg02 data]$ cat postgresql.auto.conf
# Do not edit this file manually!
# It will be overwritten by the ALTER SYSTEM command.
listen_addresses = '*'
primary_conninfo = 'user=replicator password=secret host=192.168.56.10 port=5432 sslmode=prefer sslcompression=0 gssencmode=prefer krbsrvname=postgres target_session_attrs=any'
[postgres@pg02 data]$ psql -c "select pg_is_in_recovery()"
pg_is_in_recovery
-------------------
t
(1 行記錄)
##Ture, 是Salve 伺服器
測試結果(Master操作)
postgres=# \c mydb
您現在已經連線到資料庫 "mydb",使用者 "postgres".
mydb=# create table t01(name char(50));
CREATE TABLE
mydb=# insert into t01 values('qqqqq');
INSERT 0 1
mydb=# insert into t01 values('mmmmm');
INSERT 0 1
mydb=# \q
Salve 檢視
[postgres@pg02 data]$ psql -x -c "select * from pg_stat_replication"
(0 行記錄)
[postgres@pg02 data]$ psql
psql (12.6)
輸入 "help" 來獲取幫助資訊.
postgres=# \l
資料庫列表
名稱 | 擁有者 | 字元編碼 | 校對規則 | Ctype | 存取許可權
-----------+----------+----------+-------------+-------------+------------------
-----
mydb | postgres | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 |
postgres | postgres | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 |
template0 | postgres | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres
+
| | | | | postgres=CTc/post
gres
template1 | postgres | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres
+
| | | | | postgres=CTc/post
gres
(4 行記錄)
postgres=# \c mydb
您現在已經連線到資料庫 "mydb",使用者 "postgres".
mydb=# \d
關聯列表
架構模式 | 名稱 | 型別 | 擁有者
----------+------+--------+----------
public | t01 | 資料表 | postgres
(1 行記錄)
mydb=# select * from t01;
name
----------------------------------------------------
qqqqq
mmmmm
(2 行記錄)
##複製過來了,功能可以了。 比Oracle 的DG 簡單多了,和DB2的HADR 差不多有一拼。感覺不錯!!!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/6126/viewspace-2768360/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【PG流複製】Postgresql流複製主備切換SQL
- 2. PostgreSQL 流複製SQL
- 如何配置 pglogical | PostgreSQL 的流複製SQL
- 【PG流複製】Postgresql流複製部署過程及效能測試SQL
- PostgreSQL 13 同步流複製(#2.4)-202104SQL
- PostgreSQL DBA(126) - PG 12(搭建流複製)SQL
- PostgreSQL 13 非同步流複製(#2.1)-202103SQL非同步
- PostgreSQL 13 同步流複製+failover(#2.6)-202104SQLAI
- PostgreSQL 13 級聯流複製部署(#2.7)-202105SQL
- PostgreSQL基於PG內建流複製的,靠譜的PostgreSQL高可用方案SQL
- PostgreSQL DBA(31) - Backup&Recovery#4(搭建流複製)SQL
- 再不瞭解PostgreSQL,你就晚了之PostgreSQL主從流複製部署SQL
- PostgreSQL 13 同步流複製+延遲備庫(#2.5)-202104SQL
- PostgreSQL 13 非同步流複製+failover切換(#2.3)-202104SQL非同步AI
- PostgreSQL構建流複製拉取日誌的起始位置在哪裡SQL
- 使用 Bitnami PostgreSQL Docker 映象快速設定流複製叢集SQLDocker
- PostgreSQL 13 非同步流複製+延遲備庫(#2.2)-202103SQL非同步
- PostgreSQL中的複製延遲SQL
- PostGreSql12.6的備份恢復SQL
- PostgreSQL 主從複製方案SQL
- PostgreSQL雙向複製教程SQL
- PostgreSQL 邏輯複製解密SQL解密
- PostgreSQL邏輯複製解密SQL解密
- Postgres 流複製配置
- Postgresql實戰:使用pg_basebackup或pg_start_backup方式搭建Postgresql主從流複製SQL
- pg流複製備份
- 美創科技運維日記|postgresql-pg簡易非同步流複製搭建運維SQL非同步
- 檔案的複製通過字元流和緩衝流(Buffered)字元
- Docker 搭建KingbaseES主備流複製Docker
- [java IO流]之檔案複製Java
- 如何利用PostgreSQL的延遲複製實現災備SQL
- CentOS 7 named設定主從複製CentOS
- PostgreSQL邏輯複製資料同步到kafkaSQLKafka
- Flume與Kafka整合--扇入、扇出功能整合,其中扇出包括:複製流、複用流Kafka
- 淺複製和深複製的概念與值複製和指標複製(引用複製)有關 淺複製 “指標複製 深複製 值複製指標
- centos7上配置mysql8的主從複製CentOSMySql
- Java IO 流之拷貝(複製)檔案Java
- 240815-PostgreSQL自帶邏輯複製簡單使用SQL