我正在做数据库清理以释放postgreSQL
数据库的磁盘空间。相应的桌子尺寸很大,需要很长时间才能完成吸尘。但不幸的是,由于网络连接缓慢,网络连接终止,导致吸尘在中间终止。
我担心是否会发生任何数据库损坏。我可以再次发出数据库真空命令吗?
vacuum full message_log
;
请说清楚。
我担心是否会发生任何数据库损坏
不会因为中断而导致数据库损坏VACUUM
,无论是整个数据库还是只有一个表,无论是普通表VACUUM
还是VACUUM FULL
. VACUUM
随时中止是完全安全的。在最坏的情况下,它会留下一些额外的表和索引膨胀,稍后VACUUM
运行(完成)将清理。
事实上,只要底层存储子系统尊重fsync()
,它也是崩溃安全的,这是PostgreSQL可靠性的基本要求。如果 PostgreSQL 崩溃,或者机器是否突然重置,甚至都无关紧要。在这种情况下,PostgreSQL 只会从事务日志中恢复。