使用逻辑备份文件恢复数据
您可以将逻辑备份文件中的数据恢复到RDS PostgreSQL实例或本地PostgreSQL数据库中。
背景信息
前提条件
注意事项
- 恢复数据时连接的数据库建议不要用默认数据库postgres。
- 恢复指定表数据时不会尝试还原指定表可能依赖的数据库对象,因此无法保证将指定表还原到干净的数据库时一定会成功。
恢复数据库
- 登录已备份数据的ECS实例或本地主机,使用如下命令恢复数据。
pg_restore -h '<hostname>' -U <username> -p <port> -d <dbname> <dumpdir>
参数 说明 hostname RDS PostgreSQL实例连接地址。 username RDS PostgreSQL实例高权限账号名称。 port RDS PostgreSQL实例端口。 dbname 待恢复数据的数据库名称。 dumpdir 备份文件路径及名称。 示例
pg_restore -h 'pgm-bpxxxxx.pg.rds.aliyuncs.com' -U test123 -p 3433 -d testdb2 /tmp/testdb.dump
- 命令行提示
Password:
时,输入PostgreSQL实例高权限账号对应的密码,然后按回车键确认。说明 请忽略内嵌插件plpgsql的报警。
恢复指定表数据
- 登录已备份数据的ECS实例或本地主机,使用如下命令恢复指定表的数据。
pg_restore -h '<hostname>' -U <username> -p <port> -d <dbname> -t <table> -c <dumpdir>
参数 说明 hostname RDS PostgreSQL实例连接地址。 username RDS PostgreSQL实例高权限账号名称。 port RDS PostgreSQL实例端口。 dbname 待恢复数据的数据库名称。 table 待恢复的表名。 -c -c
表示在恢复时,会先删除数据库对象再恢复。更多选项的详细说明请参见pg_restore。dumpdir 备份文件路径及名称。 示例
pg_restore -h 'pgm-bpxxxxx.pg.rds.aliyuncs.com' -U test123 -p 3433 -d testdb2 -t products -c /tmp/testdb.dump
- 命令行提示
Password:
时,输入PostgreSQL实例高权限账号对应的密码,然后按回车键确认。
恢复数据库模式(不恢复数据)
- 登录已备份数据的ECS实例或本地主机,使用如下命令恢复数据库模式。
pg_restore -h '<hostname>' -U <username> -p <port> -d <dbname> -s <dumpdir>
参数 说明 hostname RDS PostgreSQL实例连接地址。 username RDS PostgreSQL实例高权限账号名称。 port RDS PostgreSQL实例端口。 dbname 待恢复模式的数据库名称。 table 待恢复的表名。 -s -s
表示仅恢复模式,不恢复数据。更多选项的详细说明请参见pg_restore。dumpdir 备份文件路径及名称。 示例
pg_restore -h 'pgm-bpxxxxx.pg.rds.aliyuncs.com' -U test123 -p 3433 -d testdb4 -s /tmp/testdb2.dump
- 命令行提示
Password:
时,输入PostgreSQL实例高权限账号对应的密码,然后按回车键确认。说明 请忽略内嵌插件plpgsql的报警。
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论