FAQ:UpgradeVMCentrale

De WikiFr_dbSQWare
Aller à la navigation Aller à la recherche

Généralités


Warning:
Avant toutes choses, nous vous conseillons de prendre contact avec le support avant de vous lancer dans ces manipulations !.


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


Note:
Dans ce MODOP nous partons de l'hypothèse que la machine source s'appelle srvdbsqware et la machine cible vmsqwarebox !.


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 que 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é copier 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 cron

Avec l'utilisateurs root sur la machine source :

#root@srvdbsqware
for lvsqw_User in `echo 'dbsqware mssql mysql oracle postgres sybase'`
do
su - $lvsqw_User -c "echo '###########################';echo '$lvsqw_User';crontab -l> \$HOME/CrontabRef_srvdbsqware01;cat \$HOME/CrontabRef_srvdbsqware01"
done

Première synchronisation des répertoires


Warning:
Si jamais vous n'utilisez pas pour la machine source ET la machine de destination, ou si vous avez personnalisé l'environnement il faudra vérifier et adapter les commandes qui suivent.


Information:
Les délais de synchronisation peuvent varier en fonction de votre réseau, de la quantité d'hôtes dans votre repository, et des fonctionnalités utilisées comme les rapports AWR ou les slowquery ....

Première synchro 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/.


Note:
En fonction de vos configuration certains fichiers et, ou dossiers peuvent ne pas exister, il faut donc relancer la ligne de commande correspondante et supprimer l'argument en question.


Exemple d'erreurs

[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] 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

Arrêt des cron de l'ancienne VM

Synchronisation complète et finale

Ajustement des paramètres de la nouvelle plateforme

Mise en production de la nouvelle plateforme

Arrêt ancienne machine

reprise de l'IP sur la nouvelle machine

Reprise des indicateurs