我想制作一个脚本,它将在内存中运行 postgres 而没有持久性。我读了这个页面:http ://www.postgresql.org/docs/9.1/static/non-durability.html 但我不明白如何在脚本中设置这个参数。请你帮助我好吗?
感谢帮助!
我想制作一个脚本,它将在内存中运行 postgres 而没有持久性。我读了这个页面:http ://www.postgresql.org/docs/9.1/static/non-durability.html 但我不明白如何在脚本中设置这个参数。请你帮助我好吗?
感谢帮助!
大多数这些参数,如fsync
,只能在 中设置postgresql.conf
。通过重新启动 PostgreSQL 应用更改。它们适用于整个数据库集群——该 PostgreSQL 安装中的所有数据库。这是因为所有数据库都共享一个 postmaster、write-ahead log和一组共享系统表。
您可以在脚本中的 SQL 级别设置的唯一参数是synchronous_commit
. 通过设置synchronous_commit = 'off'
,您可以说“如果数据库在接下来的几秒钟内崩溃,丢失此事务是可以的,只要确保它仍然以原子方式应用”。
我在之前的回答Optimize PostgreSQL for fast testing中写了更多关于这个主题的内容。
如果您想使用脚本设置其他参数,您可以这样做,但您必须postgresql.conf
使用脚本打开和修改,然后重新启动 PostgreSQL。像这样的文本处理工具sed
使这种工作更容易。
如果您正在运行基于 debian 的 linux 发行版,则可以执行以下操作:
pg_createcluster -d /dev/shm/mypgcluster 8.4 ramcluster
创建一个基于 ram 的集群。请注意,您必须执行以下操作:
pg_drop cluster 8.4 ramcluster
并在重新启动等时重新创建它。