[数据库]阿里云postgres数据库备份恢复
一、云postgres RDS
阿里云文档
- 打开RDS的备份恢复
- 数据备份列表中,最新的实例备份点操作中的实例备份下载
- 进入的高级下载中,选备份集
- 下一步实例下载
- 下一步下载目标选url,下载格式随意选,建议选sql,因为csv没有表头(字段名),不过用脚本恢复时候完全不影响
- 点完成然后在备份下载任务中生成一个正在运行的任务,20G的库生成下载目标链接大约需要50分钟
- 任务成功后,点生成链接,进入后点生成链接按钮,生成一个内网和外网的链接,外网链接可以下载到本地,超过免费额度的流量后要钱
- 下载外网链接到本地是个tar.gz压缩包
# 解压
tar -zxvf <压缩包文件名>.tar.gz -C <解压缩后的文件位置>
例:tar -zxvf backup.tar.gz -C ./test_db,如果有rds有多个数据库,解压后test_db会有多个以数据库命名的文件夹
- 下载restore_pg.py脚本,进行授权
# 授权
chmod +x ./restore_pg.py
- 重点:1. 解压文件test_db中保留要恢复的数据库文件夹,其余都删掉 2. 删除要恢复的rds中的原库
# 授权
python3 restore_pg.py <CSV文件或SQL文件目录路径> <数据库主机> <数据库端口> <数据库账号> <数据库密码>
# 请确保自建数据库中没有和待导入的数据库同名的库,否则将导入失败。
# 恢复到本地
python3 ./restore_pg.py ./test_db 127.0.0.1 5432 postgres "" # 空密码使用双引号
# 恢复到云RDS
python3 ./restore_pg.py ./test_db xxxxx.pg.rds.aliyuncs.com 1921 username password