• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PostgreSQL WALファイルの運用について)

PostgreSQL WALファイルの運用について

このQ&Aのポイント
  • PostgreSQL WALファイルの運用について初めて携わるシステム構築者向けの質問です。
  • WALファイルの永続化や自動パージ機能についての疑問を解決して欲しいとのことです。
  • また、サーバディスク領域の圧迫回避のための運用方法についてもアドバイスを求めています。

質問者が選んだベストアンサー

  • ベストアンサー
  • yamada59
  • ベストアンサー率74% (29/39)
回答No.2

結論から言ってしまうと、不要になった WAL セグメントは再利用されるので、一定以上のディスク容量は消費しません。 WAL セグメントはビルド時に明示的に指定しない限り 1 個あたり 16MB であり、通常、セグメント数は (2 + checkpoint_completion_target) * checkpoint_segments + 1 個以下なので、PostgreSQL 8.4 のデフォルトの設定のままであれば 64MB (((2 + 0.5) * 3 + 1) * 16MB) 以下になります。 あと、checkpoint_timeout パラメータは WAL セグメントを作成する間隔ではなく、チェックポイントを実行する間隔を指定するパラメータです。 まず、WAL やチェックポイントが何なのかを理解したほうがいいと思います。

参考URL:
http://www.postgresql.jp/document/8.4/html/wal.html
db_freak
質問者

お礼

yamada59さん OracleのRedoログと似たような機能をPostgreでも享受できるということですね。 もう少し、勉強してみます。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.1

このあたりは参考になりませんか?

参考URL:
http://www.geocities.jp/sugachan1973/doc/funto63.html
db_freak
質問者

お礼

