当前位置:   article > 正文

Postgres主备的创建_postgresql must specify restore command when stand

postgresql must specify restore command when standby mode is not enable

说明:

Postgres的主备,也叫物理复制,和发布订阅不同的是,发布订阅可以针对某个表,主备物理复制是针对整个数据库的。有点类似SQL Server的主备和Oracle Data Guard。

参考文档:

http://www.postgres.cn/docs/10/warm-standby.html

-- 主备信息
PG 版本  10.15 
primay  : 192.168.2.80
standby : 192.168.2.81 


-- 安装主备库(略)

-- 参数修改,只需要修改主库的,备库的postgres.conf、pg_hba.conf等包含在data目录下的文件会被自动备份到备库

  1. listen_address = '*'
  2. wal_level = replica
  3. archive_mode = on
  4. archive_command = 'cp %p /postgres/archive/%f'
  5. max_wal_senders= 10
  6. wal_keep_segments=1024
  7. hot_standby = on
  8. mkdir -p /postgres/archive -- 主备上存放归档的目录
  9. chown -R postgres.postgres /postgres/archive/

-- 创建复制账号 

create user repl REPLICATION LOGIN ENCRYPTED PASSWORD 'oracle'; 

-- 修改pg_hba.conf

  1. host all all 192.168.2.0/24 md5
  2. host replication repl 192.168.2.80/24 md5
  3. host replication repl 192.168.2.81/24 md5

-- 备库上在线备份主库 (备库要处于关闭状态,并且备库的data目录下应该为空)

  1. pg_basebackup -h 192.168.2.80 -U repl -p 5432 -F p -X s -v -P -R -D /opt/PostgreSQL/10/data/ -l pg_init
  2. -F 指定生成备份的数据格式 (p 原样输出,t tar格式输出)
  3. -X 备份开始后,启动另一个流复制连接从主库接收wal日志,有fetch和stream两种方式,建议stream方式
  4. -v verbose格式,显示内容在屏幕上
  5. -P 显示过程百分比
  6. -R 备份结束后,自动生成recover.conf文件
  7. -D 把备份写入到那个目录
  8. -l 表示指定个备份的标识,运行命令后可以看到进度提示

因为备库的data目录下有文件,所以备份的时候报错

  1. [postgres@test1 /opt/PostgreSQL/10/data]$pg_basebackup -h 192.168.2.80 -U repl -p 5432 -F p -X s -v -P -R -D /opt/PostgreSQL/10/data/ -l pg_init
  2. pg_basebackup: directory "/opt/PostgreSQL/10/data/" exists but is not empty

清理data目录后,再次备份,就可以了 

  1. [postgres@test1 /opt/PostgreSQL/10/data]$rm -rf *
  2. [postgres@test1 /opt/PostgreSQL/10/data]$pg_basebackup -h 192.168.2.80 -U repl -p 5432 -F p -X s -v -P -R -D /opt/PostgreSQL/10/data/ -l pg_init
  3. Password:
  4. pg_basebackup: initiating base backup, waiting for checkpoint to complete
  5. pg_basebackup: checkpoint completed
  6. pg_basebackup: write-ahead log start point: 0/2000028 on timeline 1
  7. pg_basebackup: starting background WAL receiver
  8. 40635/40635 kB (100%), 1/1 tablespace
  9. pg_basebackup: write-ahead log end point: 0/2000130
  10. pg_basebackup: waiting for background process to finish streaming ...
  11. pg_basebackup: base backup completed
  12. [postgres@test1 /opt/PostgreSQL/10/data]$ls
  13. backup_label log pg_ident.conf pg_replslot pg_stat_tmp PG_VERSION postgresql.conf
  14. base pg_commit_ts pg_logical pg_serial pg_subtrans pg_wal recovery.conf
  15. current_logfiles pg_dynshmem pg_multixact pg_snapshots pg_tblspc pg_xact
  16. global pg_hba.conf pg_notify pg_stat pg_twophase postgresql.auto.conf
  17. [postgres@test1 /opt/PostgreSQL/10/data]$

-- 备库修改recovery.conf (-R参数  备份结束后,自动生成recover.conf文件)

  1. standby_mode = 'on'
  2. primary_conninfo = 'user=repl password=oracle host=192.168.2.80 port=5432 sslmode=disable sslcompression=0 target_session_attrs=any'
  3. recovery_target_timeline = 'latest'
  4. standby_mode -- 说明是否启用数据库为备库
  5. primary_conninfo -- 设置主库的连接方式
  6. recovery_target_timeline -- 设置恢复的时间线

