Provided by: manpages-zh_1.5-1_all bug

NAME

       pg_resetxlog - 姜m一 PostgreSQL 數據庫集群的預寫日誌以及其它控制內容

SYNOPSIS

       pg_resetxlog  [   -f   ]  [   -n   ]  [   -o  oid  ] [  -x xid  ] [  -l
       fileid,seg  ] datadir

DESCRIPTIONyz
       pg_resetxlog                         清理預寫日誌(WAL)並且可以選擇地-
       姜m其它一些控制信息(存儲在       pg_control      檔案中)。      有時-
       唌A如果這些檔案崩潰了,我抳愯這茈\能。                              我-
       怳@定只把它用作最後的方法,就是說只有因為這樣的崩潰導-
       P伺服器無法啟動的時啎~使用。

        在運行這茤R令之後,我怚i能可以啟動伺服器了,但是,一定-
       n記住數據庫可能因為部分提交的事務而含有不完整的數據。
       你應該馬上轉儲你的數據,運行         initdb,然後奐s裝載。          在-
       奐s裝載之後,檢查不完整的部分然後根據需n進行袨_。

        這茤R令只能由安裝伺服器的使用者運行,因為它需n對數據目錄的讀寫權。
       出於安全考慮,你必須在命令行上聲明數據目錄。               pg_resetxlog
       不使用環境變量 PGDATA。

       如果         pg_resetxlog        抱怨說它無法判斷用於        pg_control
       的有效數據,那麼你可以強制它繼續處理,          方法是聲明           -f
       (強制)開關。在這種情況下,那些丟失了的數據的N用模糊的近似數N替。
       大多數字段都可以匹配上,但是下一        OID,下一茖         ID,WAL
       開始地址以及數據庫區域字段可能需n手動幫助,             前惜T茈i以用下-
       掠Q論的開關設置。pg_resetxlog      自己的環境是猜測區域字段的來源;看看
       LANG        等等東西,它抸雩茤M        initdb        運行的環境相匹配。
       如果你不能判斷所有這些字段的正確數A那麼還是可以使用              -f,
       但是這樣恢復過來的數據庫更n懷疑有問題:立即轉儲和姜m是必須的。
       在轉儲之前不n執行任何-
       蚹嚗琲瑣犑@,因為任何這樣的動作都可能把事情搞得更糟糕。

        -o,  -x,  和  -l  開關允許我怳滶妘]置下一 OID,下一茖 ID,以及 WAL
       起始位置的數C    只有在    pg_resetxlog    無法通過讀取    pg_control
       判斷合適的數漁尕才需n它。對於下一茖      ID     而言,一茼w全的數-
       O看看數據目錄裏的  /pg_clog   裏數怳j的檔名,   然後加一,然後再慾W
       1048576。請注意那些檔名是十六進制的。通常我怳]以十六進制的形式聲明開關-
       O最簡單得。 比如,如果 0011 是 pg_clog  裏  最大的記錄,-x  0x1200000
       就可以了(後悸漱蚢s提供了合適的撚n)。                              WAL
       的起始位置應該比目前存在於數據目錄裏得          /pg_xlog            裏-
       悸漸籉騔仵袑像ㄓj。它也是十六進制的,並且有兩部分。比如,如果
       000000FF0000003A   是   pg_xlog   裏最大的條目,    那麼-l    0xFF,0x3B
       就可以了。我怢S有很容易的辦法來判斷比數據庫中最大的  OID  大一號的下一
       OID, 不過很走運的是獲取正確的下一 OID 並非非常關鍵。

        開關 -n (無操作)指示  pg_resetxlog  列印從  pg_control  奐s構造的數-
       M後不蚹鴷籉鯫就退出。     這主n是一蚑楖掑u具,但是在     pg_resetxlog
       真正處理前進行的整潔性檢查的時唹i能會有用。

NOTES`N
        在           postmaster            伺服器運行的時啎@定不n運行這茤R令。
       如果發現在數據檔案目錄裏有鎖檔案,那麼  pg_resetxlog   將拒絕啟動。如果
       postmaster                              崩潰,那麼可能會剩下一蚋篔仵蛂F
       如果這樣,你可以刪除該鎖檔案以便允許                       pg_resetxlog
       運行。但是在你這麼做之前,一定-
       n確信沒有任何postmaster或者後端伺服器仍在運行。

者
       Postgresql  <laser@pgsqldb.org>