sql >> データベース >  >> RDS >> PostgreSQL

PostgreSQL9.0でのPgbouncerを使用した接続プール

    接続プール、PostgreSQLで接続プールを使用する理由、アプリケーションが非常に多くの同時接続ヒットを要求する場合、接続プールはアプリケーションとデータベースの間にあるため、それにアプローチする必要があります。

    接続プールの背後にある考え方は、利用可能なすべてのリソースを使用するのに十分な接続があり、データベース接続を切断したり、新しい接続を使用する準備をしたりすることなく、着信要求を再利用することです。

    pgbouncerは軽量の接続プールです。 pgBouncerは、接続ごとにプロセスを生成するのではなく、単一のプロセスとして実行されます。接続プールは、libeventという名前のライブラリに依存します。

    PostgreSQL 9.0でのpgbouncerのセットアップは非常に簡単ですが、手動のpg_authファイルを作成する必要がある最新バージョンではわずかな変更があります。 pgbouncerは、ユーザー認証にpg_authファイルを使用します。 PostgreSQL 9.0の以前のバージョンでは、pg_authファイルは$ PGDATA / global / pg_authにありますが、最新バージョンでは、そのファイルは削除され、テーブル「pg_auth」としてpg_catalogに配置されています。

    pgbouncerの設定:

    1。 まず、pgbouncerのlibeventライブラリをダウンロードします。
    libeventのダウンロードリンク:
    http://www.monkey.org/~provos/libevent-2.0.12-stable.tar.gz

    tar -xvf libevent-2.0.12-stable.tar.gz
    
    cd libevent-2.0.12-stable
    ./configure
    make
    make install

    2。 最新のpgbouncertarをダウンロードし、PostgreSQL9.0に設定します。
    http://pgfoundry.org/frs/download.php/2912/pgbouncer-1.4.tgz

    tar -xvf pgbouncer-1.4
    
    cd pgbouncer-1.4
    ./configure --prefix=/opt/PostgreSQL/9.0/bin
    make
    make install

    3。 /etc/ld.so.conf.dディレクトリにlibevent-i386.confファイルを作成します

    vi /etc/ld.so.conf.d/libevent-i386.conf
    
    /usr/local/lib
    :wq!

    4。 ldconfigを実行して、新しい変更を適用します。

    #ldconfig
    

    5。 PostgreSQLバイナリのpgbouncerユーティリティの所有権をpostgresユーザーに変更します。

    chown -R postgres:postgres /opt/PostgreSQL/9.0/bin/bin/pgbouncer
    

    6。 ユーザー認証用のpgbouncer_authファイルを作成します。

    7。 /etcディレクトリの下にpostgresユーザー権限でpgbouncer.iniファイルを作成します。

    8。 pgbouncerを起動します

    -bash-4.1$ ./pgbouncer -d /etc/pgbouncer.ini
    
    2011-08-14 11:42:00.925 1949 LOG File descriptor limit: 1024 (H:1024), max_client_conn: 1000, max fds possible: 1010

    9。 pgbouncerを使用してデータベースに接続します

    10。 ヘルプの取得:pgbouncerデータベースに接続して、ヘルプを取得します。

    $ psql -p 6432 -U postgres pgbouncer
    
    pgbouncer=# show help;

    pg_authの理解を深めるには、以下のリンクの「depesz」を参照してください。
    http://www.depesz.com/index.php/2010/12/04/auto-refreshing-password-file-for- pgbouncer /

    高く評価されているコメントを投稿してください。


    1. Oracle-ORA-06502:PL / SQL:数値または値のエラー(DBMS_OUTPUT)

    2. N-HibernatewithOracleの長い文字列はエラーを引き起こします

    3. SQLOPSを使用してSQLServerデータベースを作成する

    4. フィルター処理されたインデックスとINCLUDEd列