Rubrique précédente: MYSQL5 - Appliance de base de données MySQLRubrique suivante: Appliance de base de données Oracle


MYSQLR, MYSQLR64 - Appliance de base de données MySQL prévue pour la réplication

Voir la vidéo

MYSQLR64 : Appliances de base de données MySQL prévues pour la réplication

Aperçu rapide

Catalogue

System (Système)

Catégorie

Appliances de base de données

Volumes d'utilisateur

Oui

Min. mémoire

160 Mo

SE

Linux

Questions/commentaires

Poser une question sur le forum

Présentation fonctionnelle

MYSQLR64 est une appliance de base de données basée sur le moteur de base de données MySQL (http://www.mysql.org). Elle permet d'ajouter facilement une base de données quelle que soit l'application. Vous pouvez également utiliser les appliances dans des scénarios de réplication MYSQL complexes. Les appliances sont basées sur MYSQL5 (CentOS 6.3/MySQL 5), mais gèrent également la réplication de base de données.

La réplication de base de données permet la réplication de données d'un serveur de base de données MySQL (maître) sur un ou plusieurs serveurs de base de données MySQL (esclaves). Les appliances MYSQLR64 peuvent aussi bien être configurées pour la réplication maître-esclave que pour la réplication maître-maître avec plusieurs maîtres.

La configuration de la réplication, de la gestion et de la surveillance s'effectue via une interface Web. L'interface Web fournit une méthode simple pour démarrer la réplication avec une durée d'indisponibilité sur le maître proche de zéro. Elle permet également de réparer une réplication en cas de problème. Par ailleurs, elle peut servir à copier des bases de données à partir d'appliances de base de données plus anciennes telles que MYSQL et MYSQL5. MYSQLR64 fournit également une méthode (basée sur phpMyAdmin) permettant de gérer et de parcourir facilement votre base de données.

La réplication est utile dans plusieurs cas :

Dans sa configuration par défaut, MYSQLR64 agit exactement comme l'appliance MYSQL5 avec une interface Web pour la gestion. Pour l'utiliser dans des scénarios de réplication, vous avez besoin d'au moins deux appliances de MYSQLR64 avec une configuration appropriée (voir Utilisation standard).

MYSQLR64 stocke la base de données sur un volume défini par l'application que vous pouvez configurer sur chaque instance MYSQLR64. MYSQLR64 crée automatiquement une base de données vide lorsqu'elle démarre sur un volume vide.

Nom

Dernière version

SE

!MySQL

MYSQLR

3.0.7-1

CentOS 6.3

5.5.28

MYSQLR64

3.0.7-1

CentOS 6.3 (64 bits)

5.5.28

Important : Il est déconseillé de mélanger les appliances MYSQLR 32 et 64 bits lors de l'utilisation de la réplication lorsque les fichiers de base de données sont copiés en l'état du maître vers l'esclave. De même, les volumes de données de la version 32 bits de l'appliance ne devraient pas être utilisés avec une version 64 bits de la même appliance (et inversement). Pour migrer une base de données entre les versions MYSQLR 32 bits et 64 bits, videz les bases de données d'un hôte et importez-les sur l'autre comme dans la procédure décrite dans la section Migration de MYSQLR vers MYSQLR64 (et inversement). Pour accéder à cette section, cliquez ici.

Ressources

Ressource

Minimum

Maximum

Valeur par défaut

UC

0.10

16

0.40

Mémoire

160 Mo

32 Go

512 Mo

Bande passante

1 Mbit/s

2 Gbits/s

250 Mbits/s

Terminaux

Nom

Dir.

Protocole

Description

in

in

MYSQL

Reçoit les requêtes de base de données MySQL.

rin

in

Indifférent

Les appliances MYSQLR64 esclaves qui utilisent l'appliance en tant que maître se connectent à ce terminal.

ui

in

HTTP

Fournit un accès à l'interface Web de MYSQLR64.

log

sortie

CIFS

Connectez-vous à une appliance NAS pour le stockage des journaux d'erreurs. Si ce terminal n'est pas utilisé, il peut rester déconnecté.

rout

sortie

Indifférent

Se connecte à un serveur MYSQLR64 maître. Ce terminal peut rester déconnecté et ne devrait être utilisé que dans des scénarios de réplication.

MON

sortie

CCE

Envoie des statistiques de performances et d'utilisation des ressources. Ce terminal peut rester déconnecté.

L'interface par défaut est activée. Elle est destinée au diagnostic et au dépannage (via SSH). Les versions futures de cette appliance peuvent désactiver l'accès SSH.

Important : Les terminaux rin et rout sont utilisés aussi bien pour les données SSH (tcp 22) que MYSQL (tcp 3306). Lorsque les passerelles / VPN sont utilisées pour connecter ces terminaux, les pare-feux doivent être configurés pour autoriser les deux ports.

Volumes d'utilisateur

Volume

Description

données

Volume utilisé pour le stockage des données de la base de données. Ce volume est obligatoire.

binlogs

Volume utilisé pour les journaux binaires lors d'une exécution en mode réplication (maître ou esclave). Ce volume n'est pas obligatoire, mais si vous utilisez l'appliance en mode réplication (définissez rpl_mode sur une valeur différente de none) et si vous ne fournissez pas e volume binlogs, l'appliance ne démarre pas.

Le volume de données peut éventuellement contenir un fichier my.cnf dans son répertoire supérieur, qui inclut des options de configuration de MYSQL. Pour plus d'informations, reportez-vous à la section Configuration personnalisée. Cette fonctionnalité est disponible dans MYSQLR64 1.6.1 ou version ultérieure.

Important :

Propriétés

Nom de propriété

Type

Description

auto_create

Nombre entier

Indique si la base de données doit être créée lorsqu'elle n'existe pas. Valeurs possibles : 1 pour la créer et 0 pour empêcher sa création automatique (pour éviter tout écrasement accidentel en cas de volumes endommagés). Si cette propriété est définie sur 0 et qu'aucune base de données n'existe sur le volume de données, l'appliance démarre en mode maintenance. (L'appliance démarre correctement, mais le démon MySQL n'est pas démarré pour que l'utilisateur puisse identifier le problème). La valeur par défaut est 1.

