Conditions requises

Un système de base de données à haute disponibilité nécessite une configuration compatible avec la haute disponibilité. Comme la fonction de haute disponibilité du système de base de données utilise la réplication de groupe MySQL, chaque table doit avoir une clé primaire. Si vous essayez de créer une table sans clé primaire dans un système de base de données à haute disponibilité, l'opération échoue.

Note

Si vous utilisez la console pour activer la haute disponibilité d'un système de base de données, vous devez également activer l'extension automatique du stockage. Cette exigence ne s'applique pas à l'interface de ligne de commande ou à l'API REST.

Toutes les configurations par défaut compatibles avec la haute disponibilité ont le suffixe HA dans le nom de la configuration. Pour créer une configuration personnalisée prenant en charge la haute disponibilité, vous devez utiliser la méthode Copier la configuration pour effectuer une copie à partir d'une configuration existante prenant en charge la haute disponibilité. Voir Copie d'une configuration.

Si vous migrez des données vers HeatWave et que vous n'avez pas défini de clés primaires dans vos tables, vous devez les ajouter. Vérifiez les clés primaires dans les tables et ajoutez des clés aux tables qui n'en contiennent pas :

  1. Vérification des tables pour les clés primaires à l'aide d'un client de ligne de commande
  2. Ajoutez des clés primaires à l'aide de l'une des méthodes suivantes :
    • Utilisation d'une colonne invisible : Voir Ajout manuel de clés primaires à l'aide d'un client de ligne de commande.
      Note

      L'utilisation de colonnes invisibles pour ajouter des clés primaires permet de mettre à jour vos données existantes afin de les utiliser avec un système de BD hautement disponible, sans incidence majeure. L'opération est transparente pour vos applications, la nouvelle colonne reste masquée pour les interrogations SELECT, ce qui permet à vos applications de continuer à fonctionner comme précédemment.
    • À l'aide de l'utilitaire de vidage de l'interpréteur de commandes MySQL : Voir create_invisible_pks dans l'utilitaire de vidage de l'interpréteur de commandes MySQL.
    • À l'aide de l'utilitaire de chargement de l'interpréteur de commandes MySQL : Voir createInvisiblePKs dans l'utilitaire de chargement de l'interpréteur de commandes MySQL.
      Note

      Pour utiliser l'utilitaire de vidage et de chargement de l'interpréteur de commandes MySQL, utilisez la version 8.0.30 ou ultérieure de l'interpréteur de commandes MySQL.
    • Utilisation de la variable sql_generate_invisible_primary_key : Réglez la variable à ON pour ajouter des clés primaires aux nouvelles tables que vous créez. Le réglage de la variable à ON n'ajoute pas de clés primaires à des tables existantes. Voir Génération de clés primaires invisibles.

Vérification des tables pour les clés primaires à l'aide d'un client de ligne de commande

Utilisez un client de ligne de commande tel que le client MySQL ou l'interpréteur de commandes MySQL pour vérifier les clés primaires dans vos tables et lister celles qui n'en ont pas. Les clés primaires sont des conditions requises pour la réplication de groupe utilisée par la haute disponibilité.

  1. Exécutez l'instruction suivante sur la base de données pour générer une liste de tables sans clés primaires :
    SELECT t.table_schema, t.table_name
    FROM information_schema.tables t
      LEFT JOIN (SELECT table_schema, table_name 
                 FROM information_schema.statistics
                 WHERE index_name = 'PRIMARY' 
                 GROUP BY table_schema, table_name, index_name
                 ) pks 
      ON t.table_schema = pks.table_schema AND t.table_name = pks.table_name 
    WHERE pks.table_name IS NULL
      AND t.table_type = 'BASE TABLE' 
      AND t.table_schema NOT IN ('mysql', 'sys', 'performance_schema', 'information_schema');

Ajout manuel de clés primaires à l'aide d'un client de ligne de commande

Utilisez un client de ligne de commande tel que le client MySQL ou l'interpréteur de commandes MySQL pour ajouter des clés primaires aux colonnes invisibles.

Cette tâche nécessite les éléments suivants :
  • MySQL version 8.0.23 ou supérieure. Les colonnes invisibles ont été introduites dans la version 8.0.23.
Procédez comme suit pour ajouter une clé primaire à une colonne invisible :
  1. Exécutez une commande semblable à la suivante sur la table à laquelle vous souhaitez ajouter la colonne invisible et la clé primaire :
    ALTER TABLE <Table1> ADD <my_row_id> BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY INVISIBLE FIRST;

    La commande modifie la table, <Table1>, contenant une colonne, test en ajoutant une colonne, <my_row_id>, qui est invisible et contient la clé primaire de la table.

Rubriques connexes