sql >> Database >  >> RDS >> PostgreSQL

Verbindingspooling met Pgbouncer op PostgreSQL 9.0

Verbindingspooling, waarom we kiezen voor verbindingspooling in PostgreSQL, Wanneer uw toepassing een zeer groot aantal gelijktijdige verbindingshits vereist, moet u deze benaderen, omdat de verbindingspool tussen uw toepassing en de database zit.

Het idee achter de connectiepool is dat je genoeg connecties hebt om alle beschikbare bronnen te gebruiken en dat alle inkomende verzoeken opnieuw worden gebruikt zonder de databaseverbinding te verbreken en klaar te blijven voor een nieuwe verbinding om te gebruiken.

pgbouncer is een lichtgewicht verbindingspooler. pgBouncer wordt uitgevoerd als een enkel proces, zonder een proces per verbinding voort te brengen, dat afhankelijk is van de bibliotheek met de naam libevent voor het poolen van verbindingen.

pgbouncer instellen op PostgreSQL 9.0 is heel eenvoudig, maar er is een kleine verandering met de nieuwste versie die je nodig hebt om een ​​handmatig pg_auth-bestand te maken. pgbouncer gebruikt het pg_auth-bestand voor gebruikersauthenticatie. Eerdere versie van PostgreSQL 9.0, u kunt het pg_auth-bestand vinden onder $PGDATA/global/pg_auth, nu in de nieuwste versie is dat bestand verwijderd en in pg_catalog geplaatst als tabel 'pg_auth'.

pgbouncer-configuratie:

1. Download eerst libevent-bibliotheek voor pgbouncer.
Downloadlink voor 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. Download de nieuwste pgbouncer-tar en configureer naar uw PostgreSQL 9.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. Maak een libevent-i386.conf-bestand in de map /etc/ld.so.conf.d

vi /etc/ld.so.conf.d/libevent-i386.conf

/usr/local/lib
:wq!

4. Voer de ldconfig uit om nieuwe wijzigingen toe te passen.

#ldconfig

5. Wijzig het eigendom van het hulpprogramma pgbouncer in PostgreSQL binair in postgres-gebruiker.

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

6. Maak het pgbouncer_auth-bestand voor gebruikersauthenticatie.

7. Maak het bestand pgbouncer.ini met gebruikersrechten van postgres in de map /etc.

8. Start 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. Maak verbinding met de databases met pgbouncer

10. Hulp krijgen:maak verbinding met de pgbouncer-database en laat u helpen.

$ psql -p 6432 -U postgres pgbouncer

pgbouncer=# show help;

Voor een beter begrip van pg_auth kunt u de onderstaande link door 'depesz' vinden.
http://www.depesz.com/index.php/2010/12/04/auto-refreshing-password-file-for- pgbouncer/

Plaats uw opmerkingen die zeer op prijs worden gesteld.


  1. Een tabel met voetbalgegevens van miljarden rijen partitioneren met behulp van gegevenscontext

  2. SQLite bestellen op

  3. DAYNAME() Voorbeelden – MySQL

  4. MySQL PI() Functie – Retourneer de waarde van π (pi)