1

我想制作一个脚本,它将在内存中运行 postgres 而没有持久性。我读了这个页面:http ://www.postgresql.org/docs/9.1/static/non-durability.html 但我不明白如何在脚本中设置这个参数。请你帮助我好吗?

感谢帮助!

4

2 回答 2

3

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

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

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

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

于 2012-10-17T12:38:59.583 回答
0

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

pg_createcluster -d /dev/shm/mypgcluster 8.4 ramcluster

创建一个基于 ram 的集群。请注意,您必须执行以下操作:

pg_drop cluster 8.4 ramcluster 

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

于 2012-10-18T02:11:53.713 回答