自动生成的recovery.conf  

  1. [postgres@test1 /opt/PostgreSQL/10/data]$more recovery.conf
  2. standby_mode = 'on'
  3. primary_conninfo = 'user=repl password=oracle host=192.168.2.80 port=5432 sslmode=prefer sslcompress
  4. ion=1 krbsrvname=postgres target_session_attrs=any'
  5. [postgres@test1 /opt/PostgreSQL/10/data]$

-- 启动从库 

  1. [postgres@test1 /opt/PostgreSQL/10/data]$pg_ctl start
  2. waiting for server to start....2021-07-14 09:23:35.939 CST [15353] LOG: listening on IPv4 address "0.0.0.0", port 5432
  3. 2021-07-14 09:23:35.939 CST [15353] LOG: listening on IPv6 address "::", port 5432
  4. 2021-07-14 09:23:35.940 CST [15353] LOG: listening on Unix socket "/tmp/.s.PGSQL.5432"
  5. 2021-07-14 09:23:35.968 CST [15353] LOG: redirecting log output to logging collector process
  6. 2021-07-14 09:23:35.968 CST [15353] HINT: Future log output will appear in directory "log".
  7. done
  8. server started
  9. [postgres@test1 /opt/PostgreSQL/10/data]$

-- 测试主从同步 

  1. mydb=# create table pub_t1(id int primary key,name text,crt_time timestamp);
  2. CREATE TABLE
  3. mydb=# insert into pub_t1 values(1,'aa',now());
  4. INSERT 0 1
  5. mydb=# select * from pub_t1;
  6. id | name | crt_time
  7. ----+------+---------------------------
  8. 1 | aa | 2021-07-14 09:27:44.59695
  9. (1 row)
  10. mydb=#
  11. postgres=# \c mydb
  12. You are now connected to database "mydb" as user "postgres".
  13. mydb=# select * from pub_t1;
  14. id | name | crt_time
  15. ----+------+---------------------------
  16. 1 | aa | 2021-07-14 09:27:44.59695
  17. (1 row)
  18. mydb=#

--查看复制状态 ,pg_stat_replication (在主库上查询,备库上看不到复制信息,备库是只读的)

  1. select pid ,usesysid,usename,client_addr,state,sync_state from pg_stat_replication;
  2. mydb=# select pid ,usesysid,usename,client_addr,state,sync_state from pg_stat_replication;
  3. pid | usesysid | usename | client_addr | state | sync_state
  4. -------+----------+---------+--------------+-----------+------------
  5. 13077 | 16406 | repl | 192.168.2.81 | streaming | async
  6. (1 row)
  7. mydb=#
  8. mydb=# select pid ,usesysid,usename,client_addr,state,sync_state from pg_stat_replication;
  9. pid | usesysid | usename | client_addr | state | sync_state
  10. -----+----------+---------+-------------+-------+------------
  11. (0 rows)
  12. mydb=# insert into pub_t1 values(2,'bb',now());
  13. ERROR: cannot execute INSERT in a read-only transaction
  14. mydb=#

--查看pg wal的接收情况 (在备库上查询,主库上查询返回0)

  1. postgres=# select * from pg_stat_wal_receiver;
  2. -[ RECORD 1 ]---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  3. pid | 16763
  4. status | streaming
  5. receive_start_lsn | 0/3000000
  6. receive_start_tli | 1
  7. received_lsn | 0/3000000
  8. received_tli | 1
  9. last_msg_send_time | 2021-07-14 11:17:44.260407+08
  10. last_msg_receipt_time | 2021-07-14 11:17:44.227817+08
  11. latest_end_lsn | 0/301F920
  12. latest_end_time | 2021-07-14 09:44:06.28544+08
  13. slot_name |
  14. conninfo | user=repl password=******** dbname=replication host=192.168.2.80 port=5432 fallback_application_name=walreceiver sslmode=prefer sslcompression=1 krbsrvname=postgres target_session_attrs=any
  15. postgres=#

-- 监控主备看的同步 ,通过比较主服务器上的当前 WAL 写位置和后备服务器接收到的最后一个 WAL 位置来计算这个滞后量

  1. mydb=# select * from pg_current_wal_lsn();
  2. -[ RECORD 1 ]------+----------
  3. pg_current_wal_lsn | 0/301FAB0
  4. mydb=#
  5. mydb=# select * from pg_last_wal_receive_lsn();
  6. -[ RECORD 1 ]-----------+----------
  7. pg_last_wal_receive_lsn | 0/301FAB0
  8. mydb=#