error_log_filename

Chaîne

Nom du fichier journal d'erreurs, associé au système de fichiers journaux (par exemple, /mysql_logs/my.log). Les répertoires sont automatiquement créés dans le chemin d'accès. Si aucun nom n'est spécifié, le journal d'erreurs est écrit sur le volume de données (/mnt/data/error.log). Valeur par défaut : (vide).

error_log_level

Chaîne

Niveau de journalisation des erreurs. Valeurs possibles : error, pour ne consigner que les erreurs, et warn, pour consigner les avertissements et les erreurs. Cette propriété n'est pas sensible à la casse. Valeur par défaut : error

timezone

Chaîne

Spécifie le fuseau horaire utilisé dans l'appliance. Si cette propriété est vide, le fuseau horaire reste inchangé. Une liste des fuseaux horaires pris en charge est disponible ici.

Important :

Propriétés avancées (utilisées dans les scénarios de réplication)

Nom de propriété

Type

Description

server_id

Nombre entier

ID du serveur. Les valeurs possibles sont comprises entre 1 et 10. Cela permet de spécifier l'ID du serveur lors de la réplication. Veillez à avoir configuré des ID uniques pour tous vos serveurs qui font partie de la réplication. Valeur par défaut : 1

rpl_mode

Chaîne

Mode de réplication. Les valeurs possibles sont none (pas de réplication), master, slave et master_and_slave (pour des scénarios de réplication multi-maîtres où un serveur est à la fois un maître et un esclave). Valeur par défaut : none

web_pwd

Chaîne

Mot de passe pour l'authentification à l'interface Web. Ce paramètre est facultatif. S'il est défini, le serveur HTTP de l'appliance est démarré et l'interface Web est présente sur le terminal ui et l'interface par défaut à partir desquels elle est accessible via l'option Connexion (web) dans l'éditeur CA AppLogic®. Valeur par défaut : (vide).

Configuration personnalisée

Cette fonctionnalité est disponible dans MYSQLR64 1.6.1 ou version ultérieure.

MYSQLR64 permet d'utiliser un fichier de configuration MySQL personnalisé qui peut fournir des options de configuration supplémentaires ou remplacer la configuration existante spécifiée dans /etc/my.cnf.

