为 postgreSQL 清理数据库终止

Zam*_*ues 4 postgresql

我正在做数据库清理以释放postgreSQL数据库的磁盘空间。相应的桌子尺寸很大,需要很长时间才能完成吸尘。但不幸的是,由于网络连接缓慢,网络连接终止,导致吸尘在中间终止。

我担心是否会发生任何数据库损坏。我可以再次发出数据库真空命令吗?

vacuum full message_log;

请说清楚。

Cra*_*ger 6

我担心是否会发生任何数据库损坏

不会因为中断而导致数据库损坏VACUUM,无论是整个数据库还是只有一个表,无论是普通表VACUUM还是VACUUM FULL. VACUUM随时中止是完全安全的。在最坏的情况下,它会留下一些额外的表和索引膨胀,稍后VACUUM运行(完成)将清理。

事实上,只要底层存储子系统尊重fsync(),它也是崩溃安全的,这是PostgreSQL可靠性的基本要求。如果 PostgreSQL 崩溃,或者机器是否突然重置,甚至都无关紧要。在这种情况下,PostgreSQL 只会从事务日志中恢复。