在应用程序启动时从代码调整/重新启动Postgresql服务器

用户名

我在C#中有一个应用程序,shared_buffers该应用程序的首次启动时应将Postgresql服务器设置为至少512MB。因此,我需要在代码中执行以下操作:

  1. 检查是否shared_buffers小于512MB。
  2. 设置shared_buffers为512MB。
  3. 重新启动postgresql服务器以应用更改。
  4. 重新启动完成后,继续运行应用程序。

如何在代码中做到这一点?

克雷格·林格(Craig Ringer)

在PostgreSQL 9.4及更高版本中,您可以ALTER SYSTEM SET用来修改postgresql.auto.conf以添加参数。

因此,您可以:

SHOW shared_buffers;

如果太低:

ALTER SYSTEM
  SET shared_buffers = '512MB';

然后,您必须重新启动PostgreSQL。从设计上讲,这无法从PostgreSQL内部完成,因为如果重新启动过程中出现问题,那么您将无法再连接到它,因此您很容易将自己锁定在外。您可以重新加载配置SELECT pg_reload_conf(),但shared_buffers只生效满重启,而不仅仅是一个配置重装。

因此,一旦更改了配置,您的应用将需要使用特定于外部OS和特定于安装方法的方式来重新启动PostgreSQL。或者只是告诉用户为您重新启动它。

重新启动:

  • 对于安装和管理了PostgreSQL自定义的任何平台(Windows,Mac或Linux),请使用pg_ctl restart

  • 使用方法:在Windows上,安装为服务net stop [servicename],然后net start [servicename]

  • 在系统范围内安装了PostgreSQL的旧Linux(pre-systemd)上:使用service命令,例如service restart [servicename]这必须以root用户或通过sudo运行。

  • 在系统范围内安装了PostgreSQL的较新Linux(systemd)上:使用 systemctl restart [servicename].service


如果您使用的是较旧的PostgreSQL,而无需ALTER SYSTEM SET打开,修改和编写postgresql.conf

为了避免解析和修改整个过程,postgresql.conf我发现附加该include_dir = 'conf.d'选项,然后conf.d/myapp.conf在datadir中创建一个仅具有我想要的配置替代值很有用的方法

include_dir在9.3及更高版本中可用对于较旧的版本,您只需postgresql.conf直接进行修改即可。


如果您的应用程序首先负责安装和设置PostgreSQL,则可以在启动数据库shared_buffers之后initdb和之前在配置文件中设置所需的设置

如果您要在应用程序中捆绑PostgreSQL,则我强烈希望采用这种方法。不要使用安装程序,只需将二进制文件捆绑在安装程序中即可。通过postgres直接调用命令或使用来启动应用程序时启动PostgreSQL pg_ctl程序退出时将其停止。使用非默认端口(即不使用的端口是5432),也没有一个下安装postgres的用户,把数据目录放到类似%PROGRAMDATA%\MyApp\postgres否则避免与官方的PostgreSQL安装冲突。这将为您节省很多痛苦。

看:

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当应用程序服务器需要重新启动时,哪种文件类型会更改?

来自分类Dev

以编程方式使Java Web应用程序重新启动时的所有会话失效

来自分类Dev

运行新/更新的应用程序文件,而无需重新启动服务器

来自分类Dev

春季启动应用程序重新启动时,HSQL DB丢失

来自分类Dev

如何在Spring Boot应用程序启动时启动H2 TCP服务器?

来自分类Dev

如何使通过Puma和Capistrano部署的Rails应用程序在重新启动时启动

来自分类Dev

当应用程序在后台和iPhone重新启动时如何使用ibeacon

来自分类Dev

Ubuntu服务器16.04.4在重新启动时挂起,但未关闭电源

来自分类Dev

每次重新启动时NVIDIA X服务器设置都会丢失

来自分类Dev

Kafka Stream:应用程序重新启动时的Kafka Windowed Stream行为

来自分类Dev

每次重新启动时NVIDIA X服务器设置都会丢失

来自分类Dev

在不终止/重新启动服务器的情况下更新Web应用程序的[代码]