Pour utiliser une configuration personnalisée, créez un fichier nommé my.cnf et placez-le dans le répertoire supérieur du volume de données. Le format du fichier doit respecter la syntaxe du fichier d'options MySQL décrite dans la documentation de MySQL.

Par exemple, vous pouvez utiliser le paramétrage suivant pour optimiser les performances de MYSQLR64 en cas d'utilisation d'InnoDB (la configuration MYSQLR64 par défaut est optimisée pour MyISAM).. Cet exemple repose sur l'utilisation de 512 Mo de mémoire (valeur par défaut pour MYSQLR64).

[mysqld]
# Réduisez les tampons MyISAM
key_buffer = 512 Ko
myisam_sort_buffer_size = 512 Ko

# Définissez InnoDB comme le moteur de stockage par défaut (facultatif)
default-storage-engine = INNODB

# Définissez la taille de tampon d'InnoDB
innodb_buffer_pool_size=350M
innodb_log_file_size=128M
innodb_log_buffer_size=4M
innodb_thread_concurrency=8

# Si vous n'avez pas trop de tables, utilisez cette option. De cette manière, vous pouvez éviter que la taille de l'espace des tables augmente de manière incontrôlée, un processus que vous ne pouvez pas annuler.
innodb_file_per_table=1

Important : Lorsqu'il est utilisé en mode réplication, MYSQLR64 synchronise également le fichier my.cnf sur le volume de données lorsque vous corrigez/initialisez la réplication. De cette manière, la configuration esclave et maître sont identiques.

Interface Web

MYSQLR64 fournit une interface Web accessible sur le terminal ui et l'interface par défaut via l'option Connexion (web) dans l'éditeur CA AppLogic®.. Une authentification HTTP est requise pour utiliser l'interface Web. Laissez le nom d'utilisateur vide et utilisez la valeur web_pwd comme mot de passe. L'interface fournit les fonctionnalités suivantes :

Ajout de réplications maître-esclave à des appliances MYSQLR64

CA AppLogic® permet d'ajouter des réplications maître-esclave à des appliances MYSQLR64 existantes sans perdre la moindre donnée.

Pour ajouter des réplications maître-esclave à des appliances MYSQLR64 :

  1. Définissez rpl_mode sur master sur l'appliance existante.
  2. Ajoutez une nouvelle appliance MYSQLR64 à votre application avec un volume de données vide. Connectez son terminal rout au terminal rin de l'appliance actuelle.
  3. (Facultatif) Si vous envisagez de l'utiliser dans une réplication maître-maître, connectez le terminal supprimé de l'appliance actuelle au terminal rin de la nouvelle appliance.
  4. Redémarrez l'application.
  5. Connectez-vous à l'interface Web de la nouvelle appliance et sélectionnez l'option initiate/fix replication sous l'onglet Manage Replication. La journalisation prend du temps selon la taille des données sur le maître. Si vous utilisez INSSLR pour accéder à MYSQLR64, veillez à définir la propriété de délai d'expiration sur une valeur élevée (36000) pour éviter toute expiration. Vérifiez l'absence de délais d'expiration dans les proxys côté client (il est préférable d'éviter l'utilisation de proxy).
  6. Une fois la réplication lancée, connectez-vous à l'interface Web des deux appliances MYSQLR64 et vérifiez l'état de la réplication. La réplication doit normalement s'exécuter dans les 5 minutes sur les deux appliances.
Ajout d'appliances MYSQLR64 à des réplications maître-esclave

CA AppLogic® permet d'ajouter de nouvelles appliances MYSQLR64 à des réplications maîtres-esclave existantes sans perdre la moindre donnée.

