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

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 404|回复: 0
打印 上一主题 下一主题

PG14_windows&linux主从复制搭建

[复制链接]
跳转到指定楼层
楼主
发表于 2025-8-22 15:03:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
主库: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 #查看信息同步情况
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2026-4-17 21:21 , Processed in 0.233426 second(s), 24 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表