将尝试描述问题:
我们有一个表格“故事”,当前统计数据:
总关系大小:188 GB
仅索引大小:52 GB
n_tup_del:274299085
n_live_tup:368846049
我们目前的SSD上还有约6 GB的存储空间。
现在,我们安装了另一台具有约190 GB可用空间的PC,它可作为/ dump文件夹使用。
我们如何释放空间?
使pg_dump这个表,然后截断它,然后还原?它有多安全?
还是我们可以以某种方式允许“真空已满”来使用安装的设备(/转储)空间?我们知道,真空已满将锁定访问权限。
谢谢!
答案 0 :(得分:1)
Windows“共享”不是数据库的安全存储。
首先,执行备份。
忽略外键约束,您可以按照以下步骤操作:
创建位置为dump
的表空间/dump
。
在此处创建一个空副本:
CREATE TABLE copy (LIKE largetable) TABLESPACE dump;
运行
INSERT INTO copy SELECT * FROM largetable;
删除大表。
将新表移动到默认表空间:
ALTER TABLE copy SET TABLESPACE pg_default;
ALTER TABLE copy RENAME TO largetable;
根据需要创建索引和约束。
清理:
DROP TABLESPACE dump;