--通过pg_stat_replication视图检查wal发送者进程。pg_current_wal_lsn 与视图的sent_lsn域之间的巨大差异表示主服务器承受着巨大的负载 (在主库上查询)

  1. mydb=# select pg_current_wal_lsn(); -- 主库上查询
  2. -[ RECORD 1 ]------+----------
  3. pg_current_wal_lsn | 0/301FB90
  4. mydb=# select sent_lsn from pg_stat_replication; -- 主库上查询
  5. -[ RECORD 1 ]-------
  6. sent_lsn | 0/301FB90
  7. mydb=#

--而sent_lsn和后备服务器上pg_last_wal_receive_lsn 之间的差异可能表示网络延迟或者后备服务器正承受着巨大的负载。

  1. mydb=# select sent_lsn from pg_stat_replication; -- 主库上查询
  2. -[ RECORD 1 ]-------
  3. sent_lsn | 0/301FB90
  4. mydb=#
  5. mydb=# select pg_last_wal_receive_lsn(); -- 备库上查询
  6. -[ RECORD 1 ]-----------+----------
  7. pg_last_wal_receive_lsn | 0/301FB90
  8. mydb=#

-- 调整为同步复制 .配置同步复制就只需要一个额外的配置步骤: synchronous_standby_names必须被设置为一个非空值。 synchronous_commit也必须被设置为on

将synchronous_commit设置为remote_write 将导致每次提交都等待后备服务器已经接收提交记录并将它写出到其自身所在的操作系统的确认, 但并非等待数据都被刷出到后备服务器上的磁盘。这种设置提供了比on 要弱一点的持久性保障:在一次操作系统崩溃事件中后备服务器可能丢失数据, 尽管它不是一次PostgreSQL崩溃。不过,在实际中它是一种有用的设置, 因为它可以减少事务的响应时间。 只有当主服务器和后备服务器都崩溃并且主服务器的数据库同时被损坏的情况下, 数据丢失才会发生。

把synchronous_commit设置为remote_apply 将导致每一次提交都会等待,直到当前的同步后备服务器报告说它们已经重放了该事务, 这样就会使该事务对用户查询可见。在简单的情况下, 这允许带有因果一致性的负载均衡。

在主库上修改synchronous_commit及synchronous_standby_names参数,调整后,reload或重启 

  1. synchronous_commit = remote_write
  2. synchronous_standby_names = '*'
  3. mydb=# alter system set synchronous_commit = remote_write;
  4. ALTER SYSTEM
  5. mydb=# alter system set synchronous_standby_names = '*';
  6. ALTER SYSTEM
  7. mydb=# select pid ,usesysid,usename,client_addr,state,sync_state from pg_stat_replication;
  8. pid | usesysid | usename | client_addr | state | sync_state
  9. -------+----------+---------+--------------+-----------+------------
  10. 14143 | 16406 | repl | 192.168.2.81 | streaming | sync
  11. (1 row)
  12. mydb=#

再次修改回异步模式  

  1. mydb=# alter system set synchronous_commit = on;
  2. ALTER SYSTEM
  3. mydb=# alter system set synchronous_standby_names ='';
  4. ALTER SYSTEM
  5. mydb=# select pid ,usesysid,usename,client_addr,state,sync_state from pg_stat_replication;
  6. pid | usesysid | usename | client_addr | state | sync_state
  7. -------+----------+---------+--------------+-----------+------------
  8. 14143 | 16406 | repl | 192.168.2.81 | streaming | async
  9. (1 row)
  10. mydb=#

-- 关于备库的只读模式,如果修改standby_mode = off,这个值是不起作用的(官方文档有说明),如果没有设置standby_mode参数,备库是无法启动的 。可以在日志中看到。这个时候,备库以为没有restore完毕,会让设置restore_command来进行继续restore 。

  1. [postgres@test1 /opt/PostgreSQL/10/data/log]$tail -f postgresql-2021-07-14_094125.log
  2. 2021-07-14 09:41:25.884 CST [16591] LOG: database system was shut down in recovery at 2021-07-14 09:36:24 CST
  3. 2021-07-14 09:41:25.884 CST [16591] FATAL: recovery command file "recovery.conf" must specify restore_command when standby mode is not enabled
  4. 2021-07-14 09:41:25.885 CST [16589] LOG: startup process (PID 16591) exited with exit code 1
  5. 2021-07-14 09:41:25.885 CST [16589] LOG: aborting startup due to startup process failure
  6. 2021-07-14 09:41:25.886 CST [16589] LOG: database system is shut down
  7. ^C

