首页 > 数据库 >PostgreSQL-PITR 增量备份与恢复

PostgreSQL-PITR 增量备份与恢复

时间:2023-08-01 16:34:23浏览次数:46  
标签:PostgreSQL recovery -- 备份 PITR 归档 archive

Point-in-Time Recovery (PITR) 基于时间点的备份(恢复)。

归档对于PITR(增量备份与恢复)至关重要,如果归档不一致,会产生各种各样的问题。以下的测试截图中,我将归档清零,重新生成,再做相关PITR的操作。这里是简单的操作过程,详情查看相关的官方文档说明 26.3. Continuous Archiving and Point-in-Time Recovery (PITR) 。另外推荐阅读 Base Backup & Point-in-Time Recovery

1 (重新)开启归档

这里,重新开启归档,是先将归档停用,然后删除归档,再开启归档。

停用归档,是将 archive_mode 置为 off ; 将 archive_command 置为 ''。

删除归档,是将设定的归档目录下的所有归档文件清空。

开启归档,是将原有配置还原,并重启 PostgreSQL 数据库,并切换一次WAL日志,此时在归档目录中,会生成相关的归档记录。

# 配置 postgresql.conf
archive_mode = on/off
archive_command = 'cp -i %p /pgccc/archive/%f' / ''
# 切换 wal 日志 
select pg_switch_wal();

PostgreSQL-PITR 增量备份与恢复_recovery

2 生成基本备份

在这里的基本备份,在原库中有一张测试表存在。

pg_basebackup 的相关参数选项,可查看帮助。

# 生成基础备份
pg_basebackup -Fp -P -v -D pgdata_bak
# 查看 txid
select txid_current();
# 检验备份完整性
pg_verifybackup pgdata_bak/
backup successfully verified

PostgreSQL-PITR 增量备份与恢复_postgresql_02

3 原库数据操作

插入新数据,并删除表;同时在插入前后,记录 txid 信息,切换一次 wal 日志。

PostgreSQL-PITR 增量备份与恢复_postgresql_03

4 修改备份配置

在这里,主要修改备份的4个配置:

# 配置 postgresql.conf
cd /home/postgres/pgdata_bak/postgresql.conf  --备份的配置文件目录
restore_command = 'cp /pgccc/archive/%f %p'  --要恢复的文件路径,拷贝原库归档
recovery_target_xid = '1980'   --删除前的 txid
recovery_target_action = 'pause' --pause 只读连接 --promote 可读写连接

PostgreSQL-PITR 增量备份与恢复_Point-in-Time Recove_04

5 启动备份恢复数据

停止原库,生成 recovery.signal,启动备份。

备份启动成功,说明恢复成功。

# 生成 recovery.signal
touch recovery.signal

PostgreSQL-PITR 增量备份与恢复_PITR_05


标签:PostgreSQL,recovery,--,备份,PITR,归档,archive
From: https://blog.51cto.com/baoyw/6923898

相关文章

  • PostgreSQL-由于与数据库的某些自动连接而无法删除数据库
    PostgreSQL常见问题解决1.删除databaseDROPDATABASEviid; 执行上述sql报错信息如下:ERROR:database"viid"isbeingaccessedbyotherusersDETAIL:Thereis1othersessionusingthedatabase. 原因是有其他的session正在使用该数据库 解决方法:强......
  • oracle 查看 rman 备份
    查看rman备份计划select*fromdba_scheduler_jobs;descDBA_SCHEDULER_JOB_RUN_DETAILSSELECTa.job_name,start_date,end_date,statusFROMDBA_SCHEDULER_JOBSaJOINDBA_SCHEDULER_JOB_RUN_DETAILSbONa.job_name=b.job_nameWHEREb.owner='sys'AND......
  • PostgreSQL的使用
    显示所有用户和角色的权限\du显示所有表的权限\dp切换到myDatabase数据库\cmyDatabase使用username登录myDatabase数据库psql-Uusername-dmyDatabase;移除username在myDatabase数据库上的所有权限revokeallprivilegesondatabasemyDatabasefromusername;移除......
  • Wordpress:在Fastcomet中如何进行网站备份?
    使用Fastcomet平台搭建Wordpress网站后,为了安全,需要进行备份,如何操作呢?步骤如下:1.登陆Fastcomet后台后,点击网站后面的AccesscPanel,进入网站面板管理; 2.选择cPanel下的WPToolkit选项,点击Backup/Restore 3.侧边弹出的面板中,点击BackUp,底部会出现进度条,等待备份OK后,会......
  • Linux18--存储管理之:MBR与GPT分区、格式化文件系统、磁盘挂载、制作swap分区、文件系
    0新增磁盘流程#磁盘整体的操作步骤1.增加磁盘编辑虚拟机设置--新增硬盘--SCSI--创建新虚拟磁盘--200G、多个文件--完成2.磁盘分区3.分区格式化成文件系统4.文件系统挂载到指定目录1磁盘分区#1分区分类主分区主引导分区,是可以安装系统的分区......
  • 如何获取备份 SQL 数据库历史记录
    本文将回顾如何获取有关备份SQL数据库历史记录的信息,包括MSDB中可查询的元数据,以及用于对这些关键信息进行分组、排序、报告和导出的增值工具和功能 每个组织都必须在其环境中定义备份策略。此类策略有助于以最小的数据丢失和最短的停机时间恢复数据库。SQLServer在系统......
  • postgresql | sql语句表名和列名引号问题
    根据您提供的SQL查询语句:SELECT*FROM"features"WHERE"layer"="FSHFAC"LIMIT10;在语法上看起来没有问题,但在实际运行时可能会出现一些问题,这取决于数据库和数据表的结构。表名和列名引号:在SQL中,使用双引号""可以将标识符(例如表名、列名等)加以引号。但是,要确保......
  • postgresql的相关利用
    有比较多的安全设备或者web系统使用postgresql作为数据库,研究postgresql数据库如何getshell将有很大帮助外联postgresql默认本地连接(5432端口),远程连接需要找到postgres安装目录下的/data/pg_hba.conf,在IPv4配置处加上:hostallall192.168.0.1/24scram-sha-256之后重启post......
  • gs_probackup 备份恢复
    一、 初始化备份目录gs_probackupinit-B /mogdata/backup二、 添加备份实例gs_probackupadd-instance--instancecluster_26000-B/mogdata/backup-D/mogdata/cluster_26000-B备份目录-D数据库存储数据目录三、 连接数据库gs_probackupset-config--instance=clust......
  • ES索引备份还原
    https://blog.csdn.net/weixin_43480441/article/details/128630478?spm=1001.2101.3001.6650.10&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-10-128630478-blog-126509989.235%5Ev38%5Epc_relevant_sort&depth_1-......