我有一个无法安全终止的进程:自动真空:真空public.mytable (以防止绕线)
此表已被清除(除了一些由于该表在硬件问题期间损坏而无法删除的条目外),并且无法删除,因为真空正在阻止此操作。我不得不运行杀死-9来停止这个进程并重新启动数据库,但是您不能禁用这个自动真空(以防止事务包装),因此自动真空会重新出现,并立即被这个损坏的表卡住。
对此有什么见解吗?
发布于 2018-09-06 18:59:40
首先,关闭数据库服务器,并将数据目录的物理副本放到一个安全的位置。然后,您可以截断损坏表的数据文件。例如:
--Get datafile path
db=# SELECT pg_relation_filepath('corrupted_table');
pg_relation_filepath
----------------------
base/1234/56789
(1 row)touch 56789的空文件TRUNCATE TABLE corrupted_table;希望这能有所帮助。
https://stackoverflow.com/questions/52209140
复制相似问题