-- 在备库上清理日志
备库的wal日志存放在/opt/PostgreSQL/10/data/pg_wal目录下,清理该日志的命令如下(写在备库的recovery.conf中)

archive_cleanup_command = 'pg_archivecleanup /opt/PostgreSQL/10/data/pg_wal %r'

-- 使用复制槽,使用复制槽,有这些好处 。
复制槽提供了一种自动化的方法来确保主控机在所有的后备机收到 WAL 段 之前不会移除它们,并且主控机也不会移除可能导致 恢复冲突的行,即使后备机断开也是如此。

作为复制槽的替代,也可以使用wal_keep_segments 阻止移除旧的 WAL 段,或者使用archive_command 把段保存在一个归档中。不过,这些方法常常会导致保留的 WAL 段比需要的 更多,而复制槽只保留已知所需要的段数量。这些方法的一个优点是它们为 pg_wal的空间需求提供了界限,但目前使用复制槽无法做到。

类似地,hot_standby_feedback和 vacuum_defer_cleanup_age保护了相关行不被 vacuum 移除,但是前者在后备机断开期间无法提供保护,而后者则需要被设置为一个很高 的值以提供足够的保护。复制槽克服了这些缺点。

  1. SELECT * FROM pg_create_physical_replication_slot('node_a_slot');
  2. SELECT * FROM pg_replication_slots;

编译备库的recovery.conf  ,添加复制槽

  1. primary_slot_name = 'node_a_slot'
  2. [postgres@test1 /opt/PostgreSQL/10/data]$more recovery.conf
  3. standby_mode=on
  4. primary_conninfo = 'user=repl password=oracle host=192.168.2.80 port=5432 sslmode=prefer sslcompress
  5. ion=1 krbsrvname=postgres target_session_attrs=any'
  6. archive_cleanup_command = 'pg_archivecleanup /opt/PostgreSQL/10/data/pg_wal %r'
  7. primary_slot_name = 'node_a_slot'
  8. [postgres@test1 /opt/PostgreSQL/10/data]$

