Limitazioni

La replica in entrata al servizio MySQL HeatWave non supporta alcune configurazioni possibili per la replica MySQL.

  • È supportata solo la replica basata su righe. Questo formato di log binario è quello predefinito in MySQL versione 5.7 e successive. Replica basata su istruzioni e replica mista non supportate.
    Nota

    MySQL 5.7 ha un bug noto in cui l'istruzione DROP TEMPORARY TABLE viene erroneamente registrata nel log binario basato su righe e la replica basata su righe non riesce. MySQL 5.7 è disponibile nella sezione Sustaining Support da ottobre 2023 e non verranno fornite ulteriori correzioni di bug in base alla Oracle Lifetime Support Policy.
  • È supportata solo la replica asincrona. Replica semi-sincrona non supportata.
  • È supportata solo la replica da una singola origine. Replica multi-origine non supportata.
  • Un canale può supportare un massimo di 30 filtri canale.
  • Le modifiche allo schema mysql non vengono replicate e causano l'arresto della replica.
  • Quando viene eseguito l'upgrade di un sistema DB High Availability, il canale di replica in entrata viene sospeso. Il canale viene ripreso al termine del processo di aggiornamento.
  • È possibile replicare solo le istruzioni per le quali il nome utente dell'applier dispone del privilegio per l'esecuzione. La replica non riesce se il nome utente dell'applier non dispone di privilegi sufficienti per eseguire alcuna istruzione letta dai log binari del server di origine. La lista di privilegi è limitata ai privilegi concessi all'amministratore del sistema DB. Vedere Privilegi MySQL predefiniti.
  • Prima di MySQL 8.2, il nome utente nella clausola DEFINER delle istruzioni CREATE VIEW, CREATE PROCEDURE e CREATE FUNCTION deve essere uguale al nome utente dell'applier per replicare correttamente queste istruzioni. In MySQL 8.2 o versioni successive, l'utente applier deve disporre del privilegio SET_ANY_DEFINER per replicare le istruzioni CREATE VIEW, CREATE PROCEDURE e CREATE FUNCTION con clausola DEFINER contenente un altro nome utente.
  • I sistemi DB (MySQL 8.3.0 o versioni successive) creati prima di maggio 2024 che non dispongono del privilegio TRANSACTION_GTID_TAG devono essere aggiornati per replicare le transazioni con tag GTID.
  • Nella replica asincrona, sia i sistemi DB di origine che quelli di destinazione possono essere sistemi DB in lettura-scrittura e il cluster HeatWave associato può essere gestito in modo indipendente. Tuttavia, poiché è presente un canale di replica nel mezzo, le azioni eseguite all'origine possono influire sulla funzionalità del sistema DB di destinazione.
  • Quando le istruzioni ALTER TABLE <table_name> SECONDARY_LOAD e ALTER TABLE <table_name> SECONDARY_UNLOAD vengono replicate in un sistema DB di destinazione, non caricano né scaricano i dati nel cluster HeatWave collegato al sistema DB di destinazione, se presente.

    Ciò consente di impostare la replica tra i sistemi DB in cui l'origine dispone di un cluster HeatWave, ma la destinazione non dispone di un cluster HeatWave, nonché nei sistemi DB High Availability in cui solo il sistema DB primario dispone di un cluster HeatWave. Tuttavia, quando l'istruzione ALTER TABLE <table_name> SECONDARY_LOAD viene replicata, i metadati di caricamento secondari vengono aggiornati nel dizionario dati MySQL. Poiché i metadati di caricamento secondari vengono consultati al momento del recupero, se il sistema DB di destinazione viene riavviato, anche le nuove tabelle di cui vengono replicate le istruzioni DDL di caricamento secondario vengono prese in considerazione per il ricaricamento nel cluster HeatWave nel sistema DB di destinazione.

  • Puoi caricare o scaricare le tabelle in modo indipendente nel cluster HeatWave sia nei sistemi DB di origine che in quelli di destinazione. Tuttavia, se carichi prima una tabella nel cluster HeatWave nel sistema DB di destinazione e poi tenti di caricare la stessa tabella nel cluster HeatWave nel sistema DB di origine, potrebbe causare l'interruzione del canale di replica e in tali casi viene generato un errore simile al seguente:
    Replica SQL for channel 'replication_channel': Worker 1 failed executing transaction 
    '<transaction_id>' at source log binary-log.<number>, end_log_pos <number>;
    Error 'Secondary engine operation failed. Table already has a secondary engine defined.' on query.
    Default database: ''. Query: 'ALTER TABLE <table_name> SECONDARY_ENGINE=RAPID', Error_code: MY-003889   
    Ciò si verifica perché l'istruzione DDL ALTER TABLE <table_name> SECONDARY_ENGINE = RAPID generata dal caricamento viene replicata ma non riesce nel sistema DB di destinazione perché la tabella corrispondente è già caricata nel cluster HeatWave e dispone già di SECONDARY_ENGINE = RAPID impostato.
  • Quando il cluster HeatWave viene eliminato o ricreato nel sistema DB di origine, tutte le tabelle caricate in precedenza vengono scaricate dal cluster HeatWave nel sistema DB di origine e le stesse tabelle vengono scaricate dal cluster HeatWave anche nel sistema DB di destinazione. Questo perché quando il cluster HeatWave nel sistema DB di origine viene eliminato o ricreato, l'impostazione SECONDARY_ENGINE per tutte le tabelle caricate in precedenza nel sistema DB di origine viene reimpostata su NULL. Quando l'impostazione SECONDARY_ENGINE per una tabella viene reimpostata nel sistema DB di origine, l'impostazione SECONDARY_ENGINE per la stessa tabella viene reimpostata su NULL anche nel sistema DB di destinazione, il che comporta lo scaricamento della tabella dal cluster HeatWave nel sistema DB di destinazione.
  • Se si desidera replicare le tabelle esterne di Lakehouse, si consiglia di non impostare il canale su GENERATE_IMPLICIT_PRIMARY_KEY per le tabelle senza chiave primaria. La replica si interrompe quando si modifica una tabella InnoDB con una chiave primaria generata in una tabella Lakehouse.
  • Nelle versioni precedenti a 8.4.0-u2, se il sistema DB di destinazione dispone di un cluster HeatWave arrestato (inattivo), il canale di replica non può applicare alcuna istruzione DDL che crei o modifichi una tabella esterna Lakehouse. Il canale di replica si interromperà.
  • Nelle versioni precedenti a 8.4.0-u2, anche se il caricamento dati viene saltato, il canale di replica può interrompersi se MySQL HeatWave Lakehouse è abilitato nel sistema DB di destinazione e non dispone dell'accesso in lettura e lista ai file specificati nell'attributo motore della tabella esterna Lakehouse.