首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >postgres中的WAL归档不起作用

postgres中的WAL归档不起作用
EN

Stack Overflow用户
提问于 2018-02-22 01:22:58
回答 2查看 5.6K关注 0票数 0

我已经在postgres配置文件中启用了WAL归档。当我重新启动Postgres服务时,WAL恢复不起作用。日志中没有wal恢复条目。

我遵循的步骤是:

代码语言:javascript
运行
复制
Created directory for wal:
mkdir -p  /var/lib/pgsql/wals/
mkdir -p  /var/lib/pgsql/backups/
chown postgres:postgres -R /var/lib/pgsql/backups/
chown postgres:postgres -R /var/lib/pgsql/wals/

Edited the postgresql.conf with the below changes:
wal_level=archive
archive_mode=on
archive_command = 'test ! -f /var/lib/pgsql/wals/%f && cp %p /var/lib/pgsql/wals/%f'

sudo service postgresql restart 10
sudo su - postgres
pg_basebackup -D /var/lib/pgsql/data #created base backup
tar -C /var/lib/pgsql/data/ -czvf /var/lib/pgsql/backups/pg_basebackup_backup.tar.gz .

删除我的数据库中的两行数据并停止postgres服务

代码语言:javascript
运行
复制
sudo service postgresql stop 10

提取基本备份

代码语言:javascript
运行
复制
tar xvf /var/lib/pgsql/backups/pg_basebackup_backup.tar.gz -C /var/lib/pgsql/data

创建具有以下内容的recovery.conf并重新启动postgres服务

代码语言:javascript
运行
复制
echo "restore_command = 'cp /var/lib/pgsql/wals/%f %p'">/var/lib/pgsql/recovery.conf
cp /var/lib/pgsql/recovery.conf /var/lib/pgsql/data/
sudo service postgresql stop 10
sudo service postgresql start 10

日志中没有wal恢复条目,我删除的两行没有恢复。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-22 11:56:29

pg_basebackup可以在备份期间捕获所有WAL段。我通过"-X流“选项将into备份转换为tar格式,所有这些操作都很好。看看这里-- bash备份-bash脚本,用于在Google存储上进行备份和存档。,它工作得很好--我备份数据库4.5+ TB很大,需要将近两天的时间。

恢复在这里描述- 基本备份/ pg-barman -还原tar备份

所有的工作-我们已经发生了事故,当我们必须从这些备份恢复。

票数 1
EN

Stack Overflow用户

发布于 2018-02-22 10:07:26

包含两个已删除行的WAL可能还没有归档。

每当16 MB的WAL段已满或有什么东西强制进行日志切换时,就会运行archive_command

要恢复尚未存档的最新更改,必须将pg_wal的内容复制到还原的基本备份中的pg_wal目录中。

如果不能丢失事务,还可以考虑流复制或pg_receivewal

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48918154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档