# Database

# Oracle



# Acces base oracle

Sudo su - oracle   
Setup l'affichage et voir les session connecte à la basse :

```pl/sql
SET pages 400 lines 200
COLUMN spid FORMAT A10
COLUMN username FORMAT A20
COLUMN program FORMAT A45
```

```sql
SELECT s.inst_id,
       s.sid,
       s.serial#,
       p.spid,
       s.username,
       s.program
FROM   gv$session s
       JOIN gv$process p ON p.addr = s.paddr AND p.inst_id = s.inst_id
WHERE  s.type != 'BACKGROUND';
```

Générer le path et sid

```bash
export PATH=$PATH:/app/oracle/product/11.2.0.4/dbhome_1/bin/
export ORACLE_SID=Nom database
export ORACLE_HOME=/app/oracle/product/11.2.0.4/dbhome_1/
```

. oraenv mettre le sid et path en rapport

```bash
sqlplus / as sysdba
```

```sql
drop user TABLE cascade;
```

# Vérifier et débloquer un compte verrouillé

<div id="bkmrk---se-connecter-au-se">- Se connecter au serveur en SSH via putty ou winscp (&gt; putty).</div><div id="bkmrk---se-connecter-en-ta">- Se connecter en tant que compte oracle</div><div id="bkmrk-su-oracle">su oracle</div><div id="bkmrk-">  
</div><div id="bkmrk---ajouter-les-argume">- Ajouter les arguments pour les variables d'environnement pour se connecter à l'instance</div><div id="bkmrk--1">  
</div>```bash
export ORACLE_HOME=/u01/app/oracle/product/11gr2/db_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_SID=gcldev
```

<div id="bkmrk--2"></div><div id="bkmrk--3">  
</div><div id="bkmrk--4">  
</div><div id="bkmrk---se-connecter-%C3%A0-l%27i">- Se connecter à l'instance SQL:</div>```sql
sqlplus /nolog
connect / as sysdba
```

<div id="bkmrk-sqlplus-%2Fnolog"></div><div id="bkmrk--5">  
</div><div id="bkmrk---lister-tous-les-co">- Lister tous les comptes de l'instance SQL :</div>```sql
SELECT username, account_status FROM dba_users;
```

<div id="bkmrk--6"></div><div id="bkmrk--7"></div><div id="bkmrk---lister-tous-les-co-1">- Lister tous les comptes avec leurs dates de création, date d'expiration et l'état de verrouillage :</div><div id="bkmrk--8">  
</div>```sql
SELECT username, account_status, created, lock_date, expiry_date  FROM dba_users  WHERE account_status != 'OPEN';
```

<div id="bkmrk--9"></div><div id="bkmrk--10">  
</div><div id="bkmrk--11">  
</div><div id="bkmrk---requ%C3%AAte-pour-d%C3%A9blo">- Requête pour débloquer un compte (nomducompte à remplacer) :</div>```sql
ALTER USER nomducompte ACCOUNT UNLOCK;
```

<div id="bkmrk--12"></div><div id="bkmrk--13">  
</div><div id="bkmrk--14">  
</div><div id="bkmrk---note-en-plus-pour-">- Note en plus pour reset un password :</div>```sql
ALTER USER nomducompte BY new_password; 
```

<div id="bkmrk--15"></div><div id="bkmrk--16">  
</div><div id="bkmrk--17"></div>

# Problème demarrage timezone

```bash
ps -ef | grep pmon
```

[![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/EsLAex9lRaqgQ3YT-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/EsLAex9lRaqgQ3YT-image.png)

Pour redémarrer les bases manuellement :

```bash
export ORACLE_HOME=/app/oracle/product/10.2.0.5SE/dbhome_1
export ORACLE_BASE=/app/oracle/product/10.2.0.5SE/dbhome_1
export ORACLE_SID=PIMS1
sqlplus / as sysdba
```

Démarrer la base

```sql
startup
```

  
Pour arrêter la base:

```sql
shutdown immediate
```

  
============================================================================

Lorsque l'on exécute la commande (sqlplus / as sysdba) surtout sur la base l'on obtient le message d'erreur suivant :

<p class="callout danger">ORA-01804: failure to initialize timezone information</p>

Solution :

Prendre un autre fichier timezone sur n'importe quel répertoire :

```bash
export ORA_TZFILE=/app/oracle/product/11.2.0.4/dbhome_1/oracore/zoneinfo/timezlrg_14.dat
```

============================================================================

Pour supprimer les logs de listener de plus de Xjour (exemple +24)

```bash
cd /app/oracle/diag/tnslsnr/prdoran1/listener/alert
find . -name "log_*.xml" -ctime +24 -exec rm -f  {} \;
```

Pour lister les traces +15 j :

```bash
 find . -name "*.trc" -ctime +15 -exec ls -l  {} \;
