PostgreSQL教程(十一):サーバの構成


一、サーバプロセスの起動とクローズ:
    下はpg_ですctlコマンドの使用方法と一般的なオプションは、このコマンドがpostgresコマンドのパッケージであるため、直接的にpostgresを使用するよりも使用する方が便利であることを指摘する必要があります。

    pg_ctl init[db] [-D DATADIR] [-s] [-o "OPTIONS"]
    pg_ctl start     [-w] [-t SECS] [-D DATADIR] [-s] [-l FILENAME] [-o "OPTIONS"]
    pg_ctl stop     [-W] [-t SECS] [-D DATADIR] [-s] [-m SHUTDOWN-MODE]
    pg_ctl restart  [-w] [-t SECS] [-D DATADIR] [-s] [-m SHUTDOWN-MODE]
    pg_ctl reload  [-D DATADIR] [-s]
    pg_ctl status  [-D DATADIR]
    pg_ctl promote [-D DATADIR] [-s]
オプション
説明
-D
データベース格納のパスを指定します。
-l
サーバプロセスのログファイルを指定します。
-s
エラー情報のみ印刷します。一般情報は印刷しません。
-t SECS
-wオプションを使うときに待つ秒数
-w
データベース操作が完了するまで待つ(stopの場合はデフォルトオプション)
-W
操作の完了を待つことはありません。
--help
ヘルプ情報を表示
--version
バージョン情報を表示
-m
stopとresttartの動作については、オフモードを指定できます。
システムクローズモード
 
smart
新しい接続を受信しないと、既存の接続が切断されてからシステムを終了します。
fast
新しい接続要求を受信しないで、確立された接続をアクティブにオフにしてから、システムを終了します。
immediat
直ちに退出しますが、レスターの場合は復旧作業が必要です。
  ここでは、データベースサーバの正常な起動とシャットダウンの最も一般的な使用方法を提供します。
    #startは、postgresサーバを起動するプロセスを示します。
    #-Dデータベースサーバの初期ディレクトリの保存先を指定します。
    #-lデータベースサーバプロセスのログファイルを指定します。
    /> pg_ctl-w start-D/opt/PostgreSQL/9.1/data-l/opt/PostgreSQL/9.1/data/pg_ロゴ/startup.logs
    #stopは、postgresサーバのプロセスを停止することを示します。
    #-m fastは、システムをクローズするときに、fastのクローズモードを使用します。
    /> pg_ctl stop-m fast-w-D/opt/PostgreSQL/9.1/data
二、サーバの設定:
    1.設定パラメータ:
    PostgreSQLでは、すべての構成パラメータ名は、大きさの書き込みに敏感ではない。各パラメータは、ブール、整数、浮動小数、および文字列の4種類の値を受け入れることができます。ブール値は、ON、OFF、TRUE、FALSE、YES、NO、1、および0とすることができる。これらのパラメータを含むプロファイルは、initdb初期化データ(data)ディレクトリに一般的に格納されたpostgresql.comであり、以下のような構成フラグメントを参照してください。

    #
    log_connections = yes
    log_destination = 'syslog'
    search_path = '$user, public'
 
    井号(葤)からの行のコメントは、設定値に数字が含まれている場合は、シングルクォーテーションで囲む必要があります。パラメータ値自体がシングルクォーテーションマークを含むなら、2つのシングルクォーテーションマーク(推奨方法)を書いたり、斜め担ぎで囲むことができます。   
    ここで注意したいのは、すべての設定パラメータがサーバの運転時に動的な変更を実行できるわけではなく、一部のパラメータは変更後、サーバーが再起動されるまで有効になります。
    PostgreSQLは、設定パラメータを変更する他の方法、すなわちコマンドライン上で直接に変更コマンドを実行する方法も提供される。
 

    /> postgres -c log_connections=yes -c log_destination='syslog'
 
    このときコマンドラインで設定されたパラメータとプロファイルのパラメータが衝突した場合、コマンドラインで与えられたパラメータは、設定ファイルの既存のパラメータ値を上書きします。このほか、ALTER DATABASEやALTER USERなどPostgreSQLのデータ定義コマンドによって、指定されたデータベースまたは指定されたユーザの配置情報をそれぞれ修正することもできます。データベースの設定は、postgresコマンドラインまたは設定ファイルから与えられた設定をカバーし、ユーザーの設定に上書きされ、最後に各セッションのオプションで上書きされます。以下は、サーバの構成に衝突が発生した場合、PostgreSQLサーバはどのような方式で優先されますか?
    1)セッションベースの構成。
    2)ユーザの構成に基づいて、
    3)データベースベースの構成。
    4)postgresコマンドライン指定の構成。
    5)プロファイルpostgresql.comで与えられた構成。
    最後に説明したいのは、いくつかの設定は、psqlで入力できます。
 

    SET ENABLE_SEQSCAN TO OFF;
 
    ショーコマンドによって指定された構成の現在値を表示することもできます。
 

    SHOW ENABLE_SEQSCAN;
 
    それと同時に、私達も手でpg_を調べられます。settingsシステム表の方式で興味のあるシステムパラメータを検索します。
三、メモリ関連のパラメータ構成:
    1.shared_buffers(integer):
    データベースサーバで使用できる共有メモリの数を設定します。デフォルトの場合は32 MBに設定できますが、128 KB以下にしないでください。この値が高いほど、システムの性能に良いからです。この設定パラメータはデータベース起動時のみ設定できます。
    この時、専用のデータベースサーバがあるなら、メモリは1 G以上です。この値をシステムメモリの25%に設定することをおすすめします。
    
    2.work_mem(integer):
    PostgreSQLは、並べ替え操作を実行する際に、work_によるmemのサイズは、大きな結果セットをいくつかの小さなワークに分割するかどうかを決定します。memサイズの一時ファイルです。分解の結果は、順序付けの速度を低下させることが明らかである。だからワークを増やすmemは並べ替えの速度を上げるのに役立つ。しかし、システム内に複数の並べ替え動作が同時に存在する場合、各動作が並べ替え時に使用するメモリの数は全てwork_であることを指摘する必要がある。memですので、この値を設定する際には注意が必要です。
    
    3.ホームポジションワークmem(integer):
    メンテナンス操作に使用する最大メモリ数を指定します。例えばVCUUM、CREATE INDEX、ALTER TABLE ADD FOREEGN KEYなど、この構成のデフォルト値は16 MBです。各セッションは同じ時間に1つの操作しか実行できないので、使用頻度は高くないが、これらのコマンドは多くのシステムリソースを消費するので、これらのコマンドをできるだけ早く実行してください。