我正在运行 Postgres 8.4,我想更改用户的身份验证方法。我的理解是,我必须在 中执行此操作pg_hba.conf,然后使用pg_ctl reload(或在本例中为service postgresql reload)重新加载配置文件以使设置生效。
但是,我还使用多个进程从平面文件中导入了大量数据。
这样做安全吗?
是的,它是安全的,至少在 9.2 上是安全的,而且我不知道自 8.4 以来在这方面有任何重大变化。如果需要绝对的确定性,您应该initdb在更改生产系统之前使用测试实例进行试验。
在以下使用 Pg 9.3-pre 进行的测试中,如果 PostgreSQL 由于语法错误或其他严重问题而无法重新读取配置文件,它将跳过重新加载,例如:
LOG: received SIGHUP, reloading configuration files
LOG: syntax error in file "..../postgresql.conf" line 215, near token "!"
LOG: configuration file "..../postgresql.conf" contains errors; no changes were applied
Run Code Online (Sandbox Code Playgroud)
如果单个参数无效,它将应用其他更改但跳过该参数:
LOG: received SIGHUP, reloading configuration files
LOG: -10 is outside the valid range for parameter "vacuum_cost_delay" (0 .. 100)
LOG: configuration file "..../postgresql.conf" contains errors; unaffected changes were applied
Run Code Online (Sandbox Code Playgroud)
即使您以某种方式设法找到 PostgreSQL 关闭甚至崩溃的情况,您必须做的最糟糕的事情就是重新启动它并从上次提交的点恢复写入。未提交的工作保证回滚,提交的工作保证在断开连接、数据库重启甚至整个系统崩溃后应用到数据库。
如果您的批量写入不定期提交其工作并写入本地检查点,则它们可能应该如此,以便在它们被中断时您可以恢复它们。减少事务长度也使数据库的一些管理任务更容易和更高效。
| 归档时间: |
|
| 查看次数: |
2398 次 |
| 最近记录: |