Accéder au contenu.
Menu Sympa

fr - [sympa-fr] Problème de migration sympa

Objet : Pour les administrateurs de serveurs de listes utilisant le logiciel Sympa

Archives de la liste

Chronologique Discussions  
  • From: LIMBONGO-NGOKA Hermyle <adresse@cachée>
  • To: "adresse@cachée" <adresse@cachée>
  • Subject: [sympa-fr] Problème de migration sympa
  • Date: Tue, 14 Apr 2020 11:58:28 +0000

Bonjour,

En préambule, je souhaite que chacun de vous ainsi que vos proches se portent bien.

Je suis actuellement en train d’installer un nouveau serveur sympa et je suis à un stade « critique » où il faut migrer la base de données de l’ancien au nouveau.

Je vous mets en dessous les manips que j’ai effectué. Si vous avez un peu de temps…😁

 

Concernant la base de donnée :

versions source :

+-------------------------+---------------------+

| Variable_name                       | Value               

+-------------------------+---------------------+

| protocol_version                   | 10                  

| version                                    | 5.1.73             

| version_comment                 | Source distribution

| version_compile_machine | x86_64             

| version_compile_os             | redhat-linux-gnu   

+-------------------------+---------------------+

 

version cible :

+--------------------------+-------------------------------+

| Variable_name                             | Value                        

+--------------------------+-------------------------------+

| immediate_server_version      | 999999                       

| innodb_version                           | 8.0.17                       

| original_server_version             | 999999                       

| protocol_version                         | 10                           

| slave_type_conversions            |                              

| tls_version                                    | TLSv1,TLSv1.1,TLSv1.2,TLSv1.3

| version                                           | 8.0.17                       

| version_comment                      | Source distribution          

| version_compile_machine       | x86_64                       

| version_compile_os                   | Linux                        

| version_compile_zlib                 | 1.2.11                      

+--------------------------+-------------------------------+

 

volumétrie des données à migrer :

+--------------------+---------------+

| NomBaseDeDonnees                 | BaseDonneesMo

+--------------------+---------------+

| information_schema                  |          0.01

| sympa                                             |       1969.76

+--------------------+---------------+

 

erreurs rencontrées :

Alors la procédure que j'ai suivi est la suivante :

 

  1. J'ai fait un mysqldump -u sympa -p sympa > dump.sql
  2. j'ai ensuite copié le fichier sur la machine cible
  3. Puis j’ai exécuté cette commande mysql -u sympa -p < dump.sql
  4. je me suis aussi connecté à la base sympa sur le nouveau serveur pour faire un use sympa puis mysql> source dump.sql
  5. il me sort comme résultat à la fin Query OK, 0 rows affected (0.00 sec)
  6. Ensuite, quand je redémarre la base aucune erreur, mais quand je relance le service Sympa, il m'affiche des erreurs.

 

err main::#230 > Sympa::DatabaseManager::probe_db#94 > Sympa::DatabaseManager::instance#54 > Sympa::DatabaseDriver::MySQL::connect#58 > Sympa::Database::connect#157 Can't connect to Database Sympa::Database Sympa::DatabaseDriver::MySQL <db_env=NLS_LANG=American_America.AL32UTF8;ORACLE_HOME=/u01/app/oracle/product/11.2.0/server;db_host=localhost;db_name==sympa ver::MySQL <db_env=NLS_LANG=American_America.AL32UTF8;ORACLE_HOME=/u01/app/oracle/product/11.2.0/server;db_host=localhost;db_name=sympa;db_user=sympa>: Access denied for user 'sympa'@'localhost' (using password: YES)

sympa/health_check[23193]: err main::#230 > Sympa::DatabaseManager::probe_db#96 Could not check the database structure.  Make sure that database connection is available

Failed to start LSB: Sympa Mailing lists management.

 

Au vu des traces et après quelques recherches j'en ai déduis que le fichier de configuration sympa.conf pouvait contenir une erreur;

On peut lire Sympa::Database Sympa::DatabaseDriver::MySQL <db_env=NLS_LANG=American_America.AL32UTF8;ORACLE_HOME=/u01/app/oracle/product/11.2.0/server;db_host=localhost;db_name==sympa ver::MySQL

 

Ce qui ressemble furieusement à l'appel à un driver oracle...

 

À première vue, je me suis dit qu'en remplaçant la variable actuelle par la variable mysql correspondante, (donc celle du fichier source) ça devrait fonctionner.

Seulement dans le fichier sympa.conf source il n'y a tout simplement pas de variable d'environnement du style "db_env".

Je l'ai donc commenté dans le serveur de destination.

 

J'ai tenté à nouveau et effectivement il y avait un soucis avec cette ligne car l'erreur a été différente.

