下面的參數目的是用在源代碼上的,在某些情況下可以幫助恢復嚴重損壞了的數據庫。一定不要在生產數據庫中去使用。同樣,不要在配置文件中進行設置。
allow_system_table_mods (boolean)
允許對系統表結構的修改。它可以被initdb使用。這個參數只能在服務器啟動時設置。該參數僅用于系統表或索引損壞時的修復工作。
debug_deadlocks (boolean)
如果設置,當死鎖超時發生時,轉儲所有當前鎖的信息。
只有在編譯時定義了LOCK_DEBUG宏,這個參數才可用。
ignore_checksum_failure (boolean)
只有當data checksums被啟用時才有效。
在讀取過程中檢測到一次校驗碼失敗通常會導致數據庫報告一個錯誤。設置ignore_checksum_failure為打開會導致系統忽略失敗(但是仍然報告一個警告),并且繼續執行。這種行為可能導致崩潰、傳播或隱藏損壞或者其他嚴重的問題。但是,它允許你繞過錯誤并且在塊頭部仍然健全的情況下從表中檢索未損壞的元組。如果頭部被損壞,即便這個選項被啟用系統也將報告一個錯誤。默認設置是off,并且只能被超級用戶改變。
ignore_system_indexes (boolean)
讀取系統表時忽略系統索引(但是修改系統表時依然同時更新索引)。這在從被破壞的系統索引中恢復數據的時有用。這個參數在會話開始之后不能被更改。
log_btree_build_stats (boolean)
如果設置,會記錄B 樹操作上的系統資源使用情況統計(內存和 CPU)。
只有在編譯時定義了BTREE_BUILD_STATS宏,這個參數才可用。
post_auth_delay (integer)
如果為非零,那么在一個新的服務器進程派生出來之后并且在它開始認證過程之前,就會發生這么多秒的延遲。這是為了給開發者們一個機會在一個服務器進程上附加一個調試器。這個參數在會話開始之后不能被更改。
pre_auth_delay (integer)
如果為非零,那么在一個新的服務器進程派生出來之后并且在它開始認證過程之前,就會發生這么多秒的延遲。這是為了給開發者們一個機會在一個服務器進程上附加一個調試器來跟蹤認證過程中的不當行為。這個參數只能在postgresql.conf文件中或在服務器命令行上設置。
trace_notify (boolean)
為LISTEN和NOTIFY命令生成大量調試輸出。client_min_messages和log_min_messages必須是DEBUG1或者更低才能把這種輸出分別發送到客戶端或者服務器日志。
trace_recovery_messages (enum)
啟用記錄與恢復有關的調試輸出,否則無法記錄。這個參數允許用戶覆蓋log_min_messages的正常設置,但只用于指定的消息。這個參數的目的是用來調試熱后備。有效值包括DEBUG5、DEBUG4、DEBUG3、DEBUG2、DEBUG1和LOG。默認值LOG完全不會影響日志決定。其他值會記錄相關級別或更高級別的與恢復相關的調試消息,就好像它們具有LOG優先級一樣;對于log_min_messages的通用設置,這會無條件的將消息發送給服務器日志。這個參數只能在postgresql.conf文件中或在服務器命令行上設置。
trace_sort (boolean)
如果打開,發出在排序操作中的資源使用的相關信息。只有在編譯時定義了TRACE_SORT宏, 這個參數才可用(不過,當前在默認情況下就定義了TRACE_SORT)。
trace_locks (boolean)
如果開啟,發出鎖使用情況的信息。被轉儲信息中包括鎖操作的類型、鎖的類型和被鎖或被解鎖對象的唯一標識符。同樣包括的還有已經授予這個對象的鎖類型的位掩碼和等待這個對象的鎖類型的位掩碼。對每一種鎖類型,已授權鎖和等待鎖的計數也會被一起轉儲。
被轉儲結構的詳細信息可以在src/include/storage/lock.h中找到。
只有在編譯時定義了LOCK_DEBUG宏,這個參數才可用。
trace_lwlocks (boolean)
如果開啟,發出輕量級鎖的使用信息。輕量級鎖主要是為了提供對共享內存數據結構的互斥訪問。
只有在編譯時定義了LOCK_DEBUG宏,這個參數才可用。
trace_userlocks (boolean)
如果開啟,發出關于用戶鎖使用的信息。與trace_locks的輸出一樣,但只用于咨詢鎖。只有在編譯時定義了LOCK_DEBUG宏,這個參數才可用。
trace_lock_oidmin (integer)
如果設置,不會跟蹤小于這個OID 的鎖(用于避免在系統表上的輸出)。只有在編譯時定義了LOCK_DEBUG宏,這個參數才可用。
trace_lock_table (integer)
無條件地跟蹤此表(OID)上的鎖。
只有在編譯時定義了LOCK_DEBUG宏,這個參數才可用。
wal_consistency_checking (string)
此參數旨在用于檢查WAL重做例程中的錯誤。啟用時,與WAL記錄一起修改的任何緩沖區的全頁圖像都會添加到記錄中。如果記錄隨后重播,則系統將首先應用每條記錄,然后測試記錄修改的緩沖區是否與存儲的圖像匹配。在某些情況下(如提示位),較小的變化是可以接受的,并且將被忽略。任何意想不到的差異都會導致致命的錯誤,終止恢復。
此設置的默認值是空字符串,它將禁用該功能。可以將它設置為all以檢查所有記錄,或者資源管理器的逗號分隔列表,以僅檢查源自這些資源管理器的記錄。目前,支持的資源管理器是 heap、heap2、btree、hash、gin、gist、sequence、spgist、brin和generic。只有超級用戶可以更改此設置。
wal_debug (boolean)
如果被打開,WAL相關的調試輸出將被發出。只有在編譯時定義了WAL_DEBUG宏的情況下,這個參數才可用。
zero_damaged_pages (boolean)
檢測到一個損壞的頁面頭部通常會導致數據庫報告一個錯誤,并且中止當前事務。把zero_damaged_pages設置為打開會讓系統報告一個警告、把損壞的頁面填充零,然后繼續處理。這種行為會毀掉數據,即被損壞頁面上的所有行。但是它允許你繞開錯誤并且從可能存在表中的任何未損壞頁面中檢索行。如果由于一次硬件或軟件錯誤而發生毀壞,這種方法可用于恢復數據。通常你不應該把它設置為打開,除非你已經徹底放棄從表的損壞頁面中恢復數據。被填充零的頁面不會被強制到磁盤上,因此我們推薦在再次關閉這個參數之前先重建表或索引。默認的設置是off,并且只有超級用戶可以改變它。