Udostępnij za pomocą


Wbudowane procedury składowane w usłudze Azure Database for MySQL

DOTYCZY: Azure Database for MySQL — serwer elastyczny

Usługa Azure Database for MySQL udostępnia kilka wbudowanych procedur składowanych, które upraszczają i automatyzują zaawansowane zadania zarządzania bazami danych. Te procedury składowane pomagają w efektywnym konfigurowaniu funkcji, takich jak replikacja danych przychodzących, czyszczenie dzienników cofania i zarządzanie wtyczkami.

W tym artykule przedstawiono wbudowane procedury składowane dostępne w usłudze Azure Database for MySQL, ich funkcje i sposób ich używania.

Bieżące dostępne wbudowane procedury składowane

1. Zarządzanie replikacją typu data-in

Usługa Azure Database for MySQL udostępnia procedury składowane służące do zarządzania replikacją typu data-in, w tym uruchamiania, zatrzymywania, sprawdzania stanu i resetowania replikacji.

Aby uzyskać szczegółowe informacje na temat tych procedur, zobacz How to configure Azure Database for MySQL - Flexible Server data-in replication (Jak skonfigurować replikację danych usługi Azure Database for MySQL — serwer elastyczny).

2. Zarządzanie wtyczkami

Usługa Azure Database for MySQL obsługuje wtyczkę Validate Password Plugin, która wymusza zasady siły hasła. Użytkownicy mogą włączać lub wyłączać tę wtyczkę przy użyciu następujących procedur składowanych:

Włączanie wtyczki weryfikujące hasło

CALL az_install_validate_password_plugin();

Po włączeniu wtyczki można wyświetlić i skonfigurować powiązane parametry na stronie Parametry serwera w witrynie Azure Portal.

Wyłącz wtyczkę walidacji hasła

CALL az_uninstall_validate_password_plugin();

Ta procedura składowana usuwa wtyczkę.

Uwaga / Notatka

  • W przypadku serwerów wysokiej dostępności najpierw wykonaj te procedury składowane na serwerze podstawowym . Następnie wykonaj wymuszone przejście w tryb failover i ponownie wykonaj procedury składowane na nowym serwerze głównym.
  • W przypadku serwerów repliki wykonywanie tych procedur składowanych na serwerze podstawowym nie powoduje automatycznej synchronizacji z replikami. Ręcznie wykonaj je na każdej replice po uruchomieniu ich na jednostce głównej.

3. Cofanie oczyszczania dziennika

W niektórych przypadkach dziennik cofania może znacznie się powiększyć, i warto rozważyć jego wyczyszczenie. Usługa Azure Database for MySQL udostępnia procedurę składowaną, która ułatwia wykonanie tego zadania.

  1. Aby sprawdzić przestrzeń tabeli, najpierw wykonaj następujące polecenie.
    SELECT NAME, FILE_SIZE, STATE FROM INFORMATION_SCHEMA.INNODB_TABLESPACES WHERE SPACE_TYPE = 'Undo' AND STATE = 'active' ORDER BY NAME;
    
  2. Jeśli okaże się, że dziennik cofania jest duży, użyj następującego polecenia w celu utworzenia nowej przestrzeni tabeli.
    call az_create_undo_tablespace(X)
    
    Obecnie obsługujemy maksymalnie osiem przestrzeni tabel, w tym dwa domyślne. Wartość X musi należeć do przedziału od 3 do 8. Po zakończeniu polecenia nowa przestrzeń tabeli powinna być w stanie aktywnym.
  3. Wykonaj następujące polecenie, aby dezaktywować innodb_undo_001 (domyślny).
    call az_deactivate_undo_tablespace(1)
    
    Następnie poczekaj, aż stan innodb_undo_001 będzie pusty (oznacza to, że dziennik cofania zostanie zredukowany).
    Możesz zweryfikować obcinanie dziennika cofania, sprawdzając weryfikację i sprawdzanie przestrzeni tabel cofania
  4. Wykonaj następujące polecenie, aby aktywować innodb_undo_001 (opcja domyślna).
    call az_activate_undo_tablespace(1)
    
    Następnie poczekaj, aż stan innodb_undo_001 będzie aktywny.
  5. Powtórz kroki od 1 do 4 dla innodb_undo_002.
  6. Wykonaj polecenie call az_deactivate_undo_tablespace(3); , aby dezaktywować nowo utworzoną przestrzeń tabeli. Poczekaj, aż stan będzie pusty. Następnie wykonaj polecenie Call az_drop_undo_tablespace(3); , aby usunąć nowo utworzoną przestrzeń tabeli. Nie można usunąć domyślnych (innodb_undo_001, innodb_undo_002). Można usunąć tylko ten, który został utworzony w tym przykładzie, czyli x_undo_003. Przed usunięciem należy najpierw dezaktywować x_undo_003, aby uzyskać stan pusty.

Weryfikowanie i sprawdzanie cofania przestrzeni tabel

Przed opróżnieniem przestrzeni tabel cofania upewnij się, że nie ma aktywnych transakcji:

SELECT COUNT(1) FROM information_schema.innodb_trx;
  • Jeśli wynik wynosi 0, nie ma aktywnych transakcji.
  • Przestrzeń tabeli cofania można opróżnić tylko wtedy, gdy licznik wynosi zero.

Po potwierdzeniu, że transakcje osiągnęły zero, sprawdź stan przestrzeni tabel cofania.

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

Usuwanie problematycznej tabeli

Jeśli wystąpi błąd podobny do poniższego podczas uzyskiwania dostępu do tabeli, może to wskazywać na uszkodzenie tabeli:

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

Aby rozwiązać ten problem, możesz użyć wbudowanej procedury składowanej:

mysql.az_drop_broken_table(DBNAME, TABLENAME)

Po wykonaniu procedury zaleca się ponowne uruchomienie serwera, aby upewnić się, że zmiany zostaną wprowadzone.

Alternatywnie można wykonać przywracanie do punktu w czasie , aby przywrócić serwer do stanu przed wystąpieniem problemu.

Wniosek

Usługa Azure Database for MySQL udostępnia wbudowane procedury składowane, które upraszczają zaawansowane zadania zarządzania bazami danych. Te procedury umożliwiają konfigurowanie replikacji, zarządzanie dziennikiem cofania i wydajne włączanie wtyczek. Stosując te narzędzia, można zwiększyć wydajność, zoptymalizować magazyn i zapewnić bezproblemową synchronizację danych.