Rubrique précédente: Application à X niveaux avec réplication maître-maître multinoeud (prévue pour l'équilibrage de charge)

Rubrique suivante: PGSQL64 - Appliance de base de données PostgreSQL


Application à X niveaux s'exécutant sur différentes infrastructures (prévue pour l'équilibrage de charge et le basculement)

Le diagramme suivant affiche une utilisation standard de l'appliance MYSQLR64 dans une application Web s'exécutant dans plusieurs installations. Avec cette configuration, vous pouvez avoir plusieurs applications identiques s'exécutant sur différentes installations dont la base de données est répliquée sur toutes les applications dans une configuration maître-maître. Cette configuration est utile dans deux cas :

Application maître

Application à X niveaux s'exécutant sur différentes infrastructures (prévue pour l'équilibrage de charge et le basculement)

Application esclave

Application esclave

Appliances en cours d'utilisation :

La requête client arrive sur la passerelle utilisateur. Cette dernière envoie les requêtes à l'équilibreur de charge web_lb, qui les transmet à un des serveurs Web web1 et web2. Les serveurs Web accèdent à la base de données maître. L'appliance maître se connecte à l'application (esclave) distante. La seule différence étant le server_id de l'esclave et la configuration réseau) pour répliquer la base de données. L'application distante se connecte à l'appliance maître via la passerelle vpn qui est configurée pour n'autoriser la connexion que de la passerelle vpn de l'application distante. Les appliances maître et esclave des deux applications s'exécutent dans une configuration maître-maître afin que leurs données soient toujours identiques.

Exemple de configuration de propriétés (les propriétés qui ne figurent pas dans les tableaux ci-dessous doivent être définies sur leurs valeurs par défaut) :

L'accès Web au maître et à l'esclave est disponible via la passerelle admin sur le port 8080.

Maître

Nom de propriété

Valeur

Remarques

auto_create

1

Crée la base de données si les volumes sont vides.

error_log_filename

master-db.error

Nom de fichier journal d'erreurs qui doit être stocké sur le volume de données des journaux.

error_log_level

error

Niveau de journalisation des erreurs

server_id

1

