【PostgreSQL】PostgreSQL重建与主库不一致的从库
2022-06-25 11:36 abce 阅读(997) 评论(0) 编辑 收藏 举报场景:从库坏块,与主库不同步了
版本:PostgreSQL 12
1.关闭从库
systemctl stop postgresql
或
killall -9 postgres
2.检查postgresql.auto.conf的内容
# cat /var/lib/postgresql/12/main/postgresql.auto.conf
# Do not edit this file manually!
# It will be overwritten by the ALTER SYSTEM command.
promote_trigger_file='/tmp/failover_5432.trigger'
recovery_target_timeline=latest
primary_conninfo='application_name=pgsql_0_node_1 host=192.168.56.110 port=5432 user=pg_repl password=dZeV9VoLV97CmXy8'
3.移除数据从库的数据
rm -rf /var/lib/postgresql/12/main/*
4.从主库备份数据
# pg_basebackup -h 192.168.56.110 -U pg_repl -Xs -P -R -D /var/lib/postgresql/12/main/
Password:
waiting for checkpoint
其中:
-Xs :避免备份的数据两太大时,防止wal日志被删除
-P: 查看备份的进度
-R: 让pg_basebackup创建standby.signal文件,准备postgresql.auto.conf文件
pg_basebackup在开启备份之前会等待检查点。 如果pg_basebackup等待检查点的时间太长,可以在pg_basebackup后加上参数'-c fast';或直接在主库执行一个检查点:
postgres=# CHECKPOINT;
CHECKPOINT
4.修改目录属主
要保证目录的属主是正确的
chown -R postgres.postgres /var/lib/postgresql/12/main/
5.启动从库
systemctl start postgresql
启动后,从库应该自动跟主库同步了。
6.检查同步状态
在主库端执行
SELECT * FROM pg_stat_replication;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
2021-06-25 PyCharm使用pipenv创建虚拟环境
2015-06-25 使用duplicate target database ... from active database复制数据库
2015-06-25 duplicate database的时候,rman连接 auxiliary database的后状态不正确
2015-06-25 在相同的主机上创建一个duplicate数据库