Pour ajouter des appliances MYSQLR64 à des réplications maître-esclave :

  1. Ajoutez une nouvelle appliance MYSQLR64 à votre application avec un volume de données vide. Par exemple, dbN, en supposant que vous avez déjà N-1 appliances MYSQLR64 (3 <= N <= 10) et que le terminal rout de chaque appliance est connecté au terminal rin de l'appliance suivante dans une configuration circulaire (db1 rout est connecté à db2 rin, etc.).
  2. Définissez rpl_mode sur master_and_slave de dbN.
  3. Connectez le terminal rout de l'appliance dbN-1 au terminal rin de l'appliance dbN.
  4. Connectez le terminal rout de l'appliance dbN au terminal rin de l'appliance db1.
  5. Redémarrez l'application pour que les modifications soient appliquées. Après le redémarrage, la réplication n'est pas synchronisée tant que la procédure n'est pas terminée. Il se peut que les données écrites dans une appliance ne soient pas répliquées sur toutes les autres appliances au cours de la procédure.
  6. Connectez-vous à l'interface Web de l'appliance dbN et sélectionnez l'option initiate/fix replication sous l'onglet Manage Replication. La journalisation prend du temps selon la taille des données sur le maître. Si vous utilisez INSSLR pour accéder à MYSQLR64, veillez à définir la propriété de délai d'expiration sur une valeur élevée (36000) pour éviter toute expiration. Vérifiez également l'absence de délais d'expiration dans les proxys côté client (il est préférable d'éviter l'utilisation de proxy).
  7. Une fois la réplication lancée, connectez-vous à l'interface Web de dbN-1 et sélectionnez l'option reset master log position. La journalisation oblige l'application à lire les journaux binaires de dbN-1 et de dbN depuis le début.
  8. Connectez-vous à l'interface Web de toutes les appliances MYSQLR64 et vérifiez l'état de la réplication. Celle-ci doit normalement s'exécuter sur toutes les appliances dans les 5 minutes.
Réparation d'une réplication dans des configurations maître-esclave

CA AppLogic® permet de réparer une réplication dans une configuration maître-esclave sans perdre la moindre donnée.

Pour réparer une réplication dans des configurations maître-esclave :

  1. Connectez-vous à l'interface Web de l'esclave et sélectionnez l'option initiate/fix replication. La journalisation prend du temps selon la taille des données sur le maître. Pendant l'opération, le service MySQL sur l'esclave s'arrête. Aucun temps d'indisponibilité n'est introduit sur le maître. Cette opération revient à ajouter une nouvelle appliance à une appliance MYSQLR64 existante. Si vous utilisez INSSLR pour accéder à MYSQLR64, vérifiez que la propriété de délai d'expiration est définie sur une valeur élevée (36000) pour éviter toute expiration. Vérifiez également l'absence de délais d'expiration dans les proxys côté client (il est préférable d'éviter l'utilisation de proxy).
  2. Une fois la réplication lancée, connectez-vous à l'interface Web des appliances MYSQLR64 esclaves et vérifiez l'état de la réplication. Celle-ci doit normalement s'exécuter dans les 5 minutes.
Réparation d'une réplication dans des configurations maître-maître

CA AppLogic® permet de réparer une réplication dans une configuration maître-maître sans perdre la moindre donnée.

