PostgreSQL关闭了耐用性

时间:2012-10-17 12:33:02

标签: postgresql durability

我想创建一个在没有持久性的情况下在内存中运行postgres的脚本。 我读了这页:http://www.postgresql.org/docs/9.1/static/non-durability.html 但我不明白如何在脚本中设置这些参数。你能帮帮我吗?

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

大多数参数(例如fsync)只能在postgresql.conf中设置。通过重新启动PostgreSQL来应用更改。它们适用于整个数据库集群 - 该PostgreSQL安装中的所有数据库。那是因为数据库都共享一个postmaster,write-ahead log和一组共享系统表。

您可以在脚本中的SQL级别设置的唯一参数是synchronous_commit。通过设置synchronous_commit = 'off',您可以说“如果数据库在接下来的几秒钟内崩溃,则可以丢失此事务,只需确保它仍然以原子方式应用”。

我在之前的回答Optimise PostgreSQL for fast testing中写了更多关于这个主题的内容。

如果你想用脚本设置其他参数,你可以这样做,但你必须通过使用脚本打开和修改postgresql.conf,然后重新启动PostgreSQL来实现。像sed这样的文字处理工具使这种工作变得更容易。

答案 1 :(得分:0)

如果您正在运行基于debian的Linux发行版,您可以执行以下操作:

pg_createcluster -d /dev/shm/mypgcluster 8.4 ramcluster

创建基于ram的群集。请注意,您必须这样做:

pg_drop cluster 8.4 ramcluster 

并在重启等时重新创建它。