postgre 任意时间点备份恢复(阿里云)

本文介绍了如何在阿里云RDS for PostgreSQL上进行任意时间点的备份恢复。利用阿里云提供的物理备份和归档日志,通过Docker容器挂载数据目录并配置恢复相关参数,可以实现细粒度的恢复操作。详细步骤包括下载备份、安装PostgreSQL、配置恢复文件及启动服务,并通过修改recovery.conf来验证不同时间点的恢复效果。
摘要由CSDN通过智能技术生成

       简介&思路

           阿里云的RDS for PostgreSQL目前提供的备份为物理备份,备份粒度可以自己设置,最频繁的基础备份可以做到一天一次。有了这个备份和归档日志,我们可以做到基于任意时间点(实际上是事务提交或回滚点的粒度)的恢复。   

          归档文件规律:采用从1开始顺序记录的16进制

          备份集起始归档:默认记录 第一份归档的序号。

         postgre engine 创建后 第一份备份集和第一份归档便同时开始备份记录,可以恢复 任意备份集 开始时间后的任意时间点。(给够足量的归档便可,否则恢复至最后的归档文件)

       简图:

          为了使java层代码对备份恢复的可控性,我们采用docker技术。整体思路:使用centos基础镜像安装postgre服务。下载全集备份和归档备份,分别解压对应的postgre/wal 目录。挂载docker对应   postgre:/pgdata  wal:/pgwal(pgwal为新建目录,commit到docker images中的) 通过修改对应配置文件pg_hba.conf 、postgresql.conf、  recovery.conf 来实现任意时间点恢复。   

     操作过程&&摸索实践

          为了保证postgre服务的版本兼容性,最好使用阿里公有云使用的版本。版本下载请转官方:https://www.postgresql.org/ftp/source/ 具体安装过程参考:https://blog.csdn.net/qq_33854781/article/details/81782323 

          安装成功后会生成 pgdata 和postgresql 目录。我们主要操作pgdata。
pgdata目录结构:
.
|-- base
|   |-- 1
|   |-- 12998
|   |-- 13003
|   `-- 16398
|-- global
|-- pg_clog
|-- pg_dynshmem
|-- pg_log
|-- pg_logical
|   |-- mappings
|   `-- snapshots
|-- pg_multixact
|   |-- members
|  

阿里云服务器上卸载PostgreSQL(通常称为PostgreSQL Server),你可以按照以下步骤操作: 1. **登录管理控制台**:首先,你需要通过阿里云官网的管理控制台或者命令行工具(如`ECS Console`) 登录到你的云服务器实例。 2. **停止服务**:在服务器的操作系统界面中,找到PostgreSQL服务的启动脚本,例如在Ubuntu或Debian上可能是`pg_ctl stop -D /var/lib/postgresql/data`,在CentOS或RHEL上则是`sudo systemctl stop postgresql`。 3. **确认服务已停**:运行`service postgresql status` 或 `systemctl status postgresql` 确认服务已经停止。 4. **移除软件包**:使用对应系统的包管理器卸载PostgreSQL,比如在Ubuntu上执行`sudo apt-get remove postgresql postgresql-contrib`, 或者在 CentOS/RHEL 上使用`sudo yum remove postgresql-server`. 5. **删除数据库数据**:在安装目录下,如`/var/lib/postgresql/data` 删除所有文件夹,包括`postgresql.conf` 和其他数据库文件。 6. **清理系统服务和配置**:如果需要,可以删除相关的系统服务注册,如`sudo rm /etc/systemd/system/multi-user.target.wants/postgresql.service`(如果使用systemd)或者编辑`sudo vim /etc/init.d/postgresql` 文件,将启动链接删除。 7. **重启服务**:确认所有PostgreSQL相关的配置已经被清除后,重启系统或仅重启网络服务,以防遗留的服务尝试启动。 8. **验证是否成功卸载**:最后,在控制台上检查没有PostgreSQL的相关服务可用,并且数据库文件已经删除干净。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值