Requisiti indispensabili

Un sistema DB High Availability richiede una configurazione compatibile con High Availability. Poiché la funzione High Availability del sistema DB utilizza la replica del gruppo MySQL, ogni tabella deve avere una chiave primaria. Se provi a creare una tabella senza una chiave primaria in un sistema DB High Availability, l'operazione non riesce.

Nota

Se si utilizza la console per abilitare l'alta disponibilità di un sistema DB, è necessario abilitare anche l'espansione automatica dello storage. Questo requisito non si applica nell'interfaccia CLI o nell'API REST.

Tutte le configurazioni predefinite compatibili con High Availability hanno il suffisso HA nel nome della configurazione. Se si desidera creare una configurazione personalizzata che supporti l'alta disponibilità, è necessario utilizzare il metodo Copia configurazione per eseguire la copia da una configurazione esistente che supporti l'alta disponibilità. Vedere Copia di una configurazione.

Se si esegue la migrazione dei dati in HeatWave e non sono state definite chiavi primarie nelle tabelle, è necessario aggiungerle. Controllare la presenza di chiavi primarie nelle tabelle e aggiungere le chiavi alle tabelle che non le contengono:

  1. Controllo delle tabelle per le chiavi primarie mediante un client dalla riga di comando
  2. Aggiungere chiavi primarie utilizzando uno dei metodi riportati di seguito.
    • Utilizzo della colonna invisibile: vedere Aggiunta manuale di chiavi primarie mediante un client dalla riga di comando.
      Nota

      L'uso di colonne invisibili per aggiungere chiavi primarie è un modo a basso impatto per aggiornare i dati esistenti da utilizzare con un sistema DB ad alta disponibilità. È trasparente per le applicazioni, la nuova colonna rimane nascosta dalle query SELECT, consentendo alle applicazioni di continuare a lavorare come in precedenza.
    • Uso della utility di dump della shell MySQL: vedere create_invisible_pks nella utility di dump della shell MySQL.
    • Utilizzo della utility di caricamento shell MySQL: vedere createInvisiblePKs nella utility di caricamento shell MySQL.
      Nota

      Per utilizzare la utility di dump e caricamento della shell MySQL, utilizzare la shell MySQL versione 8.0.30 o successive.
    • Utilizzo della variabile sql_generate_invisible_primary_key: impostare la variabile su ON per aggiungere le chiavi primarie alle nuove tabelle create. L'impostazione della variabile su ON non aggiunge chiavi primarie alle tabelle già esistenti. Vedere Generazione di chiavi primarie invisibili.

Controllo delle tabelle per le chiavi primarie mediante un client dalla riga di comando

Utilizzare un client della riga di comando, ad esempio un client MySQL o una shell MySQL, per controllare la presenza di chiavi primarie nelle tabelle ed elencare quelle che non dispongono di chiavi primarie. Le chiavi primarie sono un prerequisito per la replica del gruppo utilizzata da High Availability.

  1. Eseguire l'istruzione seguente sul database per generare una lista di tabelle che non dispongono di chiavi primarie:
    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');

Aggiunta manuale di chiavi primarie mediante un client dalla riga di comando

Utilizzare un client della riga di comando, ad esempio un client MySQL o una shell MySQL, per aggiungere chiavi primarie a colonne invisibili.

Questa attività richiede quanto segue:
  • MySQL versione 8.0.23 o successiva. Le colonne invisibili sono state introdotte nella versione 8.0.23.
Per aggiungere una chiave primaria a una colonna invisibile, procedere come segue.
  1. Eseguire un comando simile al seguente per la tabella alla quale si desidera aggiungere la colonna invisibile e la chiave primaria:
    ALTER TABLE <Table1> ADD <my_row_id> BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY INVISIBLE FIRST;

    Il comando modifica la tabella, <Table1>, con una colonna, test aggiungendo una colonna, <my_row_id>, che è invisibile e contiene la chiave primaria per la tabella.

Argomenti correlati