【RDS for PostgreSQL】全备文件恢复到本地库

举报
大象数据库 发表于 2023/01/17 09:44:48 2023/01/17
【摘要】 备份恢复, postgresql

步骤 1: 准备一个本地存放备份文件的目录。

步骤 2: 停止本地数据库服务器。

步骤 3: 保存本地目标数据库data目录下的三个配置文件(“postgresql.conf”、“pg_hba.conf”和“recovery.done”(recovery.done不存在则不用保存))。

步骤 4: 清空本地数据库的data目录。

步骤 5: 执行如下命令,将备份解压到步骤1中准备的目录。

tar -zxf src_file -C target_dir

参数说明如下:
	“src_file”: pg全量备份文件的目录。
	“target_dir”:需要恢复到的目录,即步骤1中准备的目录。注意:该目录必须是空目录,如果不存在该目录,则系统会创建该目录。
解压后会在当前目录下产生以下目录:
	一个base目录,存放全量文件。
	一个pg_wal目录(如果PostgreSQL版本为9.x,则为pg_xlog目录),增量文件目录。
	N个以数字命名的表空间目录(如果原备份存在表空间文件)。

步骤 6(可选,若步骤5执行解压命令失败,执行该步骤) 下载解压工具(见附件)。
使用提供的解压脚本,执行如下命令,将备份解压到步骤1中准备的目录。

python restore_obs_file.py src_file target_dir

参数说明如下:
	“src_file”: pg全量备份文件的目录。
	“target_dir”:需要恢复到的目录,即步骤1中准备的目录。注意:该目录必须是空目录,如果不存在该目录,则系统会创建该目录。
解压后会在当前目录下产生以下目录:
	一个base目录,存放全量文件。
	一个pg_wal目录(如果PostgreSQL版本为9.x,则为pg_xlog目录),增量文件目录。
	N个以数字命名的表空间目录(如果原备份存在表空间文件)。

步骤 7: 将步骤5或步骤6中的文件拷贝到本地数据库指定目录下。
将解压出来的base/data目录下的文件,全部拷贝到本地数据库data目录,然后用步骤3中保存的配置文件,覆盖本地数据库data目录下的三个文件。
将解压出来的pg_wal目录(如果PostgreSQL版本为9.x,则为pg_xlog目录)下的文件,拷贝到本地数据库data下的pg_wal目录(如果PostgreSQL版本为9.x,则为pg_xlog目录)。
如果原备份存在表空间文件,修改“data\tablespace_map”中对应的表空间软链接信息,如图所示:

步骤 8: 重新启动数据库,等待数据库恢复完成。

----结束

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。