-- 通过pg_controldata查看主备库的情况  

  1. [postgres@test /opt/PostgreSQL/10/data]$pg_controldata
  2. pg_control version number: 1002
  3. Catalog version number: 201707211
  4. Database system identifier: 6984321128679731040
  5. Database cluster state: in production
  6. pg_control last modified: Wed 14 Jul 2021 09:32:29 AM CST
  7. Latest checkpoint location: 0/301F878
  8. Prior checkpoint location: 0/301F660
  9. Latest checkpoint's REDO location: 0/301F840
  10. Latest checkpoint's REDO WAL file: 000000010000000000000003
  11. Latest checkpoint's TimeLineID: 1
  12. Latest checkpoint's PrevTimeLineID: 1
  13. Latest checkpoint's full_page_writes: on
  14. Latest checkpoint's NextXID: 0:571
  15. Latest checkpoint's NextOID: 24599
  16. Latest checkpoint's NextMultiXactId: 1
  17. Latest checkpoint's NextMultiOffset: 0
  18. Latest checkpoint's oldestXID: 549
  19. Latest checkpoint's oldestXID's DB: 1
  20. Latest checkpoint's oldestActiveXID: 571
  21. Latest checkpoint's oldestMultiXid: 1
  22. Latest checkpoint's oldestMulti's DB: 1
  23. Latest checkpoint's oldestCommitTsXid:0
  24. Latest checkpoint's newestCommitTsXid:0
  25. Time of latest checkpoint: Wed 14 Jul 2021 09:32:28 AM CST
  26. Fake LSN counter for unlogged rels: 0/1
  27. Minimum recovery ending location: 0/0
  28. Min recovery ending loc's timeline: 0
  29. Backup start location: 0/0
  30. Backup end location: 0/0
  31. End-of-backup record required: no
  32. wal_level setting: replica
  33. wal_log_hints setting: off
  34. max_connections setting: 100
  35. max_worker_processes setting: 8
  36. max_prepared_xacts setting: 0
  37. max_locks_per_xact setting: 64
  38. track_commit_timestamp setting: off
  39. Maximum data alignment: 8
  40. Database block size: 8192
  41. Blocks per segment of large relation: 131072
  42. WAL block size: 8192
  43. Bytes per WAL segment: 16777216
  44. Maximum length of identifiers: 64
  45. Maximum columns in an index: 32
  46. Maximum size of a TOAST chunk: 1996
  47. Size of a large-object chunk: 2048
  48. Date/time type storage: 64-bit integers
  49. Float4 argument passing: by value
  50. Float8 argument passing: by value
  51. Data page checksum version: 0
  52. Mock authentication nonce: e560ba314666f9509c6d5abe645a9aa6e30d7f133a15e2bfb028fb37e2d43ef3
  53. [postgres@test /opt/PostgreSQL/10/data]$
  1. [postgres@test1 /opt/PostgreSQL/10/data]$pg_controldata
  2. pg_control version number: 1002
  3. Catalog version number: 201707211
  4. Database system identifier: 6984321128679731040
  5. Database cluster state: in archive recovery
  6. pg_control last modified: Wed 14 Jul 2021 09:44:06 AM CST
  7. Latest checkpoint location: 0/301F878
  8. Prior checkpoint location: 0/301F878
  9. Latest checkpoint's REDO location: 0/301F840
  10. Latest checkpoint's REDO WAL file: 000000010000000000000003
  11. Latest checkpoint's TimeLineID: 1
  12. Latest checkpoint's PrevTimeLineID: 1
  13. Latest checkpoint's full_page_writes: on
  14. Latest checkpoint's NextXID: 0:571
  15. Latest checkpoint's NextOID: 24599
  16. Latest checkpoint's NextMultiXactId: 1
  17. Latest checkpoint's NextMultiOffset: 0
  18. Latest checkpoint's oldestXID: 549
  19. Latest checkpoint's oldestXID's DB: 1
  20. Latest checkpoint's oldestActiveXID: 571
  21. Latest checkpoint's oldestMultiXid: 1
  22. Latest checkpoint's oldestMulti's DB: 1
  23. Latest checkpoint's oldestCommitTsXid:0
  24. Latest checkpoint's newestCommitTsXid:0
  25. Time of latest checkpoint: Wed 14 Jul 2021 09:32:28 AM CST
  26. Fake LSN counter for unlogged rels: 0/1
  27. Minimum recovery ending location: 0/301F920
  28. Min recovery ending loc's timeline: 1
  29. Backup start location: 0/0
  30. Backup end location: 0/0
  31. End-of-backup record required: no
  32. wal_level setting: replica
  33. wal_log_hints setting: off
  34. max_connections setting: 100
  35. max_worker_processes setting: 8
  36. max_prepared_xacts setting: 0
  37. max_locks_per_xact setting: 64
  38. track_commit_timestamp setting: off
  39. Maximum data alignment: 8
  40. Database block size: 8192
  41. Blocks per segment of large relation: 131072
  42. WAL block size: 8192
  43. Bytes per WAL segment: 16777216
  44. Maximum length of identifiers: 64
  45. Maximum columns in an index: 32
  46. Maximum size of a TOAST chunk: 1996
  47. Size of a large-object chunk: 2048
  48. Date/time type storage: 64-bit integers
  49. Float4 argument passing: by value
  50. Float8 argument passing: by value
  51. Data page checksum version: 0
  52. Mock authentication nonce: e560ba314666f9509c6d5abe645a9aa6e30d7f133a15e2bfb028fb37e2d43ef3
  53. [postgres@test1 /opt/PostgreSQL/10/data]$