来自分类Dev

重新启动服务器时自动启动程序(搜索Sphinx)?

来自分类Dev

如何以特定用户身份在重新启动时启动Teampeak服务器

来自分类Dev

当应用程序服务器需要重新启动时,哪种文件类型会更改?

来自分类Dev

运行新的/更新的应用程序文件,而无需重新启动服务器

来自分类Dev

配置Unix apache Web服务器以在重新启动时自动启动?

来自分类Dev

重新启动时名称服务器更改

来自分类Dev

当蛤lam运行时,服务器在重新启动时挂起

来自分类Dev

在根环境中启动时启动应用程序,然后进行监视,如果关闭或崩溃则重新启动

来自分类Dev

应用程序重新启动时,ADFS的ProviderKey更改

来自分类Dev

在Linux服务器关闭或重新启动时发送警报电子邮件

来自分类Dev

春季启动,thymeleaf加载上载的映像,而无需重新启动应用程序服务器

来自分类Dev

应用程序重新启动时保存视图状态android

来自分类Dev

每次重新启动时都启动 apache web 服务器 cloud-init

来自分类Dev

每次重新启动时都失去与服务器的连接 (18.04 LTS)

来自分类Dev

在系统重新启动时重新启动我的 Web 服务器

来自分类Dev

当我们处理它时,Asp.net 应用程序在实时服务器上崩溃,在重新启动 IIS 时它再次工作

来自分类Dev

当应用程序被系统杀死/重新启动时,Android 服务崩溃

Related 相关文章

  1. 1

    当应用程序服务器需要重新启动时,哪种文件类型会更改?

  2. 2

    以编程方式使Java Web应用程序重新启动时的所有会话失效

  3. 3

    运行新/更新的应用程序文件,而无需重新启动服务器

  4. 4

    春季启动应用程序重新启动时,HSQL DB丢失

  5. 5

    如何在Spring Boot应用程序启动时启动H2 TCP服务器?

  6. 6

    如何使通过Puma和Capistrano部署的Rails应用程序在重新启动时启动

  7. 7

    当应用程序在后台和iPhone重新启动时如何使用ibeacon

  8. 8

    Ubuntu服务器16.04.4在重新启动时挂起,但未关闭电源

  9. 9

    每次重新启动时NVIDIA X服务器设置都会丢失

  10. 10

    Kafka Stream:应用程序重新启动时的Kafka Windowed Stream行为

  11. 11

    每次重新启动时NVIDIA X服务器设置都会丢失

  12. 12

    在不终止/重新启动服务器的情况下更新Web应用程序的[代码]

  13. 13

    重新启动服务器时自动启动程序(搜索Sphinx)?

  14. 14

    如何以特定用户身份在重新启动时启动Teampeak服务器

  15. 15

    当应用程序服务器需要重新启动时,哪种文件类型会更改?

  16. 16

    运行新的/更新的应用程序文件,而无需重新启动服务器

  17. 17

    配置Unix apache Web服务器以在重新启动时自动启动?

  18. 18

    重新启动时名称服务器更改

  19. 19

    当蛤lam运行时,服务器在重新启动时挂起

  20. 20

    在根环境中启动时启动应用程序,然后进行监视,如果关闭或崩溃则重新启动

  21. 21

    应用程序重新启动时,ADFS的ProviderKey更改

  22. 22

    在Linux服务器关闭或重新启动时发送警报电子邮件

  23. 23

    春季启动,thymeleaf加载上载的映像,而无需重新启动应用程序服务器

  24. 24

    应用程序重新启动时保存视图状态android

  25. 25

    每次重新启动时都启动 apache web 服务器 cloud-init

  26. 26

    每次重新启动时都失去与服务器的连接 (18.04 LTS)

  27. 27

    在系统重新启动时重新启动我的 Web 服务器

  28. 28

    当我们处理它时,Asp.net 应用程序在实时服务器上崩溃,在重新启动 IIS 时它再次工作

  29. 29

    当应用程序被系统杀死/重新启动时,Android 服务崩溃

热门标签

归档