postgresql – 我需要在没有可用磁盘空间的情况下运行VACUUM FUL
发布时间:2020-12-13 16:20:44 所属栏目:百科 来源:网络整理
导读:我有一张桌子占据了我们服务器上近90%的高清空间.我决定放下几列以释放空间.但我需要将空间返回给操作系统.但问题是,如果我运行VACUUM FULL并且没有足够的可用空间来制作表的副本,我不确定会发生什么. 我知道不应该使用VACUUM FULL,但我认为这是这种情况下
我有一张桌子占据了我们服务器上近90%的高清空间.我决定放下几列以释放空间.但我需要将空间返回给操作系统.但问题是,如果我运行VACUUM FULL并且没有足够的可用空间来制作表的副本,我不确定会发生什么.
我知道不应该使用VACUUM FULL,但我认为这是这种情况下的最佳选择. 任何想法,将不胜感激. 我正在使用PostgreSQL 9.0.6
由于您没有足够的空间来运行vacumm或重建,您可以通过恢复它们来重建
postgresql数据库.恢复数据库,表,索引将释放空间和碎片整理.之后,您可以设置自动维护以定期对数据库进行真正的迁移.
1备份postgresql服务器上的所有数据库 您需要将所有数据库备份到具有足够空间的分区.如果您使用的是Linux,则可以使用gzip进一步压缩备份以节省空间 su - postgres pg_dumpall | gzip -9 > /some/partition/all.dbs.out.gz 2备份配置文件 cp /path/to/postgresql/data_directory/*.conf /some/partition/ 3停止Postgresql pg_ctl -D /path/to/postgresql/data_directory stop 4擦除数据目录的内容 rm -Rf /path/to/postgresql/data_directory/* 5运行initdb以重新启动数据目录 initdb -D /path/to/postgresql/data_directory 6恢复配置文件 cp /some/partition/*.conf /path/to/postgresql/data_directory/*.conf 7启动Postgresql pg_ctl -D /path/to/postgresql/data_directory start 8恢复所有数据库的转储 gunzip /some/partition/all.dbs.out.gz psql -f /some/partition/all.dbs.out (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |