Mémo admin-sys
Postgresql - Paramétrage (tuning)
Base de fonctionnement de Postgresql
Postgresql fonctionne avec deux répertoires fondamentaux :
-
/etc/postgresql/__VERSION__/main: Répertoire de paramétrage -
/var/lib/postgresql/10/main: répertoire qui contient les bases de données
Côté configuration, la liste des fichiers principaux est la suivante :
| Nom |
Description |
Usage dans GRAP |
conf.d/ |
Répertoire de fichier de configuration, appelé par défaut dans le fichier Tous les fichiers finissant par |
Dépôt d'un fichier grap.conf par ansible |
environment |
? | valeur par défaut |
pg_ctl.conf |
? | valeur par défaut |
pg_hba.conf |
Indique comment l'authentification a lieu | valeur par défaut |
pg_ident.conf |
Mapping d'utilisateur | valeur par défaut |
postgresql.conf |
Fichier principal de configuration Postgresql | valeur par défaut |
start.conf |
? | valeur par défaut |
référence :
- Les différents fichiers de configuration : https://docs.postgresql.fr/9.5/runtime-config-file-locations.html
- Le chargement des fichiers de configuration :https://www.postgresql.org/docs/9.3/config-setting.html (18.1.5 Configuration File Includes)
Configuration d'un nouveau serveur
Récupération des caractéristiques du serveur cible
| Information | Requête |
| Version majeure de postgresql | sudo su postgres -c "psql -c 'SELECT version()';" |
| Mémoire totale disponible sur le serveur | free -m |
| Mémoire allouée à un worker Odoo |
clé |
| Nombre de workers de Odoo |
clé clé |
| mémoire allouée à Odoo |
mémoire alloué à un worker * nombre de workers |
| Nombre de CPU |
|
| Nombre de connexion maximum |
~ (Nb activités du GRAP * 3) + Nb membres équipe interne |
Génération du fichier de configuration postgresql
- aller sur https://pgtune.leopard.in.ua
- Renseigner les données suivantes précédentes en mettant "DB Type" à la valeur "Web application"
- Se connecter au serveur cible et executer
SHOW ALL;pour comparer avec les valeurs actuelles de production
Déploiement via ansible
- Ouvrir le fichier
/config/postgresql/cfg_postgresql_{{ansible_hostname}}.cfg - Y copier le contenu du fichier précédemment généré (ou
- Paramétrer le fichier
host.inipour cibler le ou les serveurs cibles - Executer
ansible-playbook -i host.ini ./playbook_of_tasks/p_postgresql_install.yml
Référence :
- configuration de Odoo : https://www.odoo.com/documentation/12.0/setup/deploy.html#builtin-server
requêtes en lecture utiles
| Requête | Description |
SELECT |
Tables et tailles associées, classées par taille décroissantes. |
SHOW ALL; |
Affiche les paramètres de configuration actuellement actif en production. |
select pg_size_pretty(pg_database_size('DATABASE_NAME')); |
Taille de la base de données |
Comptes comptables avec trop de 0
Le code suivant change seulement les comptes avec 4 chiffres, en compte avec 3 chiffres, si le dernier chiffre est un 0.
Paramètre : mettre le trigramme de l'activité dans la requête.
-- LIST account with the following pattern XXX0
SELECT
code,
substring(code from 1 for 3)
FROM account_account
WHERE char_length(code) = 4
AND substring(code from 4 for 1) = '0'
AND company_id = (select id from res_company where code ='XXX');
-- Update account that have the following pattern XXX0, removing the leading 0
UPDATE account_account
SET code = substring(code from 1 for 3)
WHERE char_length(code) = 4
AND substring(code from 4 for 1) = '0'
AND company_id = (select id from res_company where code ='XXX');