-
Notifications
You must be signed in to change notification settings - Fork 4
[5.1] Instructions de migration des avis existants vers le stockage optimisé
Anca Luca edited this page Dec 26, 2022
·
10 revisions
Cette page décrit les opérations de migration des avis vers le nouveau stockage optimisé, ajouté dans la version 5.1 (voir #1191 et #1193).
- prerequis: les tables du nouveau stockage doivent être crées sur le serveur à migrer
- faire les opérations dans une session utilisant
screen
outmux
pour assurer la continuité des exécutions des scripts, quelque soit l'état du clientssh
- se connecter avec l'utilisateur
root
- copier les scripts du répertoire de code
aggregates/migrate
sur le serveur à migrer - aller dans le répertoire
aggregates/migrate
- créer la table auxiliaire
xwoids
avec la commande suivante dans le client mysql:
CREATE TABLE xwoids (
month int(6) NOT NULL DEFAULT '0',
xwo_id bigint(20) NOT NULL,
KEY xwoids_month (month)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
- pour chacune des années du passé, faire les opérations suivantes:
- exécuter le script migratecreatexwoids.sh avec, en paramètre l'année, par exemple
$ ./migratecreatexwoids.sh 2018
- opération longue, résultat à attendre, surveillance avec
mytop
- opération longue, résultat à attendre, surveillance avec
- exécuter le script migratebymonth.sh avec, en paramètre l'année, par exemple
$ ./migratebymonth.sh 2018
- opération longue, résultat à attendre, surveillance avec
mytop
- opération longue, résultat à attendre, surveillance avec
- vérifier les données:
- en comparant les résultats de comptages de la table
xwoids
par période avec les résultats de comptages de la tableavis
:select month, count(*) from xwoids group by month order by month;
select date_format(avis_date, '%Y%m'), count(*) from avis group by 1 order by 1;
- ensuite, avec le script migratecheckbymonth.sh, par exemple
$ ./migratecheckbymonth.sh 202112
pour le mois de décembre de l'année 2022- le script ne doit pas renvoyer des résultats. Tout résultat affiché est à investiguer comme une erreur de migration.
- en comparant les résultats de comptages de la table
- exécuter le script migratecreatexwoids.sh avec, en paramètre l'année, par exemple
À cette étape là, le changement du stockage pour la classe Avis.Code.AvisClass
doit être mis en place pour activer le nouveau stockage pour tout nouvel avis entrant.
Migration finale du dernier mois (scripts pour données après 25 décembre 2022):
- exécuter le script migratefinalmonth.sh:
$ ./migratefinalmonth.sh
- si besoin, modifier la date dans avis_migrate_finalmonth.sql
Effacement des anciennes données et données temporaires:
- dans le même répertoire
aggregates/migrate
et avec le même utilisateur, pour chacune des années du passé:- exécuter le script migratedeletebymonth.sh avec, en paramètre l'année, par exemple
$ ./migratedeletebymonth.sh 2018
- le script peut être également exécute par mois, en passant en paramètre l'année suivi par le mois, par exemple:
$ ./migratedeletebymonth.sh 201807
- opération longue, résultat à attendre, surveillance avec
mytop
- le script peut être également exécute par mois, en passant en paramètre l'année suivi par le mois, par exemple:
- exécuter le script migratedeletebymonth.sh avec, en paramètre l'année, par exemple
- supprimer la table auxiliaire
xwoids
avec la commande suivante dans le client mysql:
drop table xwoids;