Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente Prochaine révisionLes deux révisions suivantes | ||
tutoriaux:restaurer_depuis_les_fichiers_postgresql [2020/05/28 19:44] – créée max_bxl | tutoriaux:restaurer_depuis_les_fichiers_postgresql [2020/05/29 11:40] – [Démarrer l'ancienne version de postgresql en prenant en compte les données "historique"] dany | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Situation ====== | ||
+ | |||
L' | L' | ||
Ligne 5: | Ligne 7: | ||
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. | ||
- | Étape 0 : sauvegarder la base de données | + | ====== Préambule |
Copier/ | Copier/ | ||
À partir de maintenant, on travaillera sur la nouvelle installation (dans l' | À partir de maintenant, on travaillera sur la nouvelle installation (dans l' | ||
- | Étape 1 : installer | + | ====== Installer |
+ | |||
Soit en la compilant, soit avec les packages de la distribution. | Soit en la compilant, soit avec les packages de la distribution. | ||
Ligne 16: | Ligne 21: | ||
Dans notre exemple, postgresql-9.6, | Dans notre exemple, postgresql-9.6, | ||
- | Étape 2 : démarrer | + | ====== Démarrer |
+ | |||
Copier/ | Copier/ | ||
Modifier / | Modifier / | ||
+ | < | ||
local | local | ||
host all | host all | ||
+ | </ | ||
Modifier / | Modifier / | ||
+ | < | ||
listen_addresses = ' | listen_addresses = ' | ||
port = 4000 # (change requires restart) | port = 4000 # (change requires restart) | ||
+ | </ | ||
Copier/ | Copier/ | ||
Vérifier que tout appartient et est fait par l' | Vérifier que tout appartient et est fait par l' | ||
+ | < | ||
chown -R postgres / | chown -R postgres / | ||
chmod -R o-rwx / | chmod -R o-rwx / | ||
+ | </ | ||
- | Puis faire (attention, il faut avoir le chemin complet vers pg_ctl) | ||
- | / | + | Puis faire : |
+ | (attention, il faut avoir le chemin complet vers pg_ctl) | ||
+ | |||
+ | (attention, à partir de postgresql-12, | ||
+ | < | ||
+ | / | ||
+ | </ | ||
Une fois cela fait, avec la nouvelle version de postgresl (pour rappel, c'est la 12 pour cet exemple) faire : | Une fois cela fait, avec la nouvelle version de postgresl (pour rappel, c'est la 12 pour cet exemple) faire : | ||
+ | < | ||
+ | / | ||
+ | </ | ||
+ | Il faut se connecter sur le port de la version 9.6 , puis arrêter ce server | ||
+ | < | ||
+ | / | ||
+ | </ | ||
- | / | + | ====== Restaurer la base de donnée ====== |
- | Puis arrêter le server 9.6 | ||
- | / | ||
+ | Restaurez votre backup , | ||
+ | < | ||
+ | sudo -i -u postgres | ||
+ | psql < noalyss_backup.dmp | ||
+ | </ | ||
+ | Les données , les utilisateurs et les mots de passe seront comme à l' | ||
+ | |||
+ | |||
+ | source : [[tutoriaux: | ||
+ | |||
+ | ====== Complément (version >= 12) ====== | ||
+ | |||
+ | À 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 : | ||
+ | |||
+ | < | ||
+ | postgres@dany: | ||
+ | postgres=# | ||
+ | |||
+ | postgres=# select 'alter table ' | ||
+ | from pg_namespace nsp | ||
+ | join pg_class tbl on nsp.oid = tbl.relnamespace | ||
+ | where tbl.relhasoids=' | ||
+ | |||
+ | postgres=# | ||
+ | postgres=# | ||
+ | </ | ||
+ | où db1 est le nom de la base de donnée numéro un, que l'on trouvera de la manière suivante : | ||
+ | < | ||
+ | postgres@dany: | ||
+ | postgres=# | ||
+ | </ | ||