下面的选项目的是在 PostgreSQL 代码上使用,并且在某些情况下可以帮助恢复严重损坏了的数据库。在生产环境里没有理由使用这些设置。因此,我们把他们从样例 postgresql.conf 文件中排除了出去。请注意许多这些选项要求特殊的源代码编译标志才能运转。
允许修改系统表的结构。它可以被 initdb 使用。这个值只能在服务器启动的时候设置。
打开各种断言检查。这是调试助手。如果你经历了奇怪的问题或者崩溃,那么你可能会想把这个打开,因为它可能暴露编程的错误。要使用这个选项,我们必须在编译 PostgreSQL 的时候定义宏 USE_ASSERT_CHECKING(通过 configure 选项 --enable-cassert 完成)。请注意,如果启用断言选项编译 PostgreSQL ,那么 debug_assertions 缺省就是 on 。
读取系统表时忽略系统索引(但是修改系统表时依然同时修改索引)。这个在从系统索引被破坏的表中恢复数据的时候很有用。该参数不能在会话启动之后修改。
如果为非零,那么在一个新的服务器进程启动并完成认证过程之后,就会延迟这么多秒。这样就给我们一个机会用调试器附着在一个服务器进程上跟踪认证里面的异常行为。该参数不能在会话启动之后修改。
如果为非零,那么在一个新的服务器进程派生出来之后,就会延迟这么多秒,然后才会继续认证过程。这样就给我们一个机会用调试器附着在一个服务器进程上跟踪认证里面的异常行为。这个选项只能在服务器启动的时候或者在 postgresql.conf 文件里设置。
为 LISTEN 和 NOTIFY 命令生成大量调试输出。client_min_messages 或 log_min_messages 必须是 DEBUG1 或者更低才能把这些输出分别发送到客户端或者服务器日志。
如果打开,发出在排序操作中的资源使用的有关信息。这个选项只有在编译 PostgreSQL 的时候定义了 TRACE_SORT 宏的时候才可用(不过,目前 TRACE_SORT 缺省就是定义了的)。
各种其它的代码跟踪和调试选项。
打开 WAL 相关的调试输出。只有在编译 PostgreSQL 的时候打开了 WAL_DEBUG 宏的情况下,这个选项才可用。
如果侦测到一个损坏了的页面头通常会导致 PostgreSQL 报告一个错误,并且退出当前命令。把 zero_damaged_pages 设置为 on 则令系统报告一个警告,把损坏的页面填充零,然后继续处理。这种行为会破坏数据,也就是所有在已经损坏页面上的行。但是它允许你绕开坏页面然后从表中尚存的未损坏页面上继续检索数据行。因此它在因为硬件或者软件错误导致的崩溃中进行恢复是很有用的。通常你不应该把它设置为 on ,除非你已经彻底放弃从崩溃的页面中恢复数据。缺省的设置是 off ,并且只有超级用户可以改变它。