我们在AWS RDS中有多个PostgreSQL实例。我们需要维护每个数据库的本地副本以符合我们的灾难恢复策略。我已经成功地使用pg_dump和pg_restore将数据库模式和表导出到我们的内部部署服务器,但是我一直未能导出角色和表空间。我发现这只能通过使用pg_dumpall来实现,但是因为这需要超级用户访问权限,并且RDS中不允许这样做,所以我如何将数据库的这些方面导出到我们的内部部署服务器上?AWS pg_dump不包括全局变量
我pg_dump的命令:
Pg_dump -h {AWS Endpoint} -U {Master Username}-p 5432 -F c -f C:\AWS_Backups\{filename}.dmp {database name}
我pg_restore的命令:
pg_restore -h {AWS Endpoint} -p 5432 -U {Master Username} -d {database name} {filename}.dmp
我已经找到了使用pg_dump的出口他们的PostgreSQL数据库的人多的例子,但是,他们都没有解决的“全局“使用pg_dump将被忽略。我误解了文档吗?执行我的pg_restore后,我的登录未在数据库上创建。
任何帮助您可以提供有关获取完整数据库(包括全局)到我们的异地位置将不胜感激。
'pg_dump'从不包含全局变量。你需要在'--globals-only'选项中使用'pg_dumpall'。 –
这就是我发现的,但是,这不是AWS中的选项,因为它需要超级用户访问权限。当我尝试运行pg_dumpall时,收到错误“拒绝关系pg_authid的权限”。有没有人能够避开AWS限制? – Wendy
我认为这是设计,而不是AWS的限制。我可能是错的。 –