```

Avant de remplacer "ls -l" par "rm -f" assure toi que la base est démarrée depuis plus de 15 j  
============================================================================  
Il existe des bases selon la version d'oracle, pour les lister :

```bash
cd /app/oracle/product/
```

Ensuite la version ex :

```bash
cd /app/oracle/product/11.2.0.4/dbhome_1/dbs/
```

Ce qui nous intéresse c'est le init\* pour savoir le nom de la base (ex: la base initNODHOS1.ora ça représente la base NODHOS1 donc pour l'utiliser on doit lancer l'export :

```bash
export ORACLE_HOME=/app/oracle/product/11.2.0.4/dbhome_1
```

  
ensuite :

```bash
export ORACLE_SID=NODHOS1
```

[![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/ugG7pPGFjK9b1gH1-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/ugG7pPGFjK9b1gH1-image.png)

Après on va pouvoir lancer sqlplus en tant que NODHOS1 et démarrer la base

# MYSQL



# PB SQL FAILOVER

[![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/prqridGeTknB9WLK-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/prqridGeTknB9WLK-image.png)

[![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/djudYGzktFnJjN31-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/djudYGzktFnJjN31-image.png)

[![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/kiy6ZqQJSl8qlUoA-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/kiy6ZqQJSl8qlUoA-image.png)

Clic droit --&gt; Failover…

[![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/M48dlEqoKZV1zpgn-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/M48dlEqoKZV1zpgn-image.png)  
  
Next

[![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/c4axB676YCtwSXOW-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/c4axB676YCtwSXOW-image.png)

Next

[![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/NzfCn5AcCeF0pWcL-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/NzfCn5AcCeF0pWcL-image.png)

Finish

[![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/p0AMcj6Fet4ajcFL-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/p0AMcj6Fet4ajcFL-image.png)

[![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/hOh1XjcMrsEKj7a7-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/hOh1XjcMrsEKj7a7-image.png)

[![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/4bqvz1PfiytDMG0W-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/4bqvz1PfiytDMG0W-image.png)

Vérifier que le 1 est bien passé en Primary ainsi que le 2 en Secondary

[![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/cA3LzOnf7XftaggF-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/cA3LzOnf7XftaggF-image.png)

# Commandes General

<span style="color: rgb(45, 194, 107);">Poids base de doonnées</span>

```mysql
SELECT sum( data_length + index_length) / 1024 / 1024 "Nom-de-la-base Taille en Mo" FROM information_schema.TABLES WHERE table_schema = "nom-de-base" GROUP BY table_schema;
```

<span style="color: rgb(45, 194, 107);">Read permission</span>

```mysql
GRANTSELECTON DBNAME.TABLE_NAME TO USERNAME 
```

<span style="color: rgb(230, 126, 35);"><span style="color: rgb(45, 194, 107);">liste toutes les BDD</span>  
</span>

```mysql
show databases;
```

<span style="color: rgb(45, 194, 107);">se met sur la BDD qui nous intéresse </span>

```mysql
Use nomdelabdd; 
```

<span style="color: rgb(45, 194, 107);">Suppression de la BDD</span>

```mysql
Drop database nomdelabdd;
```

<span style="color: rgb(45, 194, 107);">Création de la BDD </span>

```mysql
Create database nomdelabdd;
```

<span style="color: rgb(45, 194, 107);">Dans le cas où le compte mysqldump n'a pas les droits de restauration de dump</span>

```mysql
grant all privileges on *.* to mysqldump@localhost;
```

<span style="color: rgb(230, 126, 35);"><span style="color: rgb(45, 194, 107);">Restauration du dump dans la BDD</span></span>

```mysql
mysql -u mysqldump -p "nomdelabdd" < "/production/mysql_dump/nomdelabdd.sql"
```

<span style="color: rgb(45, 194, 107);">Vérification de la bonne restauration du dump</span>

```bash
ls -alsh /production/mysql/nomdelabdd/ 
```

<span style="color: rgb(45, 194, 107);">Pour se connecter</span>

```bash
mysql
```

<span style="color: rgb(45, 194, 107);">Pour avoir la taille de toutes les BDD:</span>

```mysql
SELECT table_schema AS "Database",  ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS "Size (MB)"  FROM information_schema.TABLES  GROUP BY table_schema;
```

<span style="color: rgb(45, 194, 107);">Pour avoir la taille de toutes les tables d'une BDD:</span>

```mysql
SELECT table_name AS "Table", ROUND(((data_length + index_length) / 1024 / 1024), 2) AS "Size (MB)" FROM information_schema.TABLES WHERE table_schema = "database_name" ORDER BY (data_length + index_length) DESC;
```

<span style="color: rgb(230, 126, 35);"><span style="color: rgb(45, 194, 107);">Reset Mot de passe Mysql:</span>  
</span>

```mysql
ALTER USER 'mysqldump'@'localhost' IDENTIFIED BY 'dump';
```

# Dump/Restore

<span style="color: rgb(45, 194, 107);">Création de dump Mysql: </span>

```bash
/usr/bin/mysqldump -u mysqldump -p name | gzip -c --best > /production/mysql_dump/Save_25.sql.gz
```

<span style="color: rgb(45, 194, 107);">Dezip d'un dump au format sql.gz : </span>

```bash
gunzip /production/mysql_dump/Save_25.sql.gz /tmp
```

<p class="callout warning">Attention cela remplace le fichier d'origine en .sql</p>

Affichage de tous les droits sur une BDD:

```mysql
Use name;
SELECT host,user,password,Grant_priv,Super_priv FROM mysql.user;
```

Restauration d'un dump Mysql avec le dump au format .sql :

  
<span style="color: rgb(230, 126, 35);">show databases; </span> --&gt; liste toutes les BDD  
<span style="color: rgb(230, 126, 35);">Use nomdelabdd; </span> --&gt; On se met sur la BDD qui nous intéresse   
<span style="color: rgb(230, 126, 35);">Drop database nomdelabdd; </span> --&gt; Suppression de la BDD actuelle  
<span style="color: rgb(230, 126, 35);">Create database nomdelabdd; </span> --&gt; Création de la BDD   
<span style="color: rgb(230, 126, 35);">grant all privileges on \*.\* to mysqldump@localhost; </span> --&gt; Dans le cas où le compte mysqldump n'a pas les droits de restauration de dump  
<span style="color: rgb(230, 126, 35);">mysql -u mysqldump -p nomdelabdd &lt; /production/mysql\_dump/nomdelabdd.sql </span> --&gt; Restauration du dump dans la BDD nouvellement créée  
<span style="color: rgb(230, 126, 35);">ls -alsh /production/mysql/nomdelabdd/ </span> --&gt; Vérification de la bonne restauration du dump, voir s'il y a des éléments récents

Pour info, utiliser la commande pv lors de la restauration d'un dump afin de voir en live ce que fait la restauration:

# Mysql innodb cache info

Vérifier taille Buffer Pool Size:

```bash
mysql
```

```mysql
SELECT FORMAT (BufferPoolPages*PageSize/POWER(1024,3),2) BufferPoolDataGB FROM (SELECT variable_value BufferPoolPages FROM information_schema.global_status WHERE variable_name ='Innodb_buffer_pool_pages_total') A, (SELECT variable_value PageSize FROM information_schema.global_status WHERE variable_name ='Innodb_page_size') B;
```

[![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/u6n5gzYWIlUQmbRP-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/u6n5gzYWIlUQmbRP-image.png)

Vérifier données en cache:

```bash
Mysql
```

```mysql
SELECT FORMAT (BufferPoolPages*PageSize/POWER(1024,3),2) BufferPoolDataGB FROM (SELECT variable_value BufferPoolPages FROM information_schema.global_status WHERE variable_name ='Innodb_buffer_pool_pages_data') A, (SELECT variable_value PageSize FROM information_schema.global_status WHERE variable_name ='Innodb_page_size') B;
```

[![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/o5sKwIapCzjnA7nP-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/o5sKwIapCzjnA7nP-image.png)

Vérifier % d'utilisation en cache:

```mysql
SELECT CONCAT (FORMAT (DataPages*100.0/TotalPages,2),' %') BufferPoolDataPercentage FROM (SELECT variable_value DataPages FROM information_schema.global_status WHERE variable_name ='Innodb_buffer_pool_pages_data') A, (SELECT variable_value TotalPages FROM information_schema.global_status WHERE variable_name ='Innodb_buffer_pool_pages_total') B;
```

[![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/6VgxvLA3PMYv2cQ8-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/6VgxvLA3PMYv2cQ8-image.png)

  
Données supplémentaires sur le cache:

```mysql
SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool%';
```

[![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/MWX54sJYOtZlx84j-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/MWX54sJYOtZlx84j-image.png)

Statut Innodb:

```mysql
SHOW ENGINE INNODB STATUS;
```

Buffer hit ratio:

```mysql
SELECT round ((P2.variable_value /P1.variable_value),4),  P2.variable_value, P1.variable_value FROM information_schema.GLOBAL_STATUS P1, information_schema.GLOBAL_STATUS P2 WHERE P1. variable_name ='innodb_buffer_pool_read_requests'ANDP2. variable_name ='innodb_buffer_pool_reads'; 
```

[![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/2a0rFqK3Vtk0W097-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/2a0rFqK3Vtk0W097-image.png)

# Modification du compte mysql_monitor

```bash
mysql
```

```mysql
SHOW DATABASES;
```

```mysql
select user, host from mysql.users;
```

```mysql
UPDATE user SET password=PASSWORD('PASSWORD') WHERE user='mysql_monitor';
```

<p class="callout info">si la commande ci-dessous ne fonctionne pas</p>

```mysql
ALTER USER 'mysql_monitor' IDENTIFIED BY '************';
```

```mysql
FLUSH PRIVILEGES;
```

# POSTGRES



# TimescaleDB Update

[![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/g71pSE3C7p2eTy2b-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/g71pSE3C7p2eTy2b-image.png)

<div id="bkmrk-ajouter-le-proxy-ave">Ajouter le proxy avec la commande export</div><div id="bkmrk--1">  
</div><div id="bkmrk-yum-update"><span style="color: rgb(230, 126, 35);">Yum update</span></div><div id="bkmrk--2">  
</div>[![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/Qliyo0BWZVufJVCr-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/Qliyo0BWZVufJVCr-image.png)

<div id="bkmrk--4">  
</div><div id="bkmrk-installation-%C3%A0-la-ma">Installation à la mano:</div><div id="bkmrk-yum-update-timescale"><span style="color: rgb(230, 126, 35);">yum update timescaledb-2-postgresql-12</span></div><div id="bkmrk-systemctl-restart-po"><span style="color: rgb(230, 126, 35);">systemctl restart postgresql-12</span></div><div id="bkmrk-timescaledb-tune---p"><span style="color: rgb(230, 126, 35);">timescaledb-tune --pg-config=/usr/pgsql-12/bin/pg\_config</span></div><div id="bkmrk--5">  
</div>[![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/rafkb4UY48PIiPWn-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/rafkb4UY48PIiPWn-image.png)

<div id="bkmrk-sudo--u-%22user%22--i-ps">sudo -u "user" -i psql</div><div id="bkmrk-%5Cc-database">\c database</div><div id="bkmrk-%5Cdx">\dx</div><div id="bkmrk-alter-extension-time">ALTER EXTENSION timescaledb UPDATE;</div><div id="bkmrk--7">  
</div>[![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/hjKt49PSJWQJELji-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/hjKt49PSJWQJELji-image.png)\\q

<div id="bkmrk--8"></div><div id="bkmrk--9">  
</div><div id="bkmrk-infos-suppl%C3%A9mentaire">Infos supplémentaire:</div><div id="bkmrk-je-vois-bien-la-dern">Je vois bien la dernière version de timescaledb dans pg_available_extensions, mais la version installée sur la BDD reste toujours la 2.8.1.</div><div id="bkmrk--10">  
</div>[![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/i5dBr8EGJF9tI7kI-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/i5dBr8EGJF9tI7kI-image.png)

[![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/9t0fY77J4uTG7eMu-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/9t0fY77J4uTG7eMu-image.png)

<div id="bkmrk-il-faudrait-donc-met">Il faudrait donc mettre à jour la version de timescaledb sur la BDD MASS.</div><div id="bkmrk-exemple-%3A">Exemple :</div><div id="bkmrk---alter-extension-ti">- <span style="color: rgb(230, 126, 35);">ALTER EXTENSION timescaledb UPDATE TO '2.11.2';</span></div><div id="bkmrk-https%3A%2F%2Fwww.postgres">https://www.postgresql.org/docs/12/sql-alterextension.html</div><div id="bkmrk---ou-si-%C3%A7a-ne-foncti">- Ou si ça ne fonctionne pas, désinstaller puis réinstaller : </div><div id="bkmrk-drop-extension-times"><span style="color: rgb(230, 126, 35);">DROP EXTENSION timescaledb CASCADE; </span></div><div id="bkmrk-create-extension-if-"><span style="color: rgb(230, 126, 35);">CREATE EXTENSION IF NOT EXISTS timescaledb;</span></div><div id="bkmrk--13"></div>

# Création user en lecture seul

```bash
sudo -u postgres -i
```

```postgresql
CREATE USER servicenav LOGIN PASSWORD 'Password';
GRANT CONNECT ON DATABASE contact TO servicenav;
GRANT CONNECT ON DATABASE side TO servicenav;
GRANT CONNECT ON DATABASE vac TO servicenav;
```

```postgresql
GRANT USAGE ON SCHEMA public TO servicenav;
GRANT SELECT ON ALL TABLES IN schema public TO servicenav;
```

# Modification du compte Monitor

sudo -u postgres -i  
cd /production/pgsql/data/

Modification :

vim /production/pgsql/data/pg\_hba.conf

\#host all monitor 10.0.0.0/8 password  
host all monitor 10.1.1.85/32 password

Modification mot de passe compte postgresql monitor :

psql test

test=# \\du  
 List of roles  
 Role name | Attributes | Member of   
\--------------+------------------------------------------------------------+-----------  
 test | | {}  
 monitor | Superuser | {}  
 postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}  
 postgresdump | Superuser | {}

  
ALTER USER monitor WITH PASSWORD 'password';

systemctl reload postgresql-12  
Nb : pour avoir le nom exact du service : systemctl --type=service | grep postgre

# Vacuum

<div id="bkmrk-">  
</div><div id="bkmrk-sudo--u-postgres--i-">sudo -u postgres -i psql</div><div id="bkmrk--1">  
</div><div id="bkmrk-postgres%3D%23-%5Cc-%22nom_d">postgres=# \c "nom_de_la_bdd"</div><div id="bkmrk--2">  
</div><div id="bkmrk-nom_de_la_bdd%3D%23%C2%A0%C2%A0">nom_de_la_bdd=# VACUUM VERBOSE ANALYZE;</div><div id="bkmrk--3">  
</div><div id="bkmrk-nom_de_la_bdd%3D%23-%5Cq">nom_de_la_bdd=# \q</div>

# Splitbrain

Reconstruction du cluster Postgresql sous Centos

Premièrement sauvegarder la VM via un quick backup du côté du serveur VEEAM ou autre  
Deuxièmement : vérifier qu'il n'existe pas de job de dump sql sur les serveurs membres du cluster

UNIQUEMENT QUAND CECI EST FAIT désactiver le service PostgreSQL sur le Node qui sera le slave/standby

```bash
Service postgres12 stop
```

Dans le cas où il risque d'y avoir des cron de sauvegarde ou autre désactiver aussi le service crond

```bash
Service crond stop
```

Puis, toujours sur le node standby lancez cette commande en se positionnant sur un dossier qui est "possédé" par le user qui a accès à la/aux base/s ici c'est postgres et on effectue à partir du dossier <span style="color: rgb(230, 126, 35);">/production/pgsql </span>

```bash
/usr/pgsql-12/bin/repmgr -h POSTGRESQL1.repli -U repmgr -d repmgr standby clone -F
```

 Ici POSTGRESQL1 est le node master  
Afin de forcer la synchronisation des données entre le nœud master et standby

[![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/Eh4GZBR2GdVekwKH-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/Eh4GZBR2GdVekwKH-image.png)

  
Astuce : utilisez <span style="color: rgb(230, 126, 35);">watch -n1 df -h </span>côté nœud standby pour regarder l'évolution du remplissage du disque et pour vérifier qu'entre le nœud principal et secondaire une même quantité de données est utilisée.

Une fois cette opération qui peut prendre du temp est terminée  
Relancer le service postgresql

```bash
Service postgresql12 start
```

Vérifier son état

```bash
Service postgresql12 status
```

Maintenant lancer cette commande sur le nœud qui est censé être le standby

```bash
repmgr standby register --force
```

[![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/6j4ILzVERS8EDMr9-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/6j4ILzVERS8EDMr9-image.png)

Ensuite vérifier que les rôles sont de nouveau assignés normalement

```bash
repmgr cluster show --verbose
```

[![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/su4ddB9ebn4qedO8-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/su4ddB9ebn4qedO8-image.png)

Astuce si vous avez dût fermer le service Cron pensez à le redémarrer

```bash
Service crond start
```

Vérifier

```bash
Service crond status 
```

<span style="color: rgb(230, 126, 35);">  
</span>  
Et regarder si des jobs qui devaient se lancer n'ont pas été rater et dans le cas où si c'est le cas demander au client si vous pouvez les lancer ou bien vous le signaler au client pour qu'il fasse ses vérifications lui-même

# Commande Postgresql

# SQLPLUS

# Notes Général

<p class="callout info">POUR SQLITE 3</p>

Les commandes deletes s'executent sans \* comme dans l'exemple suivant :  
<span style="color: rgb(230, 126, 35);">DELETE from users WHERE id IN (3, 9);</span>