18.15. 开发者选项 #
下列参数用于PostgreSQL源代码的开发工作,在某些情况下也用于辅助恢复严重损坏的数据库。没有理由在生产数据库中使用它们。因此,它们被排除在示例postgresql.conf文件之外。请注意,许多参数需要特殊的源代码编译标志才能起作用。
allow_system_table_mods(boolean) #允许修改系统表的结构。此参数由
initdb使用。此参数只能在服务器启动时设置。debug_assertions(boolean) #打开各种断言检查。这是一种调试辅助手段。如果你遇到了奇怪的问题或崩溃,可以打开它,因为它可能暴露出编程错误。要使用这个参数,在构建PostgreSQL时必须定义宏
USE_ASSERT_CHECKING(通过configure选项--enable-cassert完成)。注意,如果PostgreSQL构建时启用了断言,debug_assertions默认为on。ignore_system_indexes(boolean) #读取系统表时忽略系统索引(但是修改系统表时依然同时更新索引)。这在从被破坏的系统索引中恢复数据时有用。这个参数在会话开始之后不能被更改。
post_auth_delay(integer) #如果非零,则在新服务器进程启动并执行认证过程之后,延迟指定的秒数。这旨在给开发者一个机会,用调试器附加到服务器进程上。此参数在会话开始之后不能更改。
pre_auth_delay(integer) #如果非零,则在新服务器进程刚刚派生之后、执行认证过程之前,延迟指定的秒数。这旨在给开发者一个机会,用调试器附加到服务器进程上,跟踪认证过程中的异常行为。此参数只能在
postgresql.conf文件中或在服务器命令行上设置。trace_notify(boolean) #为
LISTEN和NOTIFY命令生成大量调试输出。client_min_messages或log_min_messages必须是DEBUG1或者更低才能把这种输出分别发送到客户端或者服务器日志。trace_sort(boolean) #如果开启,发出排序操作期间资源使用情况的信息。此参数只有在编译PostgreSQL时定义了
TRACE_SORT宏的情况下才可用(不过,TRACE_SORT目前是默认定义的)。trace_locks(boolean)trace_lwlocks(boolean)trace_userlocks(boolean)trace_lock_oidmin(boolean)trace_lock_table(boolean)debug_deadlocks(boolean)log_btree_build_stats(boolean)其他各种代码跟踪和调试选项。
wal_debug(boolean) #打开时,输出与 WAL 相关的调试信息。只有在编译 PostgreSQL 时定义了
WAL_DEBUG宏,该参数才可用。zero_damaged_pages(boolean) #检测到一个损坏的页面头通常会导致PostgreSQL报告一个错误并中止当前命令。把
zero_damaged_pages设置为 on 会让系统改为报告一个警告,把损坏的页面清零,然后继续处理。这种行为将破坏数据,即损坏页面上的所有行。但它允许你越过错误,从表中可能存在的任何未损坏页面中检索行。因此,如果由于硬件或软件错误发生了损坏,它对于恢复数据是有用的。一般来说,只有在你对从表的损坏页面中恢复数据已经不抱希望之后,才应该打开它。默认设置为off,并且只有超级用户能更改它。