是否可以使用其数据备份和还原实例化视图?


10

我有一些难以计算的物化视图,我希望能够使用实际存储的数据而不是通过重新计算来进行备份和还原。

在PostgreSQL 9.4中可能吗?

(另一种方法是创建实际的表,但是很难“刷新”它们)


3
您可以copy用来创建数据的纯文本转储(或其他任何导出实用程序)。虽然不确定如何还原它。
a_horse_with_no_name

您可以使用psql -c“ \ COPY ....” -h some_IP数据库将CSV从COPY“管道”传送到远程服务器,或从远程服务器“通过管道”将CSV“管道”,尽管显然,您必须在要还原到的位置上创建了表结构。
约翰·鲍威尔,

Answers:


8

并不是的。您必须记住pg_dump命令会创建简单的CREATE TABLE和INSERT语句等。因此,有效地运行pg_restore时,您只需在服务器上运行CREATE和INSERT语句,然后插入数据就需要一个“ INSERT INTO MATERIALIZED VIEW”命令。这是没有意义的,因为通过快捷方式获取数据还会危及视图的“完整性”-您可以在手动还原过程中插入无效的数据,否则视图将不会返回。因此,我怀疑PostgreSQL是否会支持将实例化视图数据直接手动恢复到数据库中。

如果需要备份实际数据,我建议您使用表而不是物化视图,并对表运行计划的DELETE FROM / INSERT INTO语句。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.