微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

postgresql – 我需要在没有可用磁盘空间的情况下运行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

原文地址:https://www.jb51.cc/postgresql/192271.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