安装postgresql11
两台机器都装好
yum install -y https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/postgresql11-libs-11.2-1PGDG.rhel7.x86_64.rpmyum install -y https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/postgresql11-11.2-1PGDG.rhel7.x86_64.rpmyum install -y https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/postgresql11-server-11.2-1PGDG.rhel7.x86_64.rpmyum -y install postgresql11 postgresql11-server postgresql11-libspostgresql-11-setup initdb#启动systemctl start postgresql-11systemctl enable postgresql-11
修改配置文件
vim /var/lib/pgsql/11/data/postgresql.conf
修改的地方为
listen_addresses = '*'port = 5432
vim /var/lib/pgsql/11/data/pg_hba.conf
增加一行
host all all 0.0.0.0/0 trust
改完之后重启postgresql
systemctl restart postgresql-11
更改初始用户密码
# 使用postgres用户操作su - postgrespsql# 改一下密码postgres=# ALTER USER postgres WITH PASSWORD '12345678';ALTER ROLE #提示这个则表示成功#退出postgres=# \q
Navicat连接

主从复制配置
现有两台服务器10.27.3.176,10.27.3.175,以176为主库
主库配置
su - postgrespsqlpostgres=# create role repl login replication encrypted password 'hatech1618';CREATE ROLE
vim /var/lib/pgsql/11/data/pg_hba.conf
添加一行
host replication repl 0.0.0.0/0 trust
vim /var/lib/pgsql/11/data/postgresql.conf
修改的地方为
listen_addresses = '*' # what IP address(es) to listen on;port = 5432 # (change requires restart)max_connections = 512 # (change requires restart)shared_buffers = 128MB # min 128kBdynamic_shared_memory_type = posix # the default is the first optionwal_level = hot_standby # minimal, replica, or logicalarchive_mode = on # enables archiving; off, on, or alwaysarchive_command = 'cp %p /var/lib/pgsql/11/data/pg_archive/%f' # command to use to archive a logfile segmentmax_wal_senders = 6 # max number of walsender processeswal_keep_segments = 10240 # in logfile segments, 16MB each; 0 disableswal_sender_timeout = 60s # in milliseconds; 0 disableslog_directory = 'log' # directory where log files are written
创建刚刚配置的目录
mkdir /var/lib/pgsql/11/data/pg_archive/chown -R postgres.postgres /var/lib/pgsql/11/data
重启主库服务
systemctl restart postgresql-11
从库配置
把主节点的配置文件拷贝过来 先删再拷贝
rm -rf /var/lib/pgsql/11/data/*# 根据主节点ip拷贝pg_basebackup -h 10.27.3.176 -U repl -D /var/lib/pgsql/11/data/ -X stream -P# 把复制来的文件赋权chown -R postgres.postgres /var/lib/pgsql/11/data
修改配置文件
vim /var/lib/pgsql/11/data/postgresql.conf
根据配置修改
listen_addresses = '*' # what IP address(es) to listen on;port = 5432 # (change requires restart)max_connections = 1000 # (change requires restart)shared_buffers = 128MB # min 128kBdynamic_shared_memory_type = posix # the default is the first optionwal_level = replica # minimal, replica, or logicalarchive_mode = on # enables archiving; off, on, or alwaysarchive_command = 'cp %p /var/lib/pgsql/11/data/pg_archive/%f' # command to use to archive a logfile segmentwal_sender_timeout = 60s # in milliseconds; 0 disableshot_standby = on # "on" allows queries during recoverymax_standby_streaming_delay = 30s # max delay before canceling querieswal_receiver_status_interval = 10s # send replies at least this oftenhot_standby_feedback = on # send info from standby to preventlog_directory = 'log' # directory where log files are written,
创建恢复文件
cp /usr/pgsql-11/share/recovery.conf.sample /var/lib/pgsql/11/data/recovery.confvim /var/lib/pgsql/11/data/recovery.conf
# 调整参数:recovery_target_timeline = 'latest' #同步到最新数据standby_mode = on #指明从库身份trigger_file = 'failover.now'primary_conninfo = 'host=10.27.3.176 port=5432 user=repl password=12345678' #连接到主库 配置主库的ip 账号 密码 端口
#启动从库systemctl restart postgresql-11
查看从库信息 出现async表示成功
[root@localhost data]# su - postgresLast login: Wed Dec 1 09:44:23 CST 2021 on pts/2-bash-4.2$ psqlpsql (11.14)Type "help" for help.postgres=# select client_addr,sync_state from pg_stat_replication;client_addr | sync_state-------------+------------10.27.3.175 | async(1 row)
查看详细从库信息
select * from pg_stat_replication;