Pour réparer une réplication dans des configurations maître-maître :

  1. Connectez-vous à l'interface Web de l'appliance qui signale que la réplication a échoué et sélectionnez l'option initiate/fix replication. La journalisation prend du temps selon la taille de la base de données sur le maître. Pendant l'opération, le service MySQL sur l'appliance s'arrête. Aucun temps d'indisponibilité n'est introduit sur le maître. La base de données n'est pas synchronisée avec l'ensemble des maîtres tant que la réparation n'est pas terminée. Il se peut que les mises à jour de base de données ne soient pas répliquées sur toutes les autres appliances MYSQLR64 au cours de la réparation.

    Important : Toutes les données sur cette appliance sont initialisées à partir du maître. Si des mises à jour sont apportées à la base de données sur l'appliance actuelle pendant l'interruption de la réplication, elles sont perdues. Le cas échéant, résolvez les conflits manuellement.

  2. Connectez-vous à l'interface Web de l'appliance dont le terminal rout est connecté à l'appliance sur laquelle vous exécutez la réparation de la réplication. Sélectionnez l'option reset master log position (réinitialiser l'emplacement du journal principal) pour que l'application lise les journaux binaires de l'appliance réparée depuis le début. Si vous utilisez INSSLR pour accéder à MYSQLR64, vérifiez que la propriété de délai d'expiration est définie sur une valeur élevée (36000) pour éviter toute expiration. Vérifiez également l'absence de délais d'expiration dans les proxys côté client (il est préférable d'éviter l'utilisation de proxy).
  3. Connectez-vous à l'interface Web de toutes les appliances MYSQLR64 et vérifiez l'état de la réplication. Celle-ci doit normalement s'exécuter dans les 5 minutes sur toutes les appliances.
Surveillance de la réplication

Une tâche cron surveille la réplication entre les appliances MYSQLR64. Si la réplication est activée, la tâche cron s'exécute toutes les deux minutes et envoie des alertes au tableau de bord de grille dans les cas suivants :

Dans ces cas, l'utilisateur doit résoudre le problème manuellement.

Si la réplication échoue, vous pouvez utiliser l'interface Web pour la corriger comme le décrit la section ci-dessus.

Compteurs personnalisés

L'appliance MYSQLR64 signale les compteurs personnalisés suivants via le terminal mon.

Les compteurs suivants appartiennent au groupe de compteurs MySql :

Nom du compteur

Description

Aborted Clients

Nombre de clients interrompus par le serveur

Aborted Connections

Nombre de connexions interrompues par le serveur

Bytes Received

Nombre d'octets reçus

Bytes Sent

Nombre d'octets envoyés

Total Connections

Nombre de connexions

Questions

Nombre total de questions

Slow Queries

Nombre de requêtes lentes

Threads Created

Nombre de threads créés

Threads Connected

Nombre de threads connectés

Threads Running

Nombre de threads en cours d'exécution

Max Used Connections

Nombre maximum de connexions utilisées

Open Files

Nombre de fichiers ouverts

Admin Commands

Nombre de commandes d'administration

Alter Table Commands

Nombre de commandes de modification de table

Analyze Commands

Nombre de commandes d'analyse

Change DB Commands

Nombre de commandes de modification de base de données

Change Master Commands

Nombre de commandes de modification de maître

Check Commands

Nombre de commandes de contrôle

Commit Commands

Nombre de commandes de validation

Create DB Commands

Nombre de commandes de création de base de données

Create Function Commands

Nombre de commandes de création de fonction

Create Index Commands

Nombre de commandes de création d'index

Create Table Commands

Nombre de commandes de création de table

Delete Commands

Nombre de commandes de suppression

Drop DB Commands

Nombre de commandes de suppression de base de données

Drop Function Commands

Nombre de commandes de suppression de fonction

Drop Index Commands

Nombre de commandes de suppression d'index

Drop Table Commands

Nombre de commandes de suppression de table

Flush Commands

Nombre de commandes de vidage

Grant Commands

Nombre de commandes d'attribution

Insert Commands

Nombre de commandes d'insertion

Insert Select Commands

Nombre de commandes d'insertion de la sélection

Kill Commands

Nombre de commandes d'arrêt

Load Commands

Nombre de commandes de chargement

Lock Tables Commands

Nombre de commandes de verrouillage de table

Optimize Commands

Nombre de commandes d'optimisation

Purge Commands

Nombre de commandes de purge

Rename Table Commands

Nombre de commandes de renommage de table

Repair Commands

Nombre de commandes de réparation

Replace Commands

Nombre de commandes de remplacement

Replace Select Commands

Nombre de commandes de remplacement de la sélection

Reset Commands

Nombre de commandes de réinitialisation

Revoke Commands

Nombre de commandes de retrait

Rollback Commands

Nombre de commandes d'annulation

Select Commands

Nombre de commandes de sélection

Set Option Commands

Nombre de commandes de définition d'option

Truncate Commands

Nombre de commandes de troncation

Unlock Tables Commands

Nombre de commandes de déverrouillage de tables

Update Commands

Nombre de commandes de mise à jour

Messages d'erreur

Les messages suivants peuvent s'afficher dans le fichier journal de l'appliance ou dans le journal système du contrôleur de grille lorsque l'appliance ne parvient pas à démarrer :

Message d'erreur

Description

Echec de la définition du fuseau horaire.

La définition du fuseau horaire de l'appliance, tel que configuré par la propriété Fuseau horaire, a échoué.

L'appliance est en cours d'exécution en mode Réplication [$rpl_mode], mais le volume binlogs est manquant.

L'appliance est configurée pour s'exécuter en tant que maître, esclave ou maître et esclave, mais aucun volume binlogs n'a été indiqué.

L'appliance est exécutée en mode Réplication [$rpl_mode], mais le terminal rout n'est pas connecté.

L'appliance est configurée pour s'exécuter en tant qu'esclave ou maître et esclave, mais le terminal rout n'est pas connecté.

Le terminal rout est connecté, mais la propriété [rpl_mode] est définie sur none. Configurez la réplication via la propriété [rpl_mode] ou déconnectez le terminal rout

Le terminal rout est connecté, mais la propriété [rpl_mode] est définie sur none. Configurez la réplication via la propriété [rpl_mode] ou déconnectez le terminal rout.

Echec du démarrage de mysql car error_log_filename est défini et le terminal de journalisation n'est pas connecté.

La propriété error_log_filename est configurée mais le terminal de journal n'est pas connecté.

Echec du montage du partage via le terminal de journalisation.

L'appliance a été configurée pour écrire des journaux dans le terminal de journal, le partage n'a pas pu être monté sur le terminal de journal.

Le partage n'est pas accessible en écriture via le terminal de journalisation.

Le partage sur le terminal de journalisation n'est pas accessible en écriture.

Echec de la création du répertoire de journaux [$logdir] sur le terminal de journalisation

Echec de la création du répertoire de journaux [$logdir] sur le terminal de journalisation

Le répertoire de journaux [$logdir] n'est pas accessible en écriture.

Le répertoire de journal [$logdir] n'est pas accessible en écriture sur le terminal de journal.

Le fichier journal [$error_log] n'est pas accessible en écriture.

Le fichier journal [$error_log] n'est pas accessible en écriture sur le terminal de journal.

Echec de la création de la base de données

L'appliance a été démarrée sans base de données et n'est pas parvenue à installer les bases de données MySQL.

Echec de la configuration de la réplication

L'appliance n'est pas parvenue à configurer la réplication.

Echec du démarrage de MySQL

Le démon MySQL n'a pas pu être démarré.

Autorisations insuffisantes au niveau de la base de données MySQL

Les autorisations pour 'root'@'%' sont insuffisantes ou si le mode de réplication est utilisé, 'replication_user'@'%' ne dispose pas des autorisations suffisantes pour exécuter la réplication de MySQL.

Echec du démarrage de l'interface Web

Echec du démarrage de l'interface Web

La taille du volume de données doit être d'au moins 100 Mo.

La taille du volume de données devrait être supérieure à 100 mégaoctets. Reportez-vous aux remarques relatives aux exigences de volume.

Les messages d'erreur suivants peuvent également s'afficher dans le tableau de bord de la grille lorsque l'appliance est en cours d'exécution :

Message d'erreur

Description

L'espace libre sur le volume de données sera bientôt insuffisant. Veuillez vérifier.

L'espace disponible sur le volume de données est inférieur à 20 %.

La réplication du serveur maître n'est pas en cours d'exécution, veuillez vérifier.

La réplication du serveur maître ne s'exécute pas..

La réplication du serveur esclave est en retard par rapport au serveur maître. Veuillez vérifier.

La réplication de l'esclave est trop en retard par rapport au maître. Veuillez vérifier.

L'espace libre sur le volume binlogs sera bientôt insuffisant.

L'espace disponible sur le volume binlogs est inférieur à 20 %.

Application simple à deux niveaux (aucune réplication)

Le diagramme suivant affiche une utilisation standard de l'appliance MYSQLR64 dans une petite application Web à deux niveaux :

Appliances en cours d'utilisation :

La requête client arrive sur la passerelle utilisateur. La passerelle envoie les requêtes au serveur Web, qui les traite. Lorsque des scripts (par exemple, Perl ou PHP) sur le Web doivent accéder à des données permanentes, ils utilisent l'appliance db via le terminal out du serveur Web. L'appliance db est configurée pour stocker ses fichiers journaux dans le répertoire racine du partage fourni par les journaux.

Les administrateurs se connectent à la passerelle admin à l'aide d'un navigateur pour afficher les fichiers journaux MySQL ou du serveur Web. La passerelle admin envoie les requêtes à l'appliance NAS de journaux.

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) :

