postgresql-14热备
IP | 数据库版本 | |
192.168.3.3 | 14.4 | 主 |
192.168.3.5 | 14.4 | 从 |
1.安装postgresql(两台机器都要安装)
创建用户
[root@localhost postgresql-14.4]# useradd postgres
##创建安装目录
[root@localhost postgresql-14.4]# mkdir -p /home/pgsql/{data,log}
[root@localhost postgresql-14.4]# touch /home/pgsql/log/postgresql.log
[root@localhost pgsql]# chown -R postgres:postgres /home/pgsql/data
[root@localhost pgsql]# chown -R postgres:postgres /home/pgsql/log
##安装依赖包
[root@localhost ~]# rpm -ivh ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm
准备中... ################################# [100%]
正在升级/安装...
1:ncurses-devel-5.9-14.20130511.el7################################# [100%]
[root@localhost ~]# rpm -ivh readline-devel-6.2-11.el7.x86_64.rpm
准备中... ################################# [100%]
正在升级/安装...
1:readline-devel-6.2-11.el7 ################################# [100%]
[root@localhost ~]# rpm -ivh zlib-1.2.7-18.el7.x86_64.rpm --nodeps --force
准备中... ################################# [100%]
正在升级/安装...
1:zlib-1.2.7-18.el7 ################################# [100%]
[root@localhost ~]# rpm -ivh zlib-devel-1.2.7-18.el7.x86_64.rpm
准备中... ################################# [100%]
正在升级/安装...
1:zlib-devel-1.2.7-18.el7 ################################# [100%]
[root@localhost ~]# tar -xzvf postgresql-14.4.tar.gz
[root@localhost ~]# cd postgresql-14.4/
[root@localhost postgresql-14.4]# ./configure --prefix=/home/pgsql
[root@localhost postgresql-14.4]# make && make install
##配置环境变量
[root@pg1 ~]# vim /etc/profile
export PGHOME=/home/pgsql/
export PGUSER=postgres
export PGPORT=5432
export PGDATA=/home/pgsql/data
export PGLOG=/home/pgsql/log/postgresql.log
export PATH=$PGHOME/bin:$PATH:$HOME/bin
export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
[root@pg1 log]# source /etc/profile
2.创建归档目录(两台机器都执行)
mkdir -p /home/pgsql/pg_achive
3.先初始化主库(192.168.3.3)
[root@pg1 data]# su - postgres -c "/home/pgsql/bin/initdb -D /home/pgsql/data"
[root@pg1 data]# su - postgres
##启动数据库
[postgres@pg1 ~]$ /home/pgsql/bin/pg_ctl -D /home/pgsql/data -l /home/pgsql/log/postgresql.log start
##创建复制用户
postgres=# create role replica login replication encrypted password '123456';
CREATE ROLE
##修改主库配置文件(192.168.3.3)
vim /home/pgsql/postgresql.conf
listen_addresses = '*' # 监听所有ip
wal_level = hot_standby # 热备模式
archive_mode = on #允许归档
archive_command = 'cp %p /data/appData/postgreSql/pg_archive/xlog_files/%f' # 此目录需要创建
max_wal_senders = 32 #同步最大的进程数量
wal_sender_timeout = 60s #流复制主机发送数据的超时时间
max_connections = 200 #最大连接数,从库的max_connections必须要大于主库的
##修改权限配置
[root@pg1 ~]# vim /home/pgsql/data/pg_hba.conf
##重启数据库
[root@pg1 pgsql]# su - postgres -c "/home/pgsql/bin/pg_ctl -D /home/pgsql/data -l /home/pgsql/log/postgresql.log restart"
4.从库操作(192.168.3.5)
##同步主数据库
[root@pg3 data]# /home/pgsql/bin/pg_basebackup -h 192.168.3.3 -p 5432 -U replica -F p -P -D /home/pgsql/data/
##修改配置文件
vim /data/appData/postgreSql/postgresql.conf
## 移除或注释 wal_level,从库不需要这个配置
# wal_level = hot_standby
## 修改或添加以下
max_standby_streaming_delay=30s #可选,流复制最大延迟
wal_receiver_status_interval=10s #可选,向主库报告状态的最大间隔时间
hot_standby_feedback=on #可选,查询冲突时向主库反馈
max_connections=1000 #最大连接数一般大于主库就行
primary_conninfo = 'host=192.168.3.3 port=5432 user=replica password=123456' # 表示主库连接信息
recovery_target_timeline = 'latest' # 表示恢复最新的数据
##创建声明文件(创建 standby.signal 文件,声明从库)
vim /home/pgsql/data/standby.signal
##同步过来数据给个权限
[root@pg3 home]# chown -R postgres:postgres pgsql/
##启动数据库
[root@pg3 home]# su - postgres -c "/home/pgsql/bin/pg_ctl -D /home/pgsql/data -l /home/pgsql/log/postgresql.log start"
####测试####
##主从验证
在主上(192.168.3.3)
select pid,application_name,state,client_addr,sync_priority,sync_state from pg_stat_replication;
##创建一个数据库
###在从库查看(192.168.3.5)
免责声明:
1、本站资源由自动抓取工具收集整理于网络。
2、本站不承担由于内容的合法性及真实性所引起的一切争议和法律责任。
3、电子书、小说等仅供网友预览使用,书籍版权归作者或出版社所有。
4、如作者、出版社认为资源涉及侵权,请联系本站,本站将在收到通知书后尽快删除您认为侵权的作品。
5、如果您喜欢本资源,请您支持作者,购买正版内容。
6、资源失效,请下方留言,欢迎分享资源链接
文章评论