我想删除900多个postgres模式(总共容纳40,000个表)。但是,似乎要我先清理所有内容,因为每当尝试删除模式时都会得到此信息。
ERROR: database is not accepting commands to avoid wraparound data loss in database
有没有一种方法可以删除大量模式而不必先进行清理?
答案 0 :(得分:2)
运行vacuum命令是否存在任何问题。就像数据库的垃圾回收一样。我使用postgre数据库,并在执行任何主要工作(如备份或创建整个数据库的sql脚本)之前使用此命令。
VACUUM 回收死元组占用的存储。在普通的PostgreSQL操作中,被更新删除或过时的元组不会从表中物理删除。它们将保持存在,直到完成VACUUM。因此,有必要定期进行VACUUM,尤其是在频繁更新的表上。
答案 1 :(得分:0)
您有两种选择。进行清理,或删除整个数据库。必须避免绕开xid。
https://blog.sentry.io/2015/07/23/transaction-id-wraparound-in-postgres
答案 2 :(得分:0)
除了VACUUM删除数据库外,您无能为力。
此外,如果您不执行VACUUM,数据库将无法用于任何事情,而不仅限于您要删除的架构。