leeand00 Asked: 2019-05-03 10:06:06 +0800 CST2019-05-03 10:06:06 +0800 CST 2019-05-03 10:06:06 +0800 CST 当有用户在 Windows Server 20XX 上使用它时配置 pg_admin 9.6? 772 我读了一些关于pg_ctl reload(我不确定那是否在 pg 的 Windows 发行版上)...还有一种方法可以验证配置不会完全破坏它,比如apachectl configtest? postgresql windows-server 1 个回答 Voted Best Answer jjanes 2019-05-03T13:59:04+08:002019-05-03T13:59:04+08:00 我不认为 PostgreSQL 有类似的东西。 pg_ctl reload确实检查配置文件的语法,但它只适用于正在运行的服务器。如果存在语法错误,它会报告它,但它会将其报告给正在运行的服务器的日志文件,而不是命令行。 如果没有语法错误,那么它将应用那些它可以应用到正在运行的服务器的更改,这似乎不是您想要的。 某些设置无法通过重新加载更改,只能完全重新启动。对这些设置的更改将记录在日志文件中,然后将被忽略。其他的东西称为错误,但不是语法错误。这些东西也会被报告到日志文件中并被忽略。但是这些条件不会阻止其他更改应用于正在运行的服务器。 如果您更改“shared_buffer=1TB”,那是有效的语法和语义,因此如果您尝试重新加载它,您不会在这方面收到警告。但它也不会应用更改,因为 shared_buffers 在没有完全重启的情况下无法更改。然后,如果您尝试重新启动,您的服务器将停止然后无法再次启动,因为您的服务器(可能)没有可用的 1TB 内存。 您的评论专门询问有关添加用户的问题。这与我想到的有点不同。在 PostgreSQL 中,您可以单独通过 SQL 添加用户,只要它们与 pg_hba.conf 中已经存在的模式相匹配。如果您确实需要更改 pg_hba.conf(添加主机,或将特定主机绑定到特定用户),则需要重新加载,这也可以通过 SQL 在 SQL 中完成SELECT pg_reload_conf();. pg_hba.conf 文件比 postgresql.conf 文件简单很多。但据我所知,仍然没有类似“lint”的工具。它永远不需要重新启动才能生效(除非您将其更改为调用新模块,例如 ssl,它们本身尚未设置并且需要重新启动才能设置)。它只需要重新加载。如果您将语法错误引入 pg_hba.conf,那么重新加载将不理会事情,并向日志文件投诉。如果您不注意这些投诉并发出重新启动,您的服务器将停止,然后由于 pg_hba.conf 中的语法错误而拒绝再次启动。因此,好的经验法则是在重新加载就足够时永远不要重新启动,并在重新加载后查看日志文件。另外,尽量在 pg_hba 中使用通配符。
我不认为 PostgreSQL 有类似的东西。
pg_ctl reload
确实检查配置文件的语法,但它只适用于正在运行的服务器。如果存在语法错误,它会报告它,但它会将其报告给正在运行的服务器的日志文件,而不是命令行。如果没有语法错误,那么它将应用那些它可以应用到正在运行的服务器的更改,这似乎不是您想要的。
某些设置无法通过重新加载更改,只能完全重新启动。对这些设置的更改将记录在日志文件中,然后将被忽略。其他的东西称为错误,但不是语法错误。这些东西也会被报告到日志文件中并被忽略。但是这些条件不会阻止其他更改应用于正在运行的服务器。
如果您更改“shared_buffer=1TB”,那是有效的语法和语义,因此如果您尝试重新加载它,您不会在这方面收到警告。但它也不会应用更改,因为 shared_buffers 在没有完全重启的情况下无法更改。然后,如果您尝试重新启动,您的服务器将停止然后无法再次启动,因为您的服务器(可能)没有可用的 1TB 内存。
您的评论专门询问有关添加用户的问题。这与我想到的有点不同。在 PostgreSQL 中,您可以单独通过 SQL 添加用户,只要它们与 pg_hba.conf 中已经存在的模式相匹配。如果您确实需要更改 pg_hba.conf(添加主机,或将特定主机绑定到特定用户),则需要重新加载,这也可以通过 SQL 在 SQL 中完成
SELECT pg_reload_conf();
. pg_hba.conf 文件比 postgresql.conf 文件简单很多。但据我所知,仍然没有类似“lint”的工具。它永远不需要重新启动才能生效(除非您将其更改为调用新模块,例如 ssl,它们本身尚未设置并且需要重新启动才能设置)。它只需要重新加载。如果您将语法错误引入 pg_hba.conf,那么重新加载将不理会事情,并向日志文件投诉。如果您不注意这些投诉并发出重新启动,您的服务器将停止,然后由于 pg_hba.conf 中的语法错误而拒绝再次启动。因此,好的经验法则是在重新加载就足够时永远不要重新启动,并在重新加载后查看日志文件。另外,尽量在 pg_hba 中使用通配符。