Cette fois-ci j'ai l'erreur suivante :

 

Sympa::DatabaseDriver::MySQL::set_primary_key#362 > Sympa::Database::do_query#280 Unable to execute SQL statement "ALTER TABLE exclusion_table ADD PRIMARY KEY (user_exclusion,family_exclusion,list_exclusion,robot_exclusion)": (01000) Data truncated for column 'robot_exclusion' at row 1

Sympa::DatabaseDriver::MySQL::set_primary_key#373 Could not set fields user_exclusion,family_exclusion,list_exclusion,robot_exclusion as primary key for table exclusion_table in database sympa

err main::#230 > Sympa::DatabaseManager::probe_db#223 Unable to check the validity of primary key for table exclusion_table. Aborting

 

Au vu des dernières traces et après quelques recherches sur internet, il s'agirait d'un problème d'upgrade de la base. Les versions n'étant pas les mêmes il affiche des erreurs.

Je n'ai pas encore élucidé le mystère de toutes les lignes mais j'ai commencé par la piste UPGRADE.

 

J’ai tenté un upgrade avec la commande ./sympa.pl --upgrade

Erreur après l’exécution de la commande. En effet, dans les fichiers du serveur de DESTINATION, la base est déjà dans la dernière version. Il ne peut donc pas la mettre à jour.

 

Je tente alors la manip suivante:

                - Reporter la même version de la BDD de la machine source sur celle de destination en modifiant le fichier /var/www/sympa/etc/data_structure.version

                - La version actuelle est 6.2.48 et je la passe en 6.1.7, valeur de la prod

Après avoir fait cela, je relance ./sympa.pl --upgrade et j'obtiens à nouveau une erreur.

 

notice main:: Sympa 6.2.48 Started

notice main:: Upgrade process...

notice main:: Upgrading from 6.1.7 to 6.2.48...

notice Sympa::DatabaseManager::_check_primary_key() Primary key exclusion_table [robot_exclusion,list_exclusion,family_exclusion,user_exclusion] is missing. Adding it

err main::#912 > Sympa::Upgrade::upgrade#120 > Sympa::DatabaseManager::probe_db#214 > Sympa::DatabaseManager::_check_primary_key#465 > Sympa::DatabaseDriver::MySQL::set_primary_key#362 > Sympa::Database::do_query#280 Unable to execute SQL statement "ALTER TABLE exclusion_table ADD PRIMARY KEY (robot_exclusion,list_exclusion,family_exclusion,user_exclusion)": (01000) Data truncated for column 'robot_exclusion' at row 1

err main::#912 > Sympa::Upgrade::upgrade#120 > Sympa::DatabaseManager::probe_db#214 > Sympa::DatabaseManager::_check_primary_key#465 > Sympa::DatabaseDriver::MySQL::set_primary_key#373 Could not set fields robot_exclusion,list_exclusion,family_exclusion,user_exclusion as primary key for table exclusion_table in database sympa

err main::#912 > Sympa::Upgrade::upgrade#120 > Sympa::DatabaseManager::probe_db#223 Unable to check the validity of primary key for table exclusion_table. Aborting

err main::#912 > Sympa::Upgrade::upgrade#124 Database sympa defined in sympa.conf has not the right structure or is unreachable. verify db_xxx parameters in sympa.conf

err main::#916 Migration from 6.1.7 to 6.2.48 failed

 

Nouvel échec, mais j’avance ^^

 

On peut lire notice Sympa::DatabaseManager::_check_primary_key() Primary key exclusion_table [robot_exclusion,list_exclusion,family_exclusion,user_exclusion] is missing. Adding it

 

À présent la piste que je souhaite explorer, est celle de la modification de la base de donnée dans le but d’ajouter les informations manquantes avant de retenter l’upgrade.

 

Pour cela je me connecte à la base sympa sur le serveur de destination et je tente les commandes suivantes :

 

    update exclusion_table SET family_exclusion = '' where family_exclusion is null;

puis

    alter table exclusion_table modify column family_exclusion varchar(50) not null;

ensuite

ALTER TABLE exclusion_table ADD PRIMARY KEY (family_exclusion,user_exclusion,list_exclusion,robot_exclusion);

 

Échec lors de la dernière commande. Je poursuis mes recherches dans ce sens pour voir un peu ou ça mène.

 

Cordialement,

---------------------------------------------------

Hermyle.L

Administrateur Réseaux Messagerie

---------------------------------------------------



  • [sympa-fr] Problème de migration sympa, LIMBONGO-NGOKA Hermyle, 14/04/2020

Archives gérées par MHonArc 2.6.19+.

Haut de le page