FAQ:UpgradeVMCentrale
Sommaire
[masquer]- 1 Généralités
- 2 Installation d'une nouvelle VM centrale
- 3 Première synchronisation des répertoires
- 4 Arrêt des cron de l'ancienne VM
- 5 Synchronisation complète et finale
- 6 Ajustement des paramètres de la nouvelle plateforme
- 6.1 Restauration de la base de données dbsqware_db
- 6.2 Modification des fichiers de configuration
- 6.3 Mise à jour de la licence et du référentiel
- 6.4 Ajustements éventuels
- 7 Mise en production de la nouvelle plateforme
Généralités
Limites de cette section
Cette section n’a pas la prétention de traiter tous les cas possibles d'upgrade de la VM centrale de dbSQWare.
Quand on parle d'upgrade, c'est de la partie système dont on parle !
Passer par exemple d'une machine CentOS 7 vers une Rocky Linux 9 ... C'est ce cas précis que nous prendrons en exemple, upgrade d'une installation faite par l'OVF fourni vers une nouvelle version de l'OVF.
Pour autant, la technique utilisée restera la même si vous avez fait une installation vierge, même sur un autre OS, etc ...
Ce chapitre ne traite pas les changements de paramétrages ou autre (pour l’installation du socle central, pour les autres paramétrages, reportez-vous aux sections adéquates).
MODOP général d'upgrade
Le principe est toujours plus ou moins le même ...
- Installation d'une nouvelle VM centrale avec une IP tempo
- Première synchro des répertoires (pour limiter le downtime)
- Arrêt des cron de l'ancienne VM
- Synchro complète (répertoires, bdd, etc ...)
- Ajustement si nécessaire des paramètres de la nouvelle plateforme
- Arrêt ancienne machine et reprise de l'IP sur la nouvelle machine
Installation d'une nouvelle VM centrale
Installation
Pour cette partie vous avez deux possibilités :
Paramétrages pour la migration
Vérification de la taille des $HOME de chaque utilisateurs
Vérifier que la nouvelle machine aura l'espace disponible pour recevoir les home des utilisateurs.
Depuis l'utilisateur root de la machine source :
root@srvdbsqware:/root # cd /home/ root@srvdbsqware:/home # du -sh dbsqware mssql mysql oracle postgres sybase 1.2G dbsqware 30M mssql 200M mysql 652K oracle 156K postgres 36K sybase
Depuis l'utilisateur root de la machine cible :
root@vmsqwarebox:/root # df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 4.0M 0 4.0M 0% /dev tmpfs 1.8G 0 1.8G 0% /dev/shm tmpfs 732M 67M 666M 10% /run /dev/mapper/root_vg-root 10G 3.2G 6.9G 32% / /dev/sda2 960M 366M 595M 39% /boot /dev/mapper/root_vg-var 5.0G 489M 4.5G 10% /var /dev/sda1 599M 7.1M 592M 2% /boot/efi /dev/mapper/data_vg-applis 5.0G 4.4G 652M 88% /applis /dev/mapper/data_vg-backups 10G 179M 9.8G 2% /backups /dev/mapper/data_vg-home 10G 2.3G 7.7G 23% /home /dev/mapper/data_vg-data 15G 1.8G 14G 12% /data tmpfs 366M 4.0K 366M 1% /run/user/1000
Ici on a 7,7G d'espace disponible pour environ 2G de données à transférer on peut continuer.
Echange de clé ssh
On va utiliser rsync pour transférer les données et pouvoir faire un transfert différentiel après le décommissionnement de la machine source.
Pour ces manipulations il faut que la clé ssh de l'utilisateur root de la machine source soit présent dans la session de l'utilisateur root de la machine de destination (et uniquement dans ce sens).
Transfert de clé via ssh
Avec l'utilisateur root de la machine source :
root@srvdbsqware :/root # ssh-copy-id root@vmsqwarebox root@srvdbsqware:/root/.ssh # ssh-copy-id root@vmsqwarebox /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub" The authenticity of host 'vmsqwarebox (<IP>)' can't be established. ED25519 key fingerprint is SHA256:3WWyOqGAdLAUq56CMrop/9a40DxbnVoMpsZXU+HXPD0. This key is not known by any other names Are you sure you want to continue connecting (yes/no/[fingerprint])? yes /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys root@vmsqwarebox's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'root@vmsqwarebox'" and check to make sure that only the key(s) you wanted were added.
Copier/coller de la clé
Vous pouvez également faire la copie de la clé à la main, si vous préférez, ou si la version de ssh sur la machine source ne supporte pas ssh-copy-id.
Avec l'utilisateur root de la machine source :
root@srvdbsqware :/root # cat /root/.ssh/id_rsa.pub ssh-rsa 7NgPkiCq71p6FzvlU1yf8CRrlPjV+3l0NeiML8rxWoR8omtsi+VO7WGnnldHSq10pDn0alzZFqGp0lmwBnW+u+r5X1uvcwqS4D zNiCYjtAv4QEmBPbizucZovuoPE8zdJ/Fe+AllF5qTD8/k31JCWIH2krCATo/rkvUelxxvCJyKNhOjUF6w07xwGbi40X3uLUlg1x3ruUQz/ MYosO8VLHy+DVtERjwJrZwOQ7kEgNWrha/UvNu6HsP3VqKL3fQaqrIpWAemaH6Ck+dBnn02zhwWai8II1MAFgBWhq1JXTLz5n/ZzkZWEPy5ZGGjE= root@vmsqwarebox <br>
Copiez l'intégralité de la clé, puis avec l'utilisateur root de la machine de destination :
root@srvdbsqware :/root # vi /root/.ssh/authorized_keys ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ "~/.ssh/authorized_keys" 0L, 0B
Collez dans ce fichier la clé copiée plus tôt.
ssh-rsa 7NgPkiCq71p6FzvlU1yf8CRrlPjV+3l0NeiML8rxWoR8omtsi+VO7WGnnldHSq10pDn0alzZFqGp0lmwBnW+u+r5X1uvcwqS4D zNiCYjtAv4QEmBPbizucZovuoPE8zdJ/Fe+AllF5qTD8/k31JCWIH2krCATo/rkvUelxxvCJyKNhOjUF6w07xwGbi40X3uLUlg1x3ruUQz/ MYosO8VLHy+DVtERjwJrZwOQ7kEgNWrha/UvNu6HsP3VqKL3fQaqrIpWAemaH6Ck+dBnn02zhwWai8II1MAFgBWhq1JXTLz5n/ZzkZWEPy5ZGGjE= root@vmsqwarebox <br> ~ ~ ~ ~
Sauvegardez le fichier.
On test la connexion ssh
Avec l'utilisateur root de la machine source :
ssh 'root@vmsqwarebox' Last login: Mon Feb 10 10:49:04 2024 root@vmsqwarebox:/root #
Sauvegarde des crontab
Avec l'utilisateurs root sur la machine source :
1 #root@srvdbsqware
2 for lvsqw_User in `echo 'dbsqware mssql mysql oracle postgres sybase'`
3 do
4 su - $lvsqw_User -c "echo '###########################';echo '$lvsqw_User';crontab -l> \$HOME/CrontabRef_srvdbsqware01;cat \$HOME/CrontabRef_srvdbsqware01"
5 done
Première synchronisation des répertoires
Première synchronisation des home
Avec l'utilisateur root de la machine source
1 cd /home/dbsqware
2 rsync -aHv --delete -e "ssh -o BatchMode=yes -o StrictHostKeyChecking=no" .ssh admin CrontabRef* dbSQWare depl_all.ksh sqwConfig root@vmsqwarebox:/home/dbsqware/.
3 cd /home/mssql
4 rsync -aHv --delete -e "ssh -o BatchMode=yes -o StrictHostKeyChecking=no" .ssh admin CrontabRef* logs sqwConfig .passwd_mssql root@vmsqwarebox:/home/mssql/.
5 cd /home/mysql
6 rsync -aHv --delete -e "ssh -o BatchMode=yes -o StrictHostKeyChecking=no" .ssh admin CrontabRef* logs MYS_DBA_PRD sqwConfig .passwd_mysql root@vmsqwarebox:/home/mysql/.
7 cd /home/oracle
8 rsync -aHv --delete -e "ssh -o BatchMode=yes -o StrictHostKeyChecking=no" .ssh admin CrontabRef* logs sqwConfig .passwd_oracle root@vmsqwarebox:/home/oracle/.
9 cd /home/postgres
10 rsync -aHv --delete -e "ssh -o BatchMode=yes -o StrictHostKeyChecking=no" .ssh admin CrontabRef* sqwConfig .passwd_postgres root@vmsqwarebox:/home/postgres/.
11 cd /home/sybase
12 rsync -aHv --delete -e "ssh -o BatchMode=yes -o StrictHostKeyChecking=no" .ssh CrontabRef* root@vmsqwarebox:/home/sybase/.
Exemple d'erreurs
Lisez bien l'erreur au début ou à la fin de la ligne rsync vous aide à identifier ce qu'il se passe avec [SENDER] ou [DESTINATION].
- [SENDER] L'erreur vient de la source, en général le fichier ou le dossier en argument n'existe pas, ou bien l'échange ne clé n'est pas fait, n'a pas fonctionné,
- [DESTINATION] L'erreur vient de la destination, en général le dossier dans lequel vous voulez copier n'existe pas, ou il y a un problème de droits dans ce dossier, ou bien l'échange ne clé n'est pas fait, n'a pas fonctionné.
Exemple avec l'utilisateur root depuis la machine source; et certains éléments seulement :
rsync -aHv --delete -e "ssh -o BatchMode=yes -o StrictHostKeyChecking=no" .ssh CrontabRef* admin root@vmsqwarebox:/home/dbsqware/. sending incremental file list rsync: [sender] link_stat "/home/dbsqware/admin" failed: No such file or directory (2) sent 388 bytes received Xx bytes 802.00 bytes/sec total size is Xx speedup is Xx rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1330) [sender=3.2.3]
On supprime l'argument "admin" de la commande :
rsync -aHv --delete -e "ssh -o BatchMode=yes -o StrictHostKeyChecking=no" .ssh CrontabRef* root@vmsqwarebox:/home/dbsqware/. sending incremental file list CrontabRef .ssh/ .ssh/authorized_keys .ssh/config .ssh/id_rsa .ssh/id_rsa.pub .ssh/known_hosts .ssh/openssl.cnf sent Xx,XX bytes received Xx bytes 197,768.00 bytes/sec total size is Xx speedup is XxX.Xx
Synchronisation des sauvegardes
On commence par vérifier quels sont les répertoires qui contiennent des sauvegardes à transférer, avec l'utilisateur root de la machine source :
ls -al /backups/* /backups/dbsqware: total 0 drwxr-xr-x 2 dbsqware dba 6 Jun 11 2024 . drwxr-xr-x. 8 root root 92 Jun 11 2024 .. /backups/mssql: total 0 drwxr-xr-x 2 mssql dba 6 Jun 11 2024 . drwxr-xr-x. 8 root root 92 Jun 11 2024 .. /backups/mysql: total 4 drwxr-xr-x 4 mysql dba 51 Jun 12 2024 . drwxr-xr-x. 8 root root 92 Jun 11 2024 .. drwxrwxr-x 2 mysql mysql 4096 Feb 9 20:00 MYS_DBA_PRD drwxr-xr-x 2 mysql dba 6 Feb 10 08:00 MYS_DBA_PRD-tmpdir /backups/oracle: total 0 drwxr-xr-x 3 oracle dba 22 Jun 12 2024 . drwxr-xr-x. 8 root root 92 Jun 11 2024 .. drwxr-xr-x 2 oracle dba 6 Jun 12 2024 binaires /backups/postgres: total 0 drwxr-xr-x 2 postgres dba 6 Jun 11 2024 . drwxr-xr-x. 8 root root 92 Jun 11 2024 .. /backups/sybase: total 0 drwxr-xr-x 2 sybase dba 6 Jun 11 2024 . drwxr-xr-x. 8 root root 92 Jun 11 2024 ..
Ensuite pour chaque dossier qui contient des éléments, toujours avec l'utilisateur root de la machine source :
rsync -aHv --delete -e "ssh -o BatchMode=yes -o StrictHostKeyChecking=no" /backups/mysql/MYS_DBA_PRD root@vmsqwarebox:/backups/mysql/.
Synchronisation des données
Vérification
On commence par vérifier quels sont les répertoires qui contiennent des données, avec l'utilisateur root de la machine source :
ls -al /data/* /data/dbsqware: total 0 drwxr-xr-x 6 dbsqware dba 85 Aug 1 2022 . drwxr-xr-x. 8 root root 92 Jun 11 2024 .. drwxr-xr-x 5 dbsqware dba 88 Dec 7 2020 admin drwxr-xr-x 5 dbsqware dba 114 Jul 18 2022 dbseries drwxr-xr-x 6 dbsqware dba 126 Aug 1 2022 git_AltGr_dbSQWare drwxr-xr-x 4 dbsqware dba 56 Jul 18 2022 MassiveTestFiles /data/mssql: total 0 drwxr-xr-x 2 mssql dba 6 Jun 11 2024 . drwxr-xr-x. 8 root root 92 Jun 11 2024 .. /data/mysql: total 8 drwxr-xr-x 5 mysql dba 68 Jun 11 2024 . drwxr-xr-x. 8 root root 92 Jun 11 2024 .. drwxr-xr-x 7 mysql mysql 4096 Jan 3 09:48 MYS_DBA_PRD drwxr-xr-x 2 mysql dba 6 Jun 11 2024 MYS_DBA_PRD-binlog drwxrwxr-x 22 mysql dba 4096 Feb 5 17:38 SlowQuery /data/oracle: total 4 drwxr-xr-x 4 oracle dba 35 Sep 10 10:00 . drwxr-xr-x. 8 root root 92 Jun 11 2024 .. drwxr-xr-x 27 oracle dba 4096 Dec 26 15:58 admin drwxr-sr-x 2 oracle 1521 22 Jul 6 2022 test_nas /data/postgres: total 0 drwxr-xr-x 2 postgres dba 6 Jun 11 2024 . drwxr-xr-x. 8 root root 92 Jun 11 2024 .. /data/sybase: total 0 drwxr-xr-x 2 sybase dba 6 Jun 11 2024 . drwxr-xr-x. 8 root root 92 Jun 11 2024 ..
Transfert des données
Ensuite pour chaque dossier qui contient des éléments, toujours avec l'utilisateur root de la machine source :
rsync -aHv --delete -e "ssh -o BatchMode=yes -o StrictHostKeyChecking=no" /data/dbsqware root@vmsqwarebox :/data/. rsync -aHv --delete -e "ssh -o BatchMode=yes -o StrictHostKeyChecking=no" /data/mysql/SlowQuery root@vmsqwarebox :/data/mysql/. rsync -aHv --delete -e "ssh -o BatchMode=yes -o StrictHostKeyChecking=no" /data/oracle root@vmsqwarebox :/data/.
Arrêt des cron de l'ancienne VM
A partir de là, on "coupe le service" et on fait la bascule à proprement parlé, la première étape et donc d'arrêter les tâches planifiées pour s'assurer que la machine source ne lance plus rien.
Suppression des crontab de tous les utilisateurs
Avec l'utilisateur root de la machine source :
for lvsqw_User in `echo 'dbsqware mssql mysql oracle postgres sybase'` do su - $lvsqw_User -c "echo '###########################';echo '$lvsqw_User';crontab -r" done _ _ ____ _____ __ __| | |__/ ___| / _ \ \ / /_ _ _ __ ___ / _` | '_ \___ \| | | \ \ /\ / / _` | '__/ _ \ | (_| | |_) |__) | |_| |\ V V / (_| | | | __/ \__,_|_.__/____/ \__\_\ \_/\_/ \__,_|_| \___| ################################################################### # SQWareCentral module of dbSQWare # Copyright (C) 2010-2024, dbSQWare (www.dbsqware.com) # dbSQWare is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # CGU/CGA for more details. # You should have received a copy of the CGU/CGA # along with this program. If not, see <http://www.dbsqware.com/licenses/>. # For information : contact@dbsqware.com or www.dbsqware.com ################################################################### # SqwVersion=2024.08 # For help type 'show <-h|-help|--help>' ########################### dbsqware ########################### mssql ########################### mysql ########################### oracle ########################### postgres no crontab for postgres ########################### sybase no crontab for sybase
Pour certains utilisateurs il est tout à fait normal de ne pas avoir de crontab : pas ce type de SGBD dans le parc, pas de rapport AWR pour Oracle, pas de PostgreSQL au status dist, etc ....
Vérification qu'il n'y plus de crontab
Avec l'utilisateur root de la machine source :
for lvsqw_User in `echo 'dbsqware mssql mysql oracle postgres sybase'` do su - $lvsqw_User -c "echo '###########################';echo '$lvsqw_User';crontab -l" done _ _ ____ _____ __ __| | |__/ ___| / _ \ \ / /_ _ _ __ ___ / _` | '_ \___ \| | | \ \ /\ / / _` | '__/ _ \ | (_| | |_) |__) | |_| |\ V V / (_| | | | __/ \__,_|_.__/____/ \__\_\ \_/\_/ \__,_|_| \___| ################################################################### # SQWareCentral module of dbSQWare # Copyright (C) 2010-2024, dbSQWare (www.dbsqware.com) # dbSQWare is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # CGU/CGA for more details. # You should have received a copy of the CGU/CGA # along with this program. If not, see <http://www.dbsqware.com/licenses/>. # For information : contact@dbsqware.com or www.dbsqware.com ################################################################### # SqwVersion=2024.08 # For help type 'show <-h|-help|--help>' ########################### dbsqware no crontab for dbsqware ########################### mssql no crontab for mssql ########################### mysql no crontab for mysql ########################### oracle no crontab for oracle ########################### postgres no crontab for postgres ########################### sybase no crontab for sybase
Synchronisation complète et finale
Sauvegarde de la base dbsqware_db
On fait une dernière sauvegarde aprés avoir coupé les tâches planifiées.
Avec l'utilisateur root de la machine source :
root@srvdbsqware:/backups # su - mysql Last login: Thu Jun 13 20:15:04 CEST 2024 on pts/0 mysql@srvdbsqware01:/home/mysql (MYS_DBA_PRD) $ $gvsqw_MysBin/sqwmys_DumpDatabase.ksh -I MYS_DBA_PRD -D dbsqware_db -HI 10 -Exec Sourcing sqwmys_Global.lib v2024.08 SQWareProduction for MySQL (dbSQWare) ... Sourcing .profile for MYS_DBA_PRD ... [..résultats omis..] Run of: mysqldump -S /var/lib/mysql/mysql.sock -u mysql --create-options -f --max_allowed_packet=1000000000 --net_buffer_length=16M -R -q --databases dbsqware_db ... END_TRT Code: 0 --> 2025-02-10 14:00:33 job mysqldump dbsqware_db on MYS_DBA_PRD Dump file: -rwxr-x--- 1 mysql mysql 148641 Feb 10 14:00 /backups/mysql/MYS_DBA_PRD/dbsqware_db_20240613_201751.dump.gz Size of dump mysqldump of dbsqware_db: 148 Kb END_TRT Code: 0 --> Async insert indicators '' 2025-02-10 14:00:33. SQL file : /home/mysql/MYS_DBA_PRD/logs/AsyncSqlDir/20250210_140029_36982_dbsqware_db_sqwmys_DumpDatabase_0002.sql.gz Insert generated dump file in /home/mysql/MYS_DBA_PRD/sqwConfig/ToTape/dbsqware_db_20240613_201751.lst : /backups/mysql/MYS_DBA_PRD/dbsqware_db_20240613_201751.dump.log Summary of returns: END_TRT Code: 0 --> 2025-02-10 14:00:33 job mysqldump dbsqware_db on MYS_DBA_PRD END_TRT Code: 0 --> Async insert indicators '' 2025-02-10 14:00:33. Job job mysqldump dbsqware_db on MYS_DBA_PRD proceeded successfully Sending mail html by sendmail at dbaadmin@mydomane.com Begining : 2025-02-10 14:00:29 End : 2025-02-10 14:00:33 Duration : 00:00:04
Transfert de la nouvelle sauvegarde
On va refaire un rsync de /backups/mysql/MYS_DBA_PRD, avec l'utilisateur root de la machine source :
rsync -aHv --delete -e "ssh -o BatchMode=yes -o StrictHostKeyChecking=no" /backups/mysql/MYS_DBA_PRD root@srvdbsqware04:/backups/mysql/. sending incremental file list /backups/mysql/MYS_DBA_PRD/dbsqware_db_20250210_140030.dump.gz sent Xx,XX bytes received Xx bytes 197,768.00 bytes/sec total size is Xx speedup is XxX.Xx
Synchronisation finale des home
Avec l'utilisateur root de la machine source :
cd /home/dbsqware rsync -aHv --delete -e "ssh -o BatchMode=yes -o StrictHostKeyChecking=no" .ssh admin CrontabRef* dbSQWare depl_all.ksh sqwConfig root@vmsqwarebox:/home/dbsqware/. cd /home/mssql rsync -aHv --delete -e "ssh -o BatchMode=yes -o StrictHostKeyChecking=no" .ssh admin CrontabRef* logs sqwConfig .passwd_mssql root@vmsqwarebox:/home/mssql/. cd /home/mysql rsync -aHv --delete -e "ssh -o BatchMode=yes -o StrictHostKeyChecking=no" .ssh admin CrontabRef* logs MYS_DBA_PRD sqwConfig .passwd_mysql root@vmsqwarebox:/home/mysql/. cd /home/oracle rsync -aHv --delete -e "ssh -o BatchMode=yes -o StrictHostKeyChecking=no" .ssh admin CrontabRef* logs sqwConfig .passwd_oracle root@vmsqwarebox:/home/oracle/. cd /home/postgres rsync -aHv --delete -e "ssh -o BatchMode=yes -o StrictHostKeyChecking=no" .ssh admin CrontabRef* sqwConfig .passwd_postgres root@vmsqwarebox:/home/postgres/. cd /home/sybase rsync -aHv --delete -e "ssh -o BatchMode=yes -o StrictHostKeyChecking=no" .ssh CrontabRef* root@vmsqwarebox:/home/sybase/.
Rsync fonctionnant en différentiel ce transfert là sera beaucoup plus rapide que celui de la Première synchronisation 3.1
On condamne la machine source
Il faut maintenant s'assurer que la machine source soit décommissionnée au moins au niveau de dbSQWare.
Pour cela on va simplement renommer le répertoire contenant dbSQWare.
Avec l'utilisateur root sur la machine source :
mv /home/dbsqware/dbSQWare /home/dbsqware/dbSQWare_mig
Ajustement des paramètres de la nouvelle plateforme
Restauration de la base de données dbsqware_db
Avec l'utilisateur root sur la machine de destination :
root@wmsqwarebox:/root # su - mysql Last login: Wed Jun 12 08:18:08 CEST 2024 from 192.168.231.27 on pts/1 mysql@wmsqwarebox:/home/mysql (MYS_DBA_PRD) $ dmp total 88876 drwxrwxr-x 2 mysql mysql 4096 Jun 13 20:18 . drwxr-xr-x 4 mysql dba 51 Jun 12 08:16 .. -rwxr-x--- 1 mysql mysql 28171581 Jun 12 20:01 dbsqware_db_20240612_200004.dump.gz -rwxr-x--- 1 mysql mysql 28165757 Jun 13 20:00 dbsqware_db_20240613_200003.dump.gz -rwxr-x--- 1 mysql mysql 28165370 Jun 13 20:18 dbsqware_db_20240613_201751.dump.gz -rwxr-x--- 1 mysql mysql 2909231 Jun 12 20:00 dbsqware_inov_20240612_200005.dump.gz -rwxr-x--- 1 mysql mysql 2909231 Jun 13 20:00 dbsqware_inov_20240613_200004.dump.gz -rwxr-x--- 1 mysql mysql 333161 Jun 12 20:02 mysql_20240612_200216.dump.gz -rwxr-x--- 1 mysql mysql 333159 Jun 13 20:00 mysql_20240613_200015.dump.gz gunzip dbsqware_db_20240613_201751.dump.gz my --force < dbsqware_db_20240613_201751.dump
Modification des fichiers de configuration
Ici il faut modifier, ou pas, les fichiers de configuration pour être sûr de se connecter à la nouvelle base de données :
- Changement de mot de passe
- Changement de hostname,
- ....
Avec l'utilisateur root sur la machine de destination :
vi /home/dbsqware/dbSQWare/SQWareCentral/etc_cust/.my_SQWareRepository.cnf vi /home/dbsqware/dbSQWare/SQWareWeb/custom/sqwareweb.ini vi /home/dbsqware/dbSQWare/SQWareProduction/generic/etc_cust/sqwgen_GlobalVar.cfg vi /home/dbsqware/dbSQWare/SQWareCentral/etc_cust/sqwctl_LoopRetrieveAsynchronousFilesGlobal.cfg
Exemple de modification
Avec l'utilisateur root sur la machine de destination :
vi /home/dbsqware/dbSQWare/SQWareCentral/etc_cust/.my_SQWareRepository.cnf
Le fichier d'origine copié sur cette machine contient :
[client] host = srvdbsqware port = 3306 database = dbsqware_db user = dbsqware_user password = SurementPasC4?
On le met à jour avec :
[client] host = localhost port = 3306 database = dbsqware_db user = dbsqware_user password = EnF4itCsa!
Dans les dernières versions de dbSQWare (2024.06+) nous vous conseillons ici de remplacer le nom de la machine par localhost, c'est comme cela que l'OVF est livré.
Mise à jour de la licence et du référentiel
La licence dbSQWare est entre autre chose attachée au nom d'hôte de la machine, si vous renommez la machine de destination avec le nom d'hôte de la machine source les trois prochaines étapes sont facultatives.
Génération de la nouvelle licence (facultatif)
Avec l'utilisateur dbsqware sur la machine de destination :
cetc rm *.valid *.lic dbspatch _ _ ____ _____ __ __| | |__/ ___| / _ \ \ / /_ _ _ __ ___ / _` | '_ \___ \| | | \ \ /\ / / _` | '__/ _ \ | (_| | |_) |__) | |_| |\ V V / (_| | | | __/ \__,_|_.__/____/ \__\_\ \_/\_/ \__,_|_| \___| ################################################################### # SQWareCentral module of dbSQWare # Copyright (C) 2007-2025, dbSQWare (www.dbsqware.com) # dbSQWare is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # CGU/CGA for more details. [..résultats omis..] Do you want to patch SQWareRepository [y-Y-o-O-n-N]? Y [..résultats omis..] END_TRT Code: 0 --> Update_05_MenuX.sql executed successfully. END_TRT Code: 0 --> Update_06_MenuY.sql executed successfully. END_TRT Code: 0 --> Update_07_MenuY.sql executed successfully. END_TRT Code: 0 --> Update_08_MenuY.sql executed successfully. END_TRT Code: 0 --> Update_09_MenuY.sql executed successfully. Job Install SQWareRepository proceeded successfully Begining : 2025-02-10 17:28:04 End : 2025-02-10 17:29:21 Duration : 00:01:17
Obtention de la nouvelle licence (facultatif)
Si vous souhaitez ne pas récupérer le nom d'hôte de la machine source contactez le support (support@dbsqware.com) afin d'obtenir votre nouvelle licence.
Le support dbSQWare va avoir besoin du nouveau fichier .lic généré par la commande dbspatch.
Pour le trouver, avec l'utilisateur dbsqware sur la machine de destination :
dbsqware@srvdbsqware04:/home/dbsqware/dbSQWare/SQWareCentral/etc_cust $ ls -al *.lic -rw-r--r-- 1 dbsqware dba 159 Jun 13 20:48 yc2eaada-qaba-abas-rvdb-sqware04qc5e.lic
Installation de la nouvelle licence (facultatif)
Le support va vous renvoyer un fichier .lic qui devra remplacer celui qui se trouve dans /home/dbsqware/dbSQWare/SQWareCentral/etc_cust.
Vous pouvez :
- soit le copier avec un outil de type scp,
- soit le copier le contenu du fichier envoyé par le support et le coller en remplaçant tout le contenu du fichier d'origine.
Valider la licence et le référentiel (obligatoire)
Si vous avez choisi de récupérer le nom de la machine source il faut renommer la machine de destination avant de faire l'action suivante.
Ensuite pour valider la licence et le référentiel, avec l'utilisateur dbsqware sur la machine de destination :
dbspatch _ _ ____ _____ __ __| | |__/ ___| / _ \ \ / /_ _ _ __ ___ / _` | '_ \___ \| | | \ \ /\ / / _` | '__/ _ \ | (_| | |_) |__) | |_| |\ V V / (_| | | | __/ \__,_|_.__/____/ \__\_\ \_/\_/ \__,_|_| \___| ################################################################### # SQWareCentral module of dbSQWare # Copyright (C) 2007-2025, dbSQWare (www.dbsqware.com) # dbSQWare is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # CGU/CGA for more details. [..résultats omis..] Do you want to patch SQWareRepository [y-Y-o-O-n-N]? Y [..résultats omis..] LicType : Enterprise Edition LicDUID : xxXXxxx-xXXxx-XXXxxx-XXXxxxXxXx CheckNb: OK lic=2000 real=1981 CheckDate: OK lic=2026-01-31 real=2025-02-10 expire_days=355 Restart sqwScheduler to get new version ... [..résultats omis..] END_TRT Code: 0 --> Update_05_MenuX.sql executed successfully. END_TRT Code: 0 --> Update_06_MenuY.sql executed successfully. END_TRT Code: 0 --> Update_07_MenuY.sql executed successfully. END_TRT Code: 0 --> Update_08_MenuY.sql executed successfully. END_TRT Code: 0 --> Update_09_MenuY.sql executed successfully. Job Install SQWareRepository proceeded successfully Begining : 2025-02-10 17:28:04 End : 2025-02-10 17:29:21 Duration : 00:01:17
Vérification et rechargement des crontab
Pour chaque utilisateur il faut s'assurer que les cron soient conformes.
Pour dbsqware@vmsqwarebox
Avec l'utilisateur dbsqware sur la machine de destination :
diff CrontabRef_srvdbsqware CrontabRef mv CrontabRef_srvdbsqware CrontabRef vi CrontabRef crontab CrontabRef crontab -l
pour mysql@vmsqwarebox
Avec l'utilisateur dbsqware sur la machine de destination :
mys
Une fois connecté dans la session de l'utilisateur mysql :
diff CrontabRef_srvdbsqwar CrontabRef mv CrontabRef_srvdbsqware CrontabRef vi CrontabRef crontab CrontabRef crontab -l
Une fois que vous avez vérifié que la crontab vous convient, vous pouvez retourner sur la session de l'utilisateur dbsqware :
exit
pour oracle@vmsqwarebox
Avec l'utilisateur dbsqware sur la machine de destination :
ora
Une fois connecté dans la session de l'utilisateur oracle :
diff CrontabRef_srvdbsqware CrontabRef mv CrontabRef_srvdbsqware CrontabRef vi CrontabRef crontab CrontabRef crontab -l
Une fois que vous avez vérifier que la crontab vous convient, vous pouvez retourner sur la session de l'utilisateur dbsqware :
exit
pour mssql@vmsqwarebox
Avec l'utilisateur dbsqware sur la machine de destination :
msq
Une fois connecté dans la session de l'utilisateur msssql :
diff CrontabRef_srvdbsqware CrontabRef mv CrontabRef_srvdbsqware CrontabRef vi CrontabRef crontab CrontabRef crontab -l
Une fois que vous avez vérifier que la crontab vous convient, vous pouvez retourner sur la session de l'utilisateur dbsqware :
exit
Ajustements éventuels
Selon votre architecture et les paramétrages que vous souhaitez faire, il est possible que vous deviez modifier les fichiers suivants : avec l'utilisateur dbsqware sur la machine de destination :
- /etc/php.ini
- /etc/httpd/conf/httpd.conf
- /etc/httpd/conf.d/httpd-vhosts.conf
Mise en production de la nouvelle plateforme
Arrêt de l'ancienne machine
Tout d'abord nous vous conseillons d'éteindre la machine source, il faut la conserver le temps de valider que vous avez bien récupéré toutes vos données, et éventuellement de la conserver pour des questions d'archivage sur un temps plus long.
Reprise de l'IP sur la nouvelle machine
Vous devez mettre l'IP de la machine source à la nouvelle machine dbSQWare, essentiellement pour des raisons de gestion de flux et d'ACL réseaux.
L'ancienne machine avait comme adresse IP : 192.168.10.52/24.
Avec l'utilisateur root sur la machine de destination :
root@vmsqwarebox:/root # ip add 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:0c:29:4b:63:e9 brd ff:ff:ff:ff:ff:ff altname enp3s0 inet 192.168.10.51/24 brd 192.168.10.255 scope global noprefixroute ens160 valid_lft forever preferred_lft forever
Il faut changer l'IP de la carte ens160, avec l'utilisateur root de la machine de destination :
ip addr del 192.168.10.51/24 dev ens160 && ip addr add 192.168.10.52/24 dev ens160
Si vous êtes connecté à la machine via le réseau vous devrez vous reconnectez sur la nouvelle adresse.
Reprise des indicateurs
La nouvelle machine dbSQWare est maintenant en production.
Il convient de reprendre les indicateurs pour l'ensemble du parc comme dernière vérification que la migration est terminée.
Récupérer la commande de collecte des indicateurs
Avec l'utilisateur dbsqware sur la machine de destination :
dbsqware@srvdbsqware04:/home/dbsqware (SQWareCentral) $ # crontab -l | grep Indic -B1 # Check indicators 00 07 * * * bash -c '. ~/.profile 2>&1 >/dev/null;$gvsqw_SQWareCentralPath/bin/sqwctl_CheckIndicators.ksh 2>&1 >$HOME/admin/SQWareCentral/logs/sqwctl_CheckIndicators.log' # Gather indicators 00 03 * * * bash -c '. ~/.profile 2>&1 >/dev/null;$gvsqw_SQWareCentralPath/bin/sqwctl_GatherIndicators.ksh 2>&1 >$HOME/admin/SQWareCentral/logs/sqwctl_GatherIndicators.log' # Retry gather indicators if not exists 00 09,12,17 * * * bash -c '. ~/.profile 2>&1 >/dev/null;$gvsqw_SQWareCentralPath/bin/sqwctl_GatherIndicators.ksh -Repind -NoMail 2>&1 >$HOME/admin/SQWareCentral/logs/sqwctl_GatherIndicators_Repind.log'
Vous devez copier partiellement la ligne qui se trouve en dessous de # Gather indicators : $gvsqw_SQWareCentralPath/bin/sqwctl_GatherIndicators.ksh.
Lancer la commande de GatherIndicators
On va lancer la commande pour collecter les indicateurs (# Gather indicators), avec l'utilisateur dbsqware sur la machine de destination :
dbsqware@srvdbsqware04:/home/dbsqware (SQWareCentral) $ # $gvsqw_SQWareCentralPath/bin/sqwctl_GatherIndicators.ksh Sourcing sqwctl_Global.lib v2025.00 SQWareCentral (dbSQWare) ... eval global vars: gvsqw_DistSQWareProdUser="$gvsqw_UserUniqueCent@$gvsqw_Hostname" => gvsqw_DistSQWareProdUser=dbsqware@srvdbsqware04 gvsqw_RsyncDefaultUser="$gvsqw_UserExec@RsyncHost" => gvsqw_RsyncDefaultUser=dbsqware@RsyncHost Log generated in /home/dbsqware/admin/SQWareCentral/logs/GatherIndicators/GatherIndicators_20250210_165737_3581809.log on srvdbsqware04 ... Run Gather indicators for all rdbms '' : 2025-02-10 16:57:36 __________________________________________________________________ Program informations SqwVersion=2025.00 / 2025.00 Copyright 2007-2025, dbSQWare (www.dbsqware.com) Linux srvdbsqware04 5.14.0-427.20.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Jun 7 14:51:39 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux gvsqw_GenPath=/home/dbsqware/dbSQWare/SQWareCentral/bin Path=/home/dbsqware/dbSQWare/SQWareCentral/bin ./sqwctl_GatherIndicators.ksh dbsqware@srvdbsqware04 sqwctl_GatherIn,dbsqware /home/dbsqware/dbSQWare/SQWareCentral/bin/sqwctl_GatherIndicators.ksh `-pstree -aul 3581809 __________________________________________________________________ Generate sql from /home/dbsqware/dbSQWare/SQWareCentral/action/generic/lst/sqwgen_GenTypeInstance.sql ... Sql to execute: select distinct ref.rdbmstype, 'On' [..résultats omis..] END_TRT Code: 0 --> 2025-02-10 12:09:03 Gather indicators for all rdbms Summary of returns: END_TRT Code: 0 --> Exec SQL executed successfully. END_TRT Code: 0 --> 2025-02-10 12:09:03 Gather indicators for all rdbms Job Gather indicators for all rdbms proceeded successfully Begining : 2025-02-10 12:00:02 End : 2025-02-10 12:09:03 Duration : 00:09:01
Enjoy !!