Sdílet prostřednictvím


Předdefinované uložené procedury ve službě Azure Database for MySQL

PLATÍ PRO: Azure Database for MySQL – flexibilní server

Azure Database for MySQL poskytuje několik předdefinovaných uložených procedur, které zjednodušují a automatizují pokročilé úlohy správy databází. Tyto uložené procedury pomáhají efektivně konfigurovat funkce, jako je replikace dat, vyčištění protokolu zpět a správa modulů plug-in.

Tento článek představuje integrované uložené procedury dostupné ve službě Azure Database for MySQL, jejich funkce a jejich použití.

Aktuální dostupné předdefinované uložené procedury

1. Správa replikace příchozích dat

Azure Database for MySQL poskytuje uložené procedury pro správu replikace příchozích dat, včetně spuštění, zastavení, kontroly stavu a resetování replikace.

Podrobnosti o těchto postupech najdete v tématu Konfigurace replikace dat flexibilního serveru Azure Database for MySQL.

2. Správa modulů plug-in

Azure Database for MySQL podporuje modul plug-in Validate Password, který vynucuje zásady síly hesel. Uživatelé můžou povolit nebo zakázat tento modul plug-in pomocí následujících uložených procedur:

Povolení modulu plug-in pro ověření hesla

CALL az_install_validate_password_plugin();

Po povolení modulu plug-in můžete zobrazit a nakonfigurovat související parametry na stránce Parametry serveru na webu Azure Portal.

Zakázání modulu plug-in pro ověření hesla

CALL az_uninstall_validate_password_plugin();

Tato uložená procedura odebere plugin.

Poznámka:

  • U serverů s vysokou dostupností nejprve spusťte tyto uložené procedury na primárním serveru. Pak proveďte vynucené převzetí služeb při selhání a znovu proveďte uložené procedury na nové primární instanci.
  • U serverů replik se tyto uložené procedury na primárním serveru automaticky nesynchronizují s replikami. Po jejich spuštění na primární replice je ručně spusťte na každé replice.

3. Čištění záznamu transakcí

V některých případech se může protokol pro vrácení zpět zvětšit a můžete ho chtít vymazat. Azure Database for MySQL poskytuje uloženou proceduru, která vám pomůže s touto úlohou.

  1. Pokud chcete zkontrolovat místo v tabulce, spusťte nejprve následující příkaz.
    SELECT NAME, FILE_SIZE, STATE FROM INFORMATION_SCHEMA.INNODB_TABLESPACES WHERE SPACE_TYPE = 'Undo' AND STATE = 'active' ORDER BY NAME;
    
  2. Pokud zjistíte, že je váš undo log velký, použijte následující příkaz k vytvoření nového tabulkového prostoru.
    call az_create_undo_tablespace(X)
    
    V současné době podporujeme až osm tabulkových prostorů, včetně dvou výchozích. Hodnota X musí být v rozsahu 3 až 8. Po dokončení příkazu by nový prostor tabulky měl být v aktivním stavu.
  3. Spuštěním následujícího příkazu deaktivujte innodb_undo_001 (výchozí).
    call az_deactivate_undo_tablespace(1)
    
    Pak počkejte, až bude stav innodb_undo_001 prázdný (znamená to, že se protokol zpět zkrátí).
    Zkrácení protokolu vrácení zpět můžete ověřit zkontrolováním části Ověřování a kontrola tabulek vrácení zpět.
  4. Spuštěním následujícího příkazu aktivujte innodb_undo_001 (výchozí).
    call az_activate_undo_tablespace(1)
    
    Pak počkejte, až bude stav innodb_undo_001 aktivní.
  5. Opakujte kroky 1 až 4 pro innodb_undo_002.
  6. Spuštěním call az_deactivate_undo_tablespace(3); deaktivujte nově vytvořený prostor tabulky. Počkejte, až bude stav prázdný. Pak spusťte Call az_drop_undo_tablespace(3); k odstranění nově vytvořeného tablespace. Nemůžete odstranit výchozí (innodb_undo_001, innodb_undo_002). V tomto příkladu můžete odstranit jenom ten, který jste vytvořili, x_undo_003.Před vyřazením nejprve deaktivujte x_undo_003 do prázdného stavu.

Ověřování a kontrola vrácení tabulkových prostorů zpět

Před vyprázdněním tabulkového prostoru pro vrácení zpět se ujistěte, že neexistují žádné aktivní transakce:

SELECT COUNT(1) FROM information_schema.innodb_trx;
  • Pokud je výsledek 0, neexistují žádné aktivní transakce.
  • Tabulkový prostor pro vrácení zpět lze vyprázdnit pouze v případě, že je tento počet nulový.

Po potvrzení, že transakce dosáhly nuly, zkontrolujte stav tabulkových prostorů pro vrácení změn:

SELECT NAME, FILE_SIZE, STATE
FROM information_schema.innodb_tablespaces
WHERE SPACE_TYPE = 'Undo'
ORDER BY NAME;

Přetažení problematické tabulky

Pokud při přístupu k tabulce dojde k chybě podobné následující, může to znamenat poškození tabulky:

Incorrect information in file: './DATABASE_NAME/TABLE_NAME.frm'

Pokud chcete tento problém vyřešit, můžete použít integrovanou uloženou proceduru:

mysql.az_drop_broken_table(DBNAME, TABLENAME)

Po provedení tohoto postupu doporučujeme server restartovat, aby se změny projevily.

Případně můžete provést obnovení k určitému bodu v čase a vrátit server do stavu před tím, než k problému došlo.

závěr

Azure Database for MySQL poskytuje integrované uložené procedury, které zjednodušují pokročilé úlohy správy databází. Tyto postupy umožňují nastavit replikaci, spravovat protokol zpět a efektivně povolovat pluginy. Použitím těchto nástrojů můžete zvýšit výkon, optimalizovat úložiště a zajistit bezproblémovou synchronizaci dat.