2016-07-26 33 views
0

我从我的生产environtment每天转储做:Postgres日常数据转储和水化堵塞磁盘空间?

pg_dump <database name> > dump_<date>.sql 

然后我转移这到分期和由第一丢弃表导入分期分贝:

drop schema public cascade; 
create schema public; 

然后该干嘛如下:

psql <database name> < dump_<date>.sql 

但是,它似乎像分期数据库日益变得异常大和更大。此时,即使在删除表&数据后,DB文件夹中也有150 GB的空间。

感觉就像日志或元数据堵塞文件夹。

什么是正确的方法来做到这一点,或者有一个很好的方式来清除这些额外的数据,而不是删除数据库并重新启动它每次。 谢谢!

+0

您是否按照我的答案中的建议检出复制? – e4c5

+0

检查,谢谢! – emraldinho

+0

你好,通过我的一些旧的答案,并遇到这一点。它是如何去的? – e4c5

回答

1

有更好的方法,更好的方法。

https://www.postgresql.org/docs/9.5/static/high-availability.html

的数据库服务器可以一起以允许通过迅速的第二服务器采取 如果主服务器发生故障(高可用性),或以 允许几台计算机来服务相同的数据(负载平衡)。理想情况下,数据库服务器可以无缝地一起工作。提供静态网页的Web服务器 可以很容易地通过将Web请求负载平衡到多台机器进行组合。实际上,只读 数据库服务器也可以相对容易地组合起来。不幸的是,大多数数据库服务器都有请求的读/写组合,并且 读/写服务器难于合并。这是因为尽管 只读数据需要在每台服务器上放置一次,但任何服务器的写入都必须传播到所有服务器,以便将来读取 请求这些服务器返回一致的结果。

现在,当你阅读文档时,它首先看起来非常吓人。然而,实际上你只需要转储整个群集的一个转储,并在postgresql.conf上启用WAL日志记录,然后你可以每天,每周或每月将WAL存档文件复制到另一台服务器上。