Nom de propriété

Valeur

Notes

auto_create

1

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

error_log_filename

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

Remarque : Le volume de données doit également être configuré sur l'appliance db ainsi que les journaux, le contenu et les appliances MON. Pour créer des volumes virtuels d'application pouvant être utilisés ici, reportez-vous au Manuel de l'utilisateur de la grille.

Application évolutive à deux niveaux (aucune réplication)

Le diagramme suivant affiche une utilisation standard de l'appliance MYSQLR64 dans une application Web à deux niveaux dans laquelle la base de données est utilisée pour partager l'état et les données entre plusieurs serveurs Web à charge équilibrée. Par ailleurs, dans cet exemple, il existe une entrée distincte pour la maintenance, via laquelle un administrateur peut se connecter et accéder à la base de données à des fins de maintenance, ainsi qu'une autre entrée via laquelle un administrateur peut se connecter et afficher le journal d'erreurs MySQL.

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 db.

La base de données db et les serveurs web1 et web2 écrivent leurs fichiers journaux dans l'appliance de journaux via les terminaux de journal. De plus, un administrateur peut se connecter à l'appliance de journaux via la passerelle maint et afficher les fichiers journaux.

En outre, un administrateur peut se connecter au serveur admin à l'aide de SSH via la passerelle maint (moyennant la configuration des clés publique-privée). A partir du serveur admin, l'administrateur peut accéder à la base de données db pour consulter des statistiques ou modifier le schéma de base de données. Le serveur admin peut accéder à Internet via la passerelle gway pour, par exemple, télécharger une version plus récente des bibliothèques ou le schéma de base de données.

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) :

