tutoriaux:restaurer_depuis_les_fichiers_postgresql

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Dernière révisionLes deux révisions suivantes
tutoriaux:restaurer_depuis_les_fichiers_postgresql [2020/05/29 11:46] – [Démarrer l'ancienne version de postgresql en prenant en compte les données "historique"] danytutoriaux:restaurer_depuis_les_fichiers_postgresql [2020/05/29 12:05] dany
Ligne 1: Ligne 1:
 ====== Situation ====== ====== Situation ======
  
-L'ordinateur a planté, et l'on n'a pas pu/ne peut plus faire de sauvegarde depuis l'interface noalyss.+L'ordinateur a planté, et l'on n'a pas pu/ne peut plus faire de sauvegarde depuis l'interface noalyss.  
 + 
 +Parce que :  
 + - un upgrade Linux n'a pas mis à jour la base de postgresql mais à créer une nouvelle version,  
 + 
 + - simplement vous avez un backup de votre disque mais pas de backup de la DB
  
 Néanmoins, on a encore accès aux données sur le disque dur de l'ordinateur qui a planté (et donc à notre base de donnée postgresql). Néanmoins, on a encore accès aux données sur le disque dur de l'ordinateur qui a planté (et donc à notre base de donnée postgresql).
 +
 +On utilisera la version 9.6 et 12 , adapter aux versions que vous avez
  
 On prendra un exemple où l'on doit restaurer une base de données construite avec postgresql-9.6 et remise dans une installation à jour avec postgresql-12. On prendra un exemple où l'on doit restaurer une base de données construite avec postgresql-9.6 et remise dans une installation à jour avec postgresql-12.
Ligne 27: Ligne 34:
 Copier/coller (nécessite les droits admin) le dossier /var/lib/postgresql/9.6/main (=POSTGRESBASE) que l'on a sauvegardé dans le même dossier sur la nouvelle installation. Si le dossier n'existe pas, c'est que l'installation de postgresql ne s'est pas bien faite. Copier/coller (nécessite les droits admin) le dossier /var/lib/postgresql/9.6/main (=POSTGRESBASE) que l'on a sauvegardé dans le même dossier sur la nouvelle installation. Si le dossier n'existe pas, c'est que l'installation de postgresql ne s'est pas bien faite.
  
-(!) On peut choisir un autre dossier. En choisissant d'écraser l'installation de postgresql , vous détruisez les données qui y seraient+:IMPORTANT: On peut choisir un autre dossier. En choisissant d'écraser l'installation de postgresql , vous détruisez les données qui y seraient
  
  
 Modifiez /etc/postgresql/9.6/main/pg_hba.conf ou créez le fichier dans POSTGRESBASE de sorte que : Modifiez /etc/postgresql/9.6/main/pg_hba.conf ou créez le fichier dans POSTGRESBASE de sorte que :
-<code>+<file txt pg_hba.conf> 
 local   all             all                                     peer local   all             all                                     peer
 host    all             all             127.0.0.1/32            trust host    all             all             127.0.0.1/32            trust
-</code>+</file>
 Modifiez /etc/postgresql/9.6/main/postgresql.conf ou créez le fichier dans POSTGRESBASE de sorte que :  Modifiez /etc/postgresql/9.6/main/postgresql.conf ou créez le fichier dans POSTGRESBASE de sorte que : 
-<code>+<file txt postgresql.conf>
 listen_addresses = 'localhost'          # what IP address(es) to listen on; listen_addresses = 'localhost'          # what IP address(es) to listen on;
 port = 4000                             # (change requires restart) port = 4000                             # (change requires restart)
-</code>+</file>
 Copier/coller (nécessite les droits admin) /etc/postgresql/9.6/main/pg_hba.conf et /etc/postgresql/9.6/main/postgresql.conf dans POSTGRESBASE Copier/coller (nécessite les droits admin) /etc/postgresql/9.6/main/pg_hba.conf et /etc/postgresql/9.6/main/postgresql.conf dans POSTGRESBASE
  
 Vérifier que tout appartient et est fait par l'utilisateur postgres  Vérifier que tout appartient et est fait par l'utilisateur postgres 
-<code> +<code bash> 
-chown -R postgres POSTGRESBASE # /var/lib/postgresql/9.6/main +POSTGRESBASE=/var/lib/postgresql/9.6/main 
-chmod -R o-rwx    POSTGRESBASE #/var/lib/postgresql/9.6/main+chown -R postgres $POSTGRESBASE # /var/lib/postgresql/9.6/main 
 +chmod -R o-rwx    $POSTGRESBASE #/var/lib/postgresql/9.6/main
 </code> </code>
  
Ligne 54: Ligne 63:
  
 (attention, à partir de postgresql-12, il faut également faire l'étape "Complément (version >=12)" décrite plus loin, juste avant les lignes suivantes) (attention, à partir de postgresql-12, il faut également faire l'étape "Complément (version >=12)" décrite plus loin, juste avant les lignes suivantes)
-(*) Rappel /var/lib/9.6/main est POSTGRESBASE+(!) Rappel /var/lib/9.6/main est POSTGRESBASE
 <code> <code>
 /usr/lib/postgresql/9.6/bin/pg_ctl start --pgdata  /var/lib/9.6/main/  -o "--port=4000" /usr/lib/postgresql/9.6/bin/pg_ctl start --pgdata  /var/lib/9.6/main/  -o "--port=4000"
Ligne 70: Ligne 79:
  
  
-Restaurez votre backup , +Restaurez votre backup ,  
-<code>+<code bash>
 sudo -i -u postgres sudo -i -u postgres
 psql <  noalyss_backup.dmp psql <  noalyss_backup.dmp
Ligne 82: Ligne 91:
 ====== Complément (version >= 12) ====== ====== Complément (version >= 12) ======
  
-À partir de la version 12 , on ne peut plus utiliser "with oids" qui était le défaut jusque là :-/+:TO-READ: Cette étape est absolument optionnelle et ne fera qu'éviter des warnings, vous pouvez l'ignorer. 
 + 
 +À partir de la version 12 , on ne peut plus utiliser "with oids" qui était le défaut jusque là 
  
 Il va falloir faire un script pour les modifier, quand la 9.6 tourne, se connecter et faire **pour chaque base de données**, en tant que postgres : Il va falloir faire un script pour les modifier, quand la 9.6 tourne, se connecter et faire **pour chaque base de données**, en tant que postgres :
  
-<code>+<code sql>
 postgres@dany:~$ psql db1 postgres@dany:~$ psql db1
 postgres=#\o /tmp/x.sql postgres=#\o /tmp/x.sql
  • tutoriaux/restaurer_depuis_les_fichiers_postgresql.txt
  • Dernière modification : 2020/05/29 12:06
  • de dany