SakaKashiさん 参考サイトの紹介ありがとうございました。 とても初心者が書いたとは思えない内容でした。まぁそういう設定だとは思うのですが。 大変参考になりました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • PostgreSQLのレプリケーション

    PostgreSQL(9.1.4)のストリーミング・レプリケーションについて 現在、半年ほどRails+PostgreSQL(9.1.4)で構成されたシステムを運用しております。 DBサーバ(PostgreSQL 9.1.4)を2台使用し、PostgreSQLのストリーミング・レプリケーション機能を用いて、サーバ間でのデータ同期処理を実現させておりました。 しかし、本日より、このストリーミング・レプリケーション機能が正常に動作せず、データの同期処理が行われない状態となってしまいました。 原因の調査方法が、分からず、どのようなログを見て、どのように対処すべきか、ご存知の方がいらっしゃいましたら、教えて頂けないでしょうか? 何卒よろしくお願い申し上げます。

  • PostgreSQLのリプリケーション アーカイブ

    実行環境  OS:win7 64bit     プライマリーとスタンバイをローカルLANで接続  PosgreSQLのバージョン:9.4 以下のように設定しました。 A.プライマリのpostgres.confを修正    1.wal_level=hot_standby    2.max_wal_sender=3    3.archive_mode=off    4・wal_keep_segment=8 B.basebackupを行う C.スタンバイの設定    1.recovery.conf       standby_mode='on'       primary_conninfo='host=192.168.1.100 port=5432 user=repli possword=xxx'    2.postgres.conf       hot_stndby=on 以上のように設定すると、リプリケーションが可能ですが、 これをアーカイブモードにすると、COPYコマンドでエラーが発生します。 プライマリサーバーにアーカイブ場所を設定すればエラーは出ないのですが、 スタンバイ側に設定するとエラーになります。 アーカイブのコマンドは  プライマリのpostgres.confに   archive_mode=on   archive_command='copy "c:\\postgresql\\data\\%p" "\\standbyPC\\srch\\%f""' と設定しています。 この設定でサービスを起動すると、以下のようなLOGが出力されます。 指定されたパスが見つかりません。 2015-08-16 07:48:25 JST LOG: アーカイブコマンドがリターンコード 1で失敗しました 2015-08-16 07:48:25 JST 詳細: 失敗したアーカイブコマンドは次のとおりです: copy "c:\PostgreSQL\data\pg_xlog\000000010000000000000019" "\standbyPC\PostgreSQL\arch\000000010000000000000019"  コマンドプロンプトから実行すると、正常にコピーされます。 どこが間違っているのでしょうか?

  • PostgreSQL バッチでバックアップ

    PostgreSQL 8.4に関する質問です。 サーバ:Linux、PostgreSQL 8.4 クライアント:Windows 7 Windowsマシンから、バッチファイルでサーバ上のPostgresのバックアップを取りたいのですが、 以下のコマンドをバッチファイルに記述して実行すると、 「パスワード:」というプロンプトが出て処理が止まってしまいます。 pg_dump.exe -h [DBサーバのIP] -U [ユーザ名] -F custom -b -v -f "C:\test.backup" "test" パスワードを入れればバックアップはできるのですが、 パスワードの入力まで完全自動化するにはどうすればいいでしょうか。 Linux上のPostgresはSSL接続のみ許可するようになっています。 Windowsのタスクで毎日バックアップする運用を想定しています。

  • PostgresSQLの同時接続数

    質問させていただきます。 Apache+PHP+PostgresSQLでサーバーを運用しています。アクセス数が多くなるとApacheが停止してしまいす。そのためボトルネックの調査をしているのですが、Apacheの同時リクエスト数(MaxClients)を150、 PostgreSQLの同時接続数(MAX_CONNECTIONS)を32に設定しています。 ApacheとPostgreSQLの同時接続数はどちらを多くしたほうがよいでしょうか?

  • サーバ接続 問題の切分け方を教えて下さい

    下記環境で簡単なC/Sシステムを運用中です。 サーバA1:Win2003、PostgreSQL8.x クライアントB:WinXP、サーバA1と同一LAN内 クライアントC:WinXP、公衆回線を経由してサーバA1に接続 クライアントB・CではAccess2003で作成したアプリケーションから ODBC経由でサーバA1のデータを参照・更新します。 サーバには固定IPを設定しており、クライアントからはIPアドレスを指定して サーバに接続しています。 この度、老朽化に伴いサーバA1をWin2008のサーバA2に入れ替える事になりました。 PostgreSQLのバージョンは同じです。  ・サーバA2にA1と同一IPアドレスを固定で設定  ・「postgresql.conf」と「pg_hba.conf」の2ファイルをA1→A2にコピーして置き換え。A2のPostgreSQLを再起動  ・LANケーブルをA1→A2に差し替え を行ったところ、クライアントB→A2はDBに接続できますが C→A2が参照できなくなる、という現象が発生しました。 PostgreSQLの設定に誤りがあればB→A2の接続もできないはずですし 理屈から言えばA1とA2では接続に関する設定は同じはずなのですが… なお、Cからインターネットは参照可能なようなので ネットワーク設定には問題が無いと思います。 解決法がもちろん、どこに問題があるのか、切り分けができずに困っています。 もしお心当たりのあるかたがいらっしゃいましたら、アドバイスいただけると助かります。 よろしくお願いします。

  • Windows Server 2003 上の実行ファイルをリモートから実行する方法

    運用管理サーバから同じネットワーク内に接続されている Windows Server 2003 上の実行ファイルをリモートで実行したいのですが、できれば標準機能でこれを実現する事はできますか?(ターミナルサービス?rexec?) ここでいう実行ファイルとはバックアップ用のバッチファイル(exe かもしれません)だったりといった小さなツールを想定しています。 運用管理サーバが UNIX(Solaris)の場合と Windows Server 2003 だった場合でそれぞれいい実装案があればご教授頂きたいです(関連 URL の提示くらいのヒントでも構いません) リモート実行したツールがうまく実行できたかどうか(戻り値の取得?)とかネットワーク的なプロトコルはどうなるんだろう・・・とか、そんな細かいところまでまとめて説明しているページがあれば嬉しいのですが・・・

  • WinMailCmdのバッチファイルについて

    WinMailCmdというフリーソフトを使ってメールを送信しようと思っています。OSがXPでは正常にメールを送信することができたのですが、NT環境では、「サーバ情報の設定がされていません。」「サーバ情報等の初期設定パラメータを取得できませんでした」というエラーメッセージが出力されました。 OSによってバッチファイルの書き方が違うのでしょうか?  ご存知の方おられますでしょうか? 下記は、バッチファイルです。よろしくお願いします。 REM #------- tst1.bat ------- @echo off @setlocal REM # WinMailCmd バッチ tst1 # C: cd \Program Files @set --conf="--conf" @set SMTPSRV="smtp.xxxx.com" @set SMTPPORT="25" @set FROM="B" @set POPSRV="pop.xxxx.com" @set POPPORT="110" @set PASS="1234" @set FROM_NAME="テストデータ" @set SUB="データ更新のお知らせ" @set MSG="このメールはデータが更新される毎に配信されます" @set ATCH="C:\Documents and Settings\admini\デスクトップ\tstf\Book1.xls" @set MAIL="c:\Program Files\WinMailCmd\WinMailCmd.exe" echo ## 送信開始 ## time<NUL | FIND "現在" %MAIL% goo@xxxx.com ,, %SUB% , %MSG% , %ATCH% echo ## 送信終了 ## time<NUL | FIND "現在"

  • DNSサーバー上のクライアントから名前解決できません。

    ネットワークサーバーとしてVINE2.1上でDHCPとDNSを運用しています。 クライアントへのサービス提供というサーバー機能は順調です。 このサーバーにログインし一つのクライアントとして見た場合に、 DNSでの名前解決ができていないことに気がつきました。 例えば、nslookup を実行してもサーバー(自分自身)を認識できていません。 立ち上げ当初は確認しながら進めましたので問題は無かったと思います。 通常はリモートマシンからtelnet + xhost でアクセスしていますが、 何かの設定をlinuxconf などで変更してしまったのだと考えています。 サーバー機で何かを行うことはありませんので実害は全くありませんが、 なにをしてもDNSを認識してくれない事実は面白くありません。 DNS-HOWTO.txt.gz などを参考にし設定を行っています。 /etc/host.conf /etc/nsswitch.conf には問題はありません。 他に何を確認すればよろしいでしょうか? いろんな可能性を教えて頂けるとありがたいです。

  • レンタルサーバーを御紹介ください。

    レンタルサーバーを探しています。 パーソナルWEBサイト用ですが、CGIとPHP4を用いて学習 評価用として運用したいと考えています。 他に、データベースも用いたいのですが、PostgreSQLとか Interbase6などを設置可能な自由度の高いところがベスト と考えております。 特に無料である必要は無く機能に応じた費用負担は可です。 様々、制約はあるかと思いますが、良い会社を御紹介頂け たらと願っております。 7月25日頃締め切らせて頂きます。

  • htaccessについて

    ライブドアのレンタルサーバでHPを運用しています。 その中で、PHPを使って外部ファイルからテキストを取得して画面に表示するスクリプトを作りたいと思います。例えば、「001.txt」を取得したい場合は、GETパラメータの「file」に「001」を渡せば取ってくる感じです。 それを、mod_rewrite関数を使ってURLを書き換えたいのですが、.htaccessに以下を記載してもどうもうまく動きません。 ---------------------------------------------------------- RewriteEngine On RewriteRule ^/test/***/([a-z0-9_]+)$ /test/***/execute.php?file=$1 ---------------------------------------------------------- 試しにローカルのxamppのhttp.confに同じように記載したのですが問題なく動きます。レンタルサーバは.htaccess対応と書いてあるので、サーバ設定の問題でもなさそうですが。。 ご教授願います。