重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛

标题: PG14_windows&linux主从复制搭建 [打印本页]

作者: Inkcup    时间: 2025-8-22 15:03
标题: PG14_windows&linux主从复制搭建
主库:Windows server 2016 cn
从库:Oracle Linux 7

--------------------------------1.主库搭建

1.安装PG软件,关闭防火墙


2.添加环境变量

PATH=
[PGDATA=]

3.初始化PG

cmd

> C:\Users\Administrator>initdb -U postgres -D D:\pg14\data -E UTF8 --locale=C


4.配置pg_hba.conf文件,为本地连接启用trust身份验证[可选]

5.创建传输用的用户【或者直接用超级用户】

craete role slave1 login replication encrypted password '123';

配置pg_hba.conf文件,加入slave1的验证信息:

hosts         all          slave1     192.168.133.从库/24       md5

hosts         replication    slave1           192.168.133.从库/24       md5

重启服务生效

6.创建归档目录

手动创建,然后修改权限为777,也就是所有用户的权限都启用。


7.修改postgresql.conf文件

修改如下内容:

listen_addresses = '*'
port = 5432

wal_level = replica
archive_mode = on
archive_command = 'test ! -f D:\arc\%f'
max_wal_senders = 32
wal_keep_size = 16
wal_sender_timeout = 60s

#注意一下’max_connections=100‘的值,不要太小

保存,然后重启服务


-----------------------------------2.从库搭建

1.安装PG软件

2.测试主从之间的连接

--修改postgresql.conf文件

listen_addresses = '*' #主要是这一行要修改,端口不相同也可以。
port = 5432

#在主库上测试连到从库(从库上无法连到主库)

>psql -U slave1 -p 2015 -h 192.168.133.140

3.复制主节点的文件到从库:

pg_basebackup -Fp -Xs -v -P -h 192.168.133.132 -U slave1 -D /dbs/pg14/data -W -R -p 5432
#注意要填主库的端口号
-------------成功的标志:
[postgres@pgserver data]$ cat postgresql.auto.conf
# Do not edit this file manually!
# It will be overwritten by the ALTER SYSTEM command.
primary_conninfo = 'user=slave1 password=123 channel_binding=prefer host=192.168.133.131 port=5432 sslmode=prefer sslcompression=0 sslsni=1 ssl_min_protocol_version=TLSv1.2 gssencmode=disable krbsrvname=postgres target_session_attrs=any'
-------------
--修改postgresql.conf文件:

注释带有windows的行;
修改端口为所本机使用的端口号

4.开启从库

pg_ctl start -l /tmp/logfile

5.测试


主库上:create database mydb1;
        \c mydb1;
        create schema mydb1_pgtest1_t1;

        create table mydb1_pgtest1.t1(id int primary key,name varchar(20));
        insert  into  mydb1_pgtest1.ti(id,name) values(1,'mydb1_pgtest1_t1');


从库上:\l #查看信息同步情况





欢迎光临 重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛 (http://bbs.cqsztech.com/) Powered by Discuz! X3.2