Postgres每日数据转储和水合作用会阻塞磁盘空间?

时间:2016-07-26 01:43:27

标签: database postgresql database-migration postgresql-9.3 psql

我通过以下方式从我的生产环境中每天进行转储:

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

然后我将其转移到登台并通过首先删除表来导入登台数据库:

drop schema public cascade;
create schema public;

然后执行以下操作:

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

然而,似乎升级数据库每天变得越来越大。在这一点上,甚至在我放下桌子之后数据,DB文件夹中有150 gb的空间。

感觉像日志或元数据之类的东西堵塞了文件夹。

执行此操作的正确方法是什么,或者除了删除数据库并每次重新启动数据库之外,还有一种清理此额外数据的好方法。 谢谢!

1 个答案:

答案 0 :(得分:1)

有一种更好的方法,一种更好的方式。

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

  

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

现在,当您阅读文档时,它起初似乎非常令人生畏。但实际上,您需要做的就是对整个集群进行一次转储,并在postgresql.conf上启用WAL日志记录,然后您可以每天,每周或每月将WAL存档文件复制到另一台服务器。