我想创建一个在没有持久性的情况下在内存中运行postgres的脚本。 我读了这页:http://www.postgresql.org/docs/9.1/static/non-durability.html 但我不明白如何在脚本中设置这些参数。你能帮帮我吗?
感谢您的帮助!
答案 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
并在重启等时重新创建它。