-- 主备库上的postgres进程

  1. [root@test /root]$ps -ef | grep postgres
  2. root 11724 11599 0 08:58 pts/1 00:00:00 su - postgres
  3. postgres 11725 11724 0 08:58 pts/1 00:00:00 -bash
  4. postgres 12613 1 0 09:14 pts/1 00:00:00 /opt/PostgreSQL/10/bin/postgres -D /opt/PostgreSQL/10/data
  5. postgres 12614 12613 0 09:14 ? 00:00:00 postgres: logger process
  6. postgres 12616 12613 0 09:14 ? 00:00:00 postgres: checkpointer process
  7. postgres 12617 12613 0 09:14 ? 00:00:00 postgres: writer process
  8. postgres 12618 12613 0 09:14 ? 00:00:00 postgres: wal writer process
  9. postgres 12619 12613 0 09:14 ? 00:00:00 postgres: autovacuum launcher process
  10. postgres 12620 12613 0 09:14 ? 00:00:00 postgres: archiver process last was 000000010000000000000002.00000028.backup
  11. postgres 12621 12613 0 09:14 ? 00:00:00 postgres: stats collector process
  12. postgres 12622 12613 0 09:14 ? 00:00:00 postgres: bgworker: logical replication launcher
  13. postgres 13149 12613 0 09:25 ? 00:00:00 postgres: postgres mydb [local] idle
  14. postgres 13341 12613 0 09:28 ? 00:00:00 postgres: postgres postgres 192.168.2.240(60256) idle
  15. postgres 13343 12613 0 09:28 ? 00:00:00 postgres: postgres repdb 192.168.2.240(55611) idle
  16. postgres 13346 12613 0 09:28 ? 00:00:00 postgres: postgres mydb 192.168.2.240(56043) idle
  17. postgres 13353 12613 0 09:28 ? 00:00:00 postgres: postgres mydb 192.168.2.240(55401) idle
  18. postgres 14143 12613 0 09:44 ? 00:00:00 postgres: wal sender process repl 192.168.2.81(46563) streaming 0/301F920
  19. root 23017 18649 0 12:34 pts/1 00:00:00 grep --color=auto postgres
  20. [root@test /root]$
  1. [postgres@test1 /opt/PostgreSQL/10/data]$ps -ef | grep postgres
  2. root 14519 14478 0 09:10 pts/1 00:00:00 su - postgres
  3. postgres 14520 14519 0 09:10 pts/1 00:00:00 -bash
  4. root 15376 8324 0 09:23 pts/0 00:00:00 su - postgres
  5. postgres 15378 15376 0 09:23 pts/0 00:00:00 -bash
  6. postgres 16757 1 0 09:44 pts/1 00:00:00 /opt/PostgreSQL/10/bin/postgres
  7. postgres 16758 16757 0 09:44 ? 00:00:00 postgres: logger process
  8. postgres 16759 16757 0 09:44 ? 00:00:00 postgres: startup process recovering 000000010000000000000003
  9. postgres 16760 16757 0 09:44 ? 00:00:00 postgres: checkpointer process
  10. postgres 16761 16757 0 09:44 ? 00:00:00 postgres: writer process
  11. postgres 16762 16757 0 09:44 ? 00:00:00 postgres: stats collector process
  12. postgres 16763 16757 0 09:44 ? 00:00:10 postgres: wal receiver process
  13. postgres 16874 15378 0 09:45 pts/0 00:00:00 tail -f postgresql-2021-07-14_094406.log
  14. root 21998 21641 0 11:11 pts/2 00:00:00 su - postgres
  15. postgres 21999 21998 0 11:11 pts/2 00:00:00 -bash
  16. postgres 22501 16757 0 11:17 ? 00:00:00 postgres: postgres postgres [local] idle
  17. postgres 26920 21999 0 12:34 pts/2 00:00:00 ps -ef
  18. postgres 26921 21999 0 12:34 pts/2 00:00:00 grep --color=auto postgres
  19. [postgres@test1 /opt/PostgreSQL/10/data]$

END

-- 2021-08-23 add 

使用了事务槽,或者复制槽后,在PG的文件夹中会显示。

  1. [postgres@test /opt/PostgreSQL/10/data]$ls
  2. base pg_commit_ts pg_logical pg_serial pg_subtrans pg_wal postmaster.opts
  3. current_logfiles pg_dynshmem pg_multixact pg_snapshots pg_tblspc pg_xact postmaster.pid
  4. global pg_hba.conf pg_notify pg_stat pg_twophase postgresql.auto.conf
  5. log pg_ident.conf pg_replslot pg_stat_tmp PG_VERSION postgresql.conf
  6. postgres@test /opt/PostgreSQL/10/data/pg_replslot]$cd node_a_slot/
  7. [postgres@test /opt/PostgreSQL/10/data/pg_replslot/node_a_slot]$ls
  8. state
  9. [postgres@test /opt/PostgreSQL/10/data/pg_replslot/node_a_slot]$cd state
  10. -bash: cd: state: Not a directory
  11. [postgres@test /opt/PostgreSQL/10/data/pg_replslot/node_a_slot]$more state
  12. ¡Áׇâ
  13. [postgres@test /opt/PostgreSQL/10/data/pg_replslot/node_a_slot]$strings state
  14. node_a_slot
  15. [postgres@test /opt/PostgreSQL/10/data/pg_replslot/node_a_slot]$

END

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/780368
推荐阅读
相关标签
  

闽ICP备14008679号