我指的是
在这个示例/解决方案中,还原过程的哪一部分实际上是“创建数据库沙箱”?我已经搜索了很长一段时间了--似乎pg_dump不备份它为其创建备份的数据库的名称->当我只是备份(pg_dump)和恢复(psql)时,我得到了“数据库沙箱不存在”。
因此,如果我想使用pg_dump备份和恢复整个集群,是否必须手动创建新服务器上的所有数据库?我希望稍后能够恢复单个数据库,因此pg_dumpall似乎不是正确的方法,或者是吗?
发布于 2019-02-17 15:05:55
你所提到的问题有点混乱,我认为你最好不要提这个问题。它只是引入了一些误解,然后部分地删除了其中的一些。
如果要备份和还原整个集群,则应该使用"pg_dumpall",而不是"pg_dump“。使用没有任何限制性选项的"pg_dumpall“将发出必要的”创建数据库“命令。
如果您使用pg_dump选项运行“-C”,它也会发出"CREATE“命令。
我希望稍后能够恢复单个数据库,因此pg_dumpall似乎不是正确的方法,或者是吗?
如果你想在未来做一些不同的事情,那么在未来做一些不同的事情。"pg_dumpall“保留了你的选择。您可以恢复整个过程,然后删除不想要的数据库。或者你可以恢复整个,然后重新抛出你想要的东西。或者将您想要的从原始服务器中转储出来,如果它仍然存在的话。或者使用vi、sed、awk或perl来咀嚼"pg_dumpall“.sql文件,以便它只做您想做的事情。
如果您不喜欢这些选项中的任何一个,您可以执行一个pg_dumpall -g,并附带每个单独数据库的pg_dump -C。如果您的主要用例要还原单个数据库,但不知道它将是哪一个数据库,这将比前面的选项更快,并且可以在比原始数据库更小的机器上运行。但这也是有点难以记录,更有可能是文件不同步,彼此之间。
https://dba.stackexchange.com/questions/229964
复制相似问题