Amazon RDS Postgresql快照保留架构,但丢失所有数据

问题描述 投票:1回答:1

使用AWS RDS控制台,我创建了包含多个架构的Postgresql v11数据库的快照备份。然后,我从备份中创建了一个新实例。该过程似乎运行正常,没有错误。但是,在检查新实例中的数据时,我注意到在我的一个架构中,数据并未保留。模式结构,表,索引,约束等看起来不错,但是每个表都是空的(从schema.table中选择count(*)对于模式中的每个表都是0)。所有其他架构看起来都不错,并包含预期的数据。我四处张望(无法在线寻求帮助),并尝试解决此问题时自己尝试了许多测试(更改角色,重建架构,特权等等)。是什么导致我的快照保留整个架构结构,但丢失所有数据本身?

postgresql amazon-web-services relational-database missing-data snapshot
1个回答
1
投票

我终于意识到,问题模式与另一个模式之间的唯一区别是问题模式中的所有表都是使用'UNLOGGED'关键字创建的。这样做是为了提高首次构建模式时插入的数百万行的写入速度。但是,如上所述创建/还原快照时,该过程取决于使用普通(已记录)表写入的WAL文件来还原数据。为了解决我的问题,我只是更改了所有表并将它们设置为记录(更改表schema.table设置为记录)。在此之后,快照工作正常。对于以后采取类似操作的其他任何人,如果最初的大量数据需要使用未记录的表以提高写入速度,则最好在初始数据填充后将其更改为要记录的表(如果您计划使用快照或复制或类似内容)。附带说明,pg_dump / pg_restore仍然适用于未记录的表。

© www.soinside.com 2019 - 2024. All rights reserved.