Postgres
(→avoir une sortie propre et sans habillage) |
|||
| (6 révisions intermédiaires par un utilisateur sont masquées) | |||
| Ligne 21 : | Ligne 21 : | ||
=== WAL === | === WAL === | ||
http://www.postgresql.org/docs/9.0/static/wal-configuration.html | http://www.postgresql.org/docs/9.0/static/wal-configuration.html | ||
| + | |||
| + | |||
| + | === les tablespace === | ||
| + | Il faut absolument créer les dossiers avant de faire le CREATE TABLESPACE tbsdata LOCATION '/hawai/data/bases/tbsdata/'; SUR LES SLAVES AUSSI !!! | ||
| + | |||
| + | |||
| + | === Archivage === | ||
| + | |||
| + | Il est important de savoir que lorsqu'on active l'archivage, il FAUT que la commande d'archivage fonctionne. | ||
| + | archive_mode=on | ||
| + | archive_command='cp %p /var/.../data/xlog/primary_archive/%f' | ||
| + | |||
| + | Si par exemple on mets archive_mode=on sans indiquer de commande alors il est impossible faire un pg_stop_backup() entre autre. | ||
| + | |||
| + | En cas de remplissage du répertoire de stockage des archives, le service PG s’arrête. | ||
| + | |||
| + | En cas de plantage du service pour cause de remplissage du répertoire de stockage des archives, j'ai pu constater qu'une suppression des options d'archivage ainsi qu'un peu de ménage dans le dossier suffisant à remettre le service opérationnel. (Attention à l'état du slave cependant) | ||
== Utiles == | == Utiles == | ||
| Ligne 44 : | Ligne 61 : | ||
== Utiles == | == Utiles == | ||
| − | + | === processlist === | |
show processlist => select * from pg_stat_activity; | show processlist => select * from pg_stat_activity; | ||
desc => \d | desc => \d | ||
| + | |||
| + | === Kill proc === | ||
| + | SELECT pg_cancel_backend(procpid); | ||
| + | |||
| + | === avoir une sortie propre et sans habillage === | ||
| + | psql -AtU postgres # avec un user spécifique en prime | ||
| + | |||
| + | === La liste des IP et le nombre de connexion par IP === | ||
| + | psql -U postgres -c "select client_addr, count(client_addr) from pg_stat_activity group by client_addr order by 1;" | ||
== stress == | == stress == | ||
| Ligne 57 : | Ligne 83 : | ||
CREATE TABLE | CREATE TABLE | ||
damien=# INSERT INTO damien select generate_series(1,1000000000); | damien=# INSERT INTO damien select generate_series(1,1000000000); | ||
| + | |||
| + | while true; do psql -U postgres -c "INSERT INTO damien select generate_series(1,200000); truncate damien ;"; sleep 2; done; | ||
Version actuelle en date du 19 décembre 2012 à 10:24
Sommaire |
PG -- PostgreSql
Streaming Replication
Fichiers de config
Le param "config_file" permet de changer le PATH vers le postgresql.conf (i.e. ne pas ne le mettre dans le DATADIR) et donc du streaming.cong (un include) c'est un param à passer dans le ligne de commande du binaire. Donc dans le script d'init.
Il passe très bien dans le -D de l'init et si le data_directory est bien set dans le postgresql.conf
postgresql.conf streaming.conf => include dans le postgresql.conf contient les conf spécifiques au streaming recovery.conf => les param pour que le slave (standby) sache aller se remonter à partir du master.
faut tester un peut plus tout ça ....
[DOC PG -> http://www.postgresql.org/docs/9.0/static/warm-standby.html#STREAMING-REPLICATION]
"Streaming replication is asynchronous, so there is still a small delay between committing a transaction in the primary and for the changes to become visible in the standby. The delay is however much smaller than with file-based log shipping, typically under one second assuming the standby is powerful enough to keep up with the load. With streaming replication, archive_timeout is not required to reduce the data loss window."
WAL
http://www.postgresql.org/docs/9.0/static/wal-configuration.html
les tablespace
Il faut absolument créer les dossiers avant de faire le CREATE TABLESPACE tbsdata LOCATION '/hawai/data/bases/tbsdata/'; SUR LES SLAVES AUSSI !!!
Archivage
Il est important de savoir que lorsqu'on active l'archivage, il FAUT que la commande d'archivage fonctionne.
archive_mode=on archive_command='cp %p /var/.../data/xlog/primary_archive/%f'
Si par exemple on mets archive_mode=on sans indiquer de commande alors il est impossible faire un pg_stop_backup() entre autre.
En cas de remplissage du répertoire de stockage des archives, le service PG s’arrête.
En cas de plantage du service pour cause de remplissage du répertoire de stockage des archives, j'ai pu constater qu'une suppression des options d'archivage ainsi qu'un peu de ménage dans le dossier suffisant à remettre le service opérationnel. (Attention à l'état du slave cependant)
Utiles
taille des bases
psql -U postgres -c "SELECT datname, pg_size_pretty(pg_database_size(datname)) from pg_database ;"
la taille des index
postgres=# select pg_size_pretty(pg_total_relation_size('tableXX') - pg_relation_size('tableXX'));
#!/bin/bash
for base in `psql -c "select datname from pg_database;" | grep -v "datname" |grep -v \- |grep -v "rows"|grep -v "postgres"`;
do
echo "#############"
echo $base
echo "#############"
for table in `psql $base -c "\d"| grep -v "List of relations" |grep -v + |grep -v rows |grep -v Name |cut -d "|" -f 2`;
do echo $table;
psql $base -c "select pg_size_pretty(pg_total_relation_size('$table') - pg_relation_size('$table'));";
echo "+++++++++++++++++";
done
done
Utiles
processlist
show processlist => select * from pg_stat_activity; desc => \d
Kill proc
SELECT pg_cancel_backend(procpid);
avoir une sortie propre et sans habillage
psql -AtU postgres # avec un user spécifique en prime
La liste des IP et le nombre de connexion par IP
psql -U postgres -c "select client_addr, count(client_addr) from pg_stat_activity group by client_addr order by 1;"
stress
postgres=# CREATE DATABASE damien; postgres=# \c damien You are now connected to database "damien" as user "postgres". damien=# CREATE TABLE damien ( id varchar(55)); ou alors => damien=# CREATE TABLE damien ( id varchar(55)) TABLESPACE table_space_name; CREATE TABLE damien=# INSERT INTO damien select generate_series(1,1000000000); while true; do psql -U postgres -c "INSERT INTO damien select generate_series(1,200000); truncate damien ;"; sleep 2; done;