Serveur maître (la valeur ne doit pas forcément être 1, elle doit cependant être différente de celle de server_id sur l'esclave).

rpl_mode

Maître

Ecrit des journaux binaires pour effectuer la réplication.

VPN maître

Nom de propriété

Valeur

Remarques

mode

serveur

Fonctionne en tant que serveur.

tunnel

Certificats

utilisation des certificats SSL.

tcp_ports

3306,22

Autorise les ports nécessaires à MYSQLR64.

ip_addr

master_vpn_ip

Adresse IP du VPN dans l'application maître.

remote_host

slave_vpn_ip

Adresse IP du VPN dans l'application esclave.

Esclave

Nom de propriété

Valeur

Remarques

auto_create

1

Crée la base de données si les volumes sont vides.

error_log_filename

slave-db.error

Nom de fichier journal d'erreurs qui doit être stocké sur le volume de données des journaux.

error_log_level

error

Niveau de journalisation des erreurs

server_id

2

Serveur esclave (la valeur ne doit pas forcément être 2, elle doit cependant être différente de celle de server_id sur le maître).

rpl_mode

Esclave

Se connecte au maître.

VPN esclave

Nom de propriété

Valeur

Remarques

mode

client

Fonctionne en tant que client.

tunnel

Certificats

Utilisation des certificats SSL.

auth_path

"client1"

Chemin d'accès au fichier de certificat SSL.

ip_addr

slave_vpn_ip

Adresse IP du VPN dans l'application esclave.

remote_host

master_vpn_ip

Adresse IP du VPN dans l'application maître.

L'application distante est une copie exacte. La seule différence est la configuration réseau de l'utilisateur, de l'administrateur et des appliances VPN. Les connexions entre l'appliance VPN et le maître=/=esclave, et le server_id de l'appliance maître=/=esclave (doit être unique).

Migration de MYSQLR vers MYSQLR64 (et inversement)

Pour effectuer une migration de MYSQLR vers MYSQLR64 (et vice versa), vous ne devez pas uniquement utiliser les volumes de l'appliance 32 bits sur l'appliance 64 bits (ou inversement) car les données seront alors corrompues. Pour ce faire, nous vous recommandons de vider la base de données sur l'ancienne appliance, en transférant le fichier vidé vers la nouvelle appliance, puis en important la base de données dans la nouvelle appliance.

Vous pouvez utiliser la même procédure pour migrer une base de données à partir d'une appliance de base de données plus ancienne (MYSQL, MYSQL5, MYSQL64) ou une base de données MYSQL ne s'exécutant pas sur une appliance CA AppLogic.

Pour migrer la base de données :

Commentaires

Mise en garde :

Important : Lors de la création d'utilisateurs pour la base de données, vérifiez que tous les utilisateurs sont créés sans restriction sur l'hôte à partir duquel ils se connectent. Par exemple :

mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
    ->     IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
Logiciels Open Source tiers utilisés dans l'appliance

MYSQLR64 utilise les packages Open Source tiers suivants en plus des packages Open Source tiers utilisés par sa classe de base LUX64.

Logiciel

Version

Modifié

Licence

Commentaires

aspell

0.60.3-7.1

Non

LGPLv2.1

N/D

aspell-en

6.0-2.1

Non

LGPLv2.1

N/D

curl

7.15.5-2

Non

MIT

N/D

device-mapper-event

1.02.32-1

Non

GPLv2

N/D

freetype

1.02.32-1

Non

FTL

N/D

gmp

4.1.4-10.el5

Non

LGPLV2.1

N/D

libidn

0.6.5-1.1

Non

LGPLv2.1

N/D

libjpeg

6b-37

Non

Distribuable

N/D

libpng

1.2.10-7.0.2

Non

zlib/libpng

N/D

lvm2

2.6.26-2.1.2.8

Non

GPLv2.0

N/D

MySQL

5.0.77-3.el5

Non

GPL

N/D

mysql-server

5.0.77-3.el5

Non

GPLv2

N/D

perl-DBD-MySQL

3.0007-2.el5

Non

Artistic

N/D

perl-DBI

1.52-2.el5

Non

Artistic

N/D

php-cli

5.1.6-23.el5

Non

PHPv3.01

N/D

php-common

5.1.6-23.el5

Non

PHPv3.01

N/D

php-gd

5.1.6-23.el5

Non

PHPv3.01

N/D

php-mbstring

5.1.6-23.el5

Non

PHPv3.01

N/D

php-mysql

5.1.6-23.el5

Non

PHPv3.01

N/D

php-pdo

5.1.6-23.el5

Non

PHPv3.01

N/D

rsync

2.6.8-3.1

Non

GPLv2

N/D

samba-client

3.0.28-1.el5_2.1

Non

GPLv2

N/D

samba-common

3.0.28-1.el5_2.1

Non

GPLv2

N/D

sudo

1.6.8p12-10

Non

ISC

N/D

lighttpd

1.4.18-1.el5.rf

Non

BSD

N/D

perl-IPC-Run

0.84-1.el5.rf

Non

Artistic

N/D

perl-Time-Duration

1.06-1.el5.rf

Non

Artistic

N/D

phpMyAdmin

2.11.10-1

Non

GPLv2

N/D

Dépannage MYSQLR

L'appliance MYSQLR se fige au redémarrage

A partir de MYSQLR 1.6.2, vous pouvez définir/modifier un mot de passe pour le compte root de base de données. Toutefois, l'appliance MSYQLR dispose de quelques comptes root avec des noms d'hôte différents. Lorsque vous définissez/modifier un mot de passe, utilisez toujours le compte root@%. Le compte root@% est le compte auprès duquel s'authentifient les appliances connectées au terminal in de MYSQLR. Les autres comptes root ne sont utilisés que par des utilisateurs locaux. Un mot de passe ne doit jamais être défini pour ces derniers, sinon l'appliance MYSQLR ne parvient pas à démarrer.

Remarque : Si vous ne définissez pas de mot de passe pour le compte root@localhost, la sécurité n'est pas compromise car ce compte peut uniquement être utilisé par des utilisateurs locaux sur l'appliance et quiconque qui a accès à l'appliance peut modifier le mot de passe.

Récupérer une appliance MYSQLR qui ne parvient plus à démarrer à la suite de la modification du mot de passe root de la base de données

Pour récupérer une appliance qui ne parvient plus à démarrer parce que le mot de passe root de la base de données a été modifié, procédez comme suit :

  1. Démarrez l'appliance ou l'application en mode de débogage.
    Commande de démarrage d'appliance
    comp start main.MYSQLR --debug 
    
    Commande de démarrage d'application
    app start --debug 
    

    Vous devriez pouvoir vous connecter à l'appliance quelques secondes après l'avoir démarrée. Il n'est pas nécessaire d'attendre que le délai d'expiration de l'appliance soit atteint.

  2. Connectez-vous via SSH à l'appliance et exécutez les commandes suivantes :
    mysql -p -e "update mysql.user set Password='' where User='root'" 
    mysqladmin -p flush-privileges 
    mysql -e 'update mysql.user set password=PASSWORD("NEWPASSWORD") where User="root" and Host="%"' 
    mysqladmin flush-privileges
    
  3. Redémarrez l'appliance pour vérifier qu'elle démarre et que les connexions MySQL sur le terminal in pour l'utilisateur root requièrent un mot de passe.