Nom de propriété

Valeur

Notes

auto_create

1

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

error_log_filename

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

Remarques :

Application à X niveaux avec réplication maître-esclave (prévue pour les sauvegardes)

Le diagramme suivant affiche une utilisation standard de l'appliance MySQL dans une application Web dans laquelle la base de données est répliquée sur un serveur esclave. Vous pouvez utiliser le serveur esclave pour effectuer des sauvegardes cohérentes des données sans arrêter le serveur maître, en introduisant zéro comme durée d'indisponibilité de l'application.

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 esclave est reliée à l'appliance maître et réplique ses données. Vous pouvez arrêter l'esclave à tout moment pour effectuer des sauvegardes cohérentes des données SQL ou des analyses sans interférer avec les performances de l'appliance maître et du reste de l'application.

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

Les appliances maître, esclave, web1 et web2 sont configurées pour stocker leurs fichiers journaux dans le répertoire racine du partage exposé par les journaux. De plus, un administrateur peut afficher des fichiers journaux via la passerelle admin.

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) :

master (Maître)

Nom de propriété

Valeur

Notes

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

master (Maître)

Ecrit des journaux binaires pour effectuer la réplication.

Esclave

Nom de propriété

Valeur

Notes

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.

Remarques :

Application à X niveaux avec réplication maître-esclave (prévue pour l'équilibrage de charge)

Le diagramme suivant affiche une utilisation standard de l'appliance MYSQLR64 dans une application Web dans laquelle la base de données est répliquée sur deux serveurs dans un scénario de réplication maître-maître. Dans ces cas, l'application utilise aussi bien les serveurs WEB que MYSQLR64 pendant l'opération d'équilibrage de charge. De même, en cas d'échec d'une des instances WEB/MYSQLR64, vous pouvez utiliser l'autre instance de WEB/MYSQLR64 pour éviter le problème d'indisponibilité de l'application.

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. web1 utilise l'appliance de base de données db1, web2 utilise l'appliance de base de données db2. db1 et db2 sont connectés pour répliquer les mises à jour que les serveurs Web effectuent sur la base de données. Chaque appliance MYSQLR64 utilise un décalage (égal à son server_id) pour ses colonnes auto_increment afin d'éviter toute entrée en double.

L'accès Web à db1 et à db2 est disponible via la passerelle admin sur les ports 8080 et 8081.

Les appliances db1, db2, web1 et web2 sont configurées pour stocker leurs fichiers journaux dans le répertoire racine du partage exposé par les journaux. De plus, un administrateur peut afficher des fichiers journaux via la passerelle admin.

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) :

db1

Nom de propriété

Valeur

Notes

auto_create

1

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

error_log_filename

db1.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

master_and_slave

maître et esclave

db2

Nom de propriété

Valeur

Notes

auto_create

1

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

error_log_filename

db2.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 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

master_and_slave

maître et esclave

Remarques :

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

