1
10
pg_无法自我恢复。您所能做的就是使用pg_restore生成SQL输出,然后通过SED脚本发送该输出以进行更改。不过,您需要注意如何编写该SED脚本,这样它就不会匹配和更改数据中的内容。 |
2
55
有一个简单的解决方案:
现在您可以使用命令恢复备份转储
这个
|
3
43
快速而肮脏的方式: 1)重命名默认架构:
2)创建新架构作为默认架构:
3)还原数据
4)根据需要重命名架构:
|
4
10
最简单的方法可能是在还原后简单地重命名模式,即使用以下SQL:
我相信,因为您正在使用压缩的存档格式来输出pg_dump,所以在恢复之前不能更改它。选项是使用默认输出并对模式名进行搜索和替换,但这是有风险的,如果不小心可能会导致数据损坏。 |
5
3
如果只有几个表,则可以一次恢复一个表,
或者,在另一个端口上设置另一个服务器,使用新的PostgreSQL服务器进行恢复,重命名模式,将其转储,然后恢复到原始数据库中。当然,这是一个有点笨拙的过程,但它能完成这项工作。 如果你有冒险精神,你也许可以用十六进制编辑器更改转储文件中的数据库名。我认为在转储中只有一个地方提到了它,只要新的和旧的数据库名称相同,它就可以工作。YMMV,不要在生产环境中做这样的事情,不要责怪我,如果这件事爆发了,把你的家乡夷为平地,以及所有其他的常规免责声明。 |
6
2
重命名临时数据库中的架构。 导出架构:
创建新数据库。恢复导出:
(删除数据库)
对于数据,您只需修改集合
|
7
1
如前所述,pg_dump、psql或pg_restore不支持在转储/恢复过程中更改模式名。但使用“plain”格式导出然后修改.sql文件非常简单。这个bash脚本完成了以下基本工作:
用途:
|