アクセラと+αな生活
アクセラとα350と共に過ごす気まぐれ日記です。
Firefox ブラウザ無料ダウンロード
2017年05月
≪04月  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31    06月≫
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
PostgreSQL の可用性を高めてみる。(その1)の構成になるようにPostgreSQL の設定を変更します。
なお、環境は以下となります。

【環境】
VineLinux 4.2
PostgreSQL 8.1

今回 PostgreSQL の変更する概要は
 ○アーカイブコマンドの追加
 ○アーカイブログ(WAL)の出力先を別ディスクに変更
 ○動作確認
です。

【データベースクラスタのバックアップ】
作業前に PostgreSQL を停止し、データベースクラスタ(/var/lib/pgsql/data/)をバックアップして下さい。
PostgreSQL の停止は以下のコマンドを実行して下さい。

# /etc/rc.d/init.d/postgresql stop
Stopping postgresql service: [ OK ]


【アーカイブコマンドの追加】
PostgreSQL のデフォルトでは WAL を出力しますが、データベースへ反映後に削除されてしまうので、データ更新履歴として残りません。
更新履歴がないとアーカイブ適用のリカバリができないため、WAL を別ディレクトリへコピーするように設定します。

ここでは「/var/archives/pg_xlog_back/」に WAL のコピーすることとします。
コピー先はどこでも構いませんが、PostgreSQL のデータベースクラスタと別ディスクに保存するようにして下さい。
同じディスクに保存してしまうと、そのディスクがダウンしてしまうと、データベース本体とアーカイブログを同時に失ってしまうことになります。

「/var/archives/pg_xlog_back/」は以下のコマンドで作成して下さい。

# mkdir /var/archives/pg_xlog_back/
# chown postgres:postgres /var/archives/pg_xlog_back/



次にコピーする設定ですが、設定は「/var/lib/pgsql/data/postgresql.conf」の「archive_command」を vi で以下のように設定します。
「archive_command = 'cp %p /var/archives/pg_xlog_back/%f'」
「%p」は WAL のフルパスファイル名の環境変数、「%f」は WAL のファイル名になります。
(つまり、WAL を指定されたディレクトリへコピーしているだけです)


【アーカイブログ(WAL)の出力先を別ディスクに変更】
デフォルトではWAL は「/var/lib/pgsql/data/pg_xlog」に作成されます。
デフォルトのままだと、データベースクラスタと同じディスクに保存されることになり、そのディスクがダウンすると、データベース本体とアーカイブログが同時に利用できなくなってしまうので、アーカイブログを別ディスクに保存するようにします。

データベースクラスタと別のディスクであればどこでも構いませんが、ここでは「/var/archives/pg_xlog」に保存することとします。
「/var/archives/pg_xlog_back/」は以下のコマンドで作成して下さい。
※PostgreSQL は停止した状態で作業して下さい。

# mkdir /var/archives/pg_xlog/
# chown postgres:postgres /var/archives/pg_xlog/



次に WAL を上記で作成したディレクトリに保存するようにします。
設定などを変更して出力先を変えれますが、今回は簡単にシンボリックリンクを利用します。
以下の手順で出力先を変更して下さい。

(現在の WAL を新しい保存先へコピー)
# cp -rf /var/lib/pgsql/data/pg_xlog/* /var/archives/pg_xlog/
(デフォルトの WAL ディレクトリを別名にリネーム(バックアップ))
# mv /var/lib/pgsql/data/pg_xlog /var/lib/pgsql/data/pg_xlog_original
(シンボリックリンクの作成)
# ln -s /var/archives/pg_xlog /var/lib/pgsql/data/pg_xlog
# chown postgres:postgres /var/lib/pgsql/data/pg_xlog


【動作確認】
設定の変更を反映させるため、PostgreSQL を以下のコマンドで起動します。

# /etc/rc.d/init.d/postgresql start
Starting postgresql service: [ OK ]

「OK」が出れば、変更に問題なしです。
また、「/var/archives/pg_xlog_back/」に WAL のコピーが作成されている(ファイルの存在有無)かを確認して下さい。

もし、起動しない場合は変更した内容を再度確認して下さい。
どうしても起動しない、うまくいかないようであれば、最初にバックアップしておいたデータベースクラスタでリストアして下さい。

これで、アーカイブログを別ディスクに保存することができましたので、可用性はデフォルトより高まりました。

次はオンラインバックアップです。

コメント
この記事へのコメント
URL :
コメント :
パスワード :
管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
Template designed by アクセラと+αな生活

Powered by .
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。