Le diagramme suivant affiche une utilisation standard de l'appliance MYSQLR64 dans une application Web dans laquelle la base de données est répliquée sur quatre serveurs dans un scénario de réplication maître-maître. Dans ces cas, l'application utilise l'ensemble des serveurs WEB et MYSQLR64 pendant l'opération d'équilibrage de charge. De même, en cas d'échec d'une des instances WEB/MYSQLR64, vous pouvez utiliser les autres instances de WEB/MYSQLR64 pour éviter le problème d'indisponibilité de l'application. (MYSQLR64 ne se préoccupe pas des échecs).

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, web2, web3 et web4. Chaque serveur Web utilise sa propre appliance de base de données. Toutes les appliances de base de données sont connectées de façon circulaire pour répliquer les mises à jour que les serveurs Web effectuent sur la base de données. Ainsi, une mise à jour sur db1 est répliquée sur db2, db3 et db4. Chaque appliance MYSQLR64 utilise un décalage (égal à son server_id) pour ses colonnes auto_increment afin d'éviter toute entrée en double.

L'accès Web à db1, db2, db3 et db4 est disponible via la passerelle admin sur les ports 8080, 8081, 8082 et 8083.

Les appliances db1, db2, web1 et web2 sont configurées pour stocker leurs fichiers journaux dans le répertoire racine du partage exposé par les journaux. De plus, un administrateur peut afficher des fichiers journaux via la passerelle admin.

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) :

db1

Nom de propriété

Valeur

Notes

auto_create

1

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

error_log_filename

db1.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 1

rpl_mode

master_and_slave

maître et esclave

db2

Nom de propriété

Valeur

Notes

auto_create

1

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

error_log_filename

db2.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 maître 2

rpl_mode

master_and_slave

maître et esclave

db3

Nom de propriété

Valeur

Notes

auto_create

1

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

error_log_filename

db3.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

3

Serveur maître 3

rpl_mode

master_and_slave

maître et esclave

db4

Nom de propriété

Valeur

Notes

auto_create

1

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

error_log_filename

db4.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

4

Serveur maître 4

rpl_mode

master_and_slave

maître et esclave

Remarques :

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 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.

master (Maître)

Nom de propriété

Valeur

Notes

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

master (Maître)

Ecrit des journaux binaires pour effectuer la réplication.

VPN maître

Nom de propriété

Valeur

Notes

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

Notes

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

Notes

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 :

Notes

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

Notes

aspell

0.60.6-12

Non

LGPLv2.1

N/D

aspell-en

6.0-11

Non

LGPLv2.1

N/D

curl

7.19.7-26.el6_2.4

Non

MIT

N/D

device-mapper-event

1.02.74-10

Non

GPLv2

N/D

freetype

2.3.11-6

Non

FTL

N/D

gmp

4.3.1-7.el6_2.2

Non

LGPLV2.1

N/D

libidn

1.18-2

Non

LGPLv2.1

N/D

libjpeg

6b-46

Non

Distribuable

N/D

libpng

1.2.49-1.el6_2

Non

zlib/libpng

N/D

lvm2

2.02.95-10

Non

GPLv2.0

N/D

MySQL

5.5.28-1

Non

GPL

N/D

mysql-server

5.5.28-1

Non

GPLv2

N/D

perl-DBD-MySQL

3.0007-2.3t

Non

Artistic

N/D

perl-DBI

1.615-1

Non

Artistic

N/D

php-cli

5.3.3-14.el6_3

Non

PHPv3.01

N/D

php-common

5.3.3-14.el6_3

Non

PHPv3.01

N/D

php-gd

5.3.3-14.el6_3

Non

PHPv3.01

N/D

php-mbstring

5.3.3-14.el6_3

Non

PHPv3.01

N/D

php-mysql

5.3.3-14.el6_3

Non

PHPv3.01

N/D

php-pdo

5.3.3-14.el6_3

Non

PHPv3.01

N/D

rsync

3.0.6-9

Non

GPLv2

N/D

samba-client

3.5.10-125

Non

GPLv2

N/D

samba-common

3.5.10-125

Non

GPLv2

N/D

sudo

1.7.4p5-13.el6_3

Non

ISC

N/D

lighttpd

1.4.31-1

Non

BSD

N/D

perl-IPC-Run

0.84-1.3t

Non

Artistic

N/D

perl-Time-Duration

1.06-1.3t

Non

Artistic

N/D

phpMyAdmin

3.5.2.2-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.