Jak tworzyć repliki do odczytu i zarządzać nimi w usłudze Azure Database for MySQL przy użyciu interfejsu wiersza polecenia platformy Azure i interfejsu API REST
DOTYCZY: Azure Database for MySQL — pojedynczy serwer
Ważne
Pojedynczy serwer usługi Azure Database for MySQL znajduje się na ścieżce wycofania. Zdecydowanie zalecamy uaktualnienie do serwera elastycznego usługi Azure Database for MySQL. Aby uzyskać więcej informacji na temat migracji do serwera elastycznego usługi Azure Database for MySQL, zobacz Co się dzieje z usługą Azure Database for MySQL — pojedynczy serwer?
W tym artykule dowiesz się, jak tworzyć repliki do odczytu i zarządzać nimi w usłudze Azure Database for MySQL przy użyciu interfejsu wiersza polecenia platformy Azure i interfejsu API REST. Aby dowiedzieć się więcej na temat replik do odczytu, zobacz omówienie.
Interfejs wiersza polecenia platformy Azure
Repliki do odczytu można tworzyć i zarządzać nimi przy użyciu interfejsu wiersza polecenia platformy Azure.
Wymagania wstępne
- Zainstaluj interfejs wiersza polecenia platformy Azure 2.0
- Serwer usługi Azure Database for MySQL, który będzie używany jako serwer źródłowy.
Ważne
Funkcja repliki do odczytu jest dostępna tylko dla serwerów usługi Azure Database for MySQL w warstwach cenowych Ogólnego przeznaczenia lub Zoptymalizowane pod kątem pamięci. Upewnij się, że serwer źródłowy znajduje się w jednej z tych warstw cenowych.
Tworzenie repliki do odczytu
Ważne
Jeśli serwer źródłowy nie ma istniejących serwerów repliki, serwer źródłowy może wymagać ponownego uruchomienia, aby przygotować się do replikacji w zależności od używanego magazynu (v1/v2). Rozważ ponowne uruchomienie serwera i wykonaj tę operację poza godzinami szczytu. Aby uzyskać więcej szczegółów, zobacz Ponowne uruchamianie serwera źródłowego.
Jeśli identyfikator GTID jest włączony na serwerze podstawowym (gtid_mode
= WŁ.), nowo utworzone repliki będą również miały włączone identyfikator GTID i używać replikacji opartej na identyfikatorze GTID. Aby dowiedzieć się więcej, zobacz Globalny identyfikator transakcji (GTID)
Serwer repliki do odczytu można utworzyć przy użyciu następującego polecenia:
az mysql server replica create --name mydemoreplicaserver --source-server mydemoserver --resource-group myresourcegroup
Polecenie az mysql server replica create
wymaga następujących parametrów:
Ustawienie | Przykładowa wartość | Opis |
---|---|---|
resource-group | myresourcegroup | Grupa zasobów, w której zostanie utworzony serwer repliki. |
name | mydemoreplicaserver | Nazwa nowego serwera repliki, który jest tworzony. |
source-server | mydemoserver | Nazwa lub identyfikator istniejącego serwera źródłowego do replikacji. |
Aby utworzyć replikę do odczytu między regionami, użyj parametru --location
. Poniższy przykład interfejsu wiersza polecenia tworzy replikę w regionie Zachodnie stany USA.
az mysql server replica create --name mydemoreplicaserver --source-server mydemoserver --resource-group myresourcegroup --location westus
Uwaga
Aby dowiedzieć się więcej na temat regionów, w których można utworzyć replikę, zapoznaj się z artykułem pojęcia dotyczące repliki do odczytu.
Uwaga
- Polecenie
az mysql server replica create
zawiera--sku-name
argument, który umożliwia określenie jednostki SKU ({pricing_tier}_{compute generation}_{vCores}
) podczas tworzenia repliki przy użyciu interfejsu wiersza polecenia platformy Azure. - Serwer podstawowy i replika do odczytu powinny znajdować się w tej samej warstwie cenowej (Ogólnego przeznaczenia lub Zoptymalizowane pod kątem pamięci).
- Konfigurację serwera repliki można również zmienić po jej utworzeniu. Zaleca się, aby konfiguracja serwera repliki była przechowywana w równych lub większych wartościach niż źródło, aby upewnić się, że replika jest w stanie nadążyć za wzorcem.
Wyświetlanie listy replik dla serwera źródłowego
Aby wyświetlić wszystkie repliki dla danego serwera źródłowego, uruchom następujące polecenie:
az mysql server replica list --server-name mydemoserver --resource-group myresourcegroup
Polecenie az mysql server replica list
wymaga następujących parametrów:
Ustawienie | Przykładowa wartość | Opis |
---|---|---|
resource-group | myresourcegroup | Grupa zasobów, w której zostanie utworzony serwer repliki. |
nazwa-serwera | mydemoserver | Nazwa lub identyfikator serwera źródłowego. |
Zatrzymywanie replikacji na serwerze repliki
Ważne
Zatrzymywanie replikacji na serwerze jest nieodwracalne. Po zatrzymaniu replikacji między źródłem i repliką nie można jej cofnąć. Następnie serwer repliki staje się serwerem autonomicznym, a teraz obsługuje zarówno odczyt, jak i zapis. Tego serwera nie można ponownie replikować.
Replikacja do serwera repliki do odczytu można zatrzymać przy użyciu następującego polecenia:
az mysql server replica stop --name mydemoreplicaserver --resource-group myresourcegroup
Polecenie az mysql server replica stop
wymaga następujących parametrów:
Ustawienie | Przykładowa wartość | Opis |
---|---|---|
resource-group | myresourcegroup | Grupa zasobów, w której istnieje serwer repliki. |
name | mydemoreplicaserver | Nazwa serwera repliki do zatrzymania replikacji. |
Usuwanie serwera repliki
Usunięcie serwera repliki do odczytu można wykonać, uruchamiając polecenie az mysql server delete .
az mysql server delete --resource-group myresourcegroup --name mydemoreplicaserver
Usuwanie serwera źródłowego
Ważne
Usunięcie serwera źródłowego powoduje zatrzymanie replikacji do wszystkich serwerów repliki i usunięcie samego serwera źródłowego. Serwery repliki stają się serwerami autonomicznymi, które teraz obsługują zarówno odczyt, jak i zapis.
Aby usunąć serwer źródłowy, możesz uruchomić polecenie az mysql server delete .
az mysql server delete --resource-group myresourcegroup --name mydemoserver
Interfejs API REST
Repliki do odczytu można tworzyć i zarządzać nimi przy użyciu interfejsu API REST platformy Azure.
Tworzenie repliki do odczytu
Replikę do odczytu można utworzyć przy użyciu interfejsu API tworzenia:
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{replicaName}?api-version=2017-12-01
{
"location": "southeastasia",
"properties": {
"createMode": "Replica",
"sourceServerId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{masterServerName}"
}
}
Uwaga
Aby dowiedzieć się więcej na temat regionów, w których można utworzyć replikę, zapoznaj się z artykułem pojęcia dotyczące repliki do odczytu.
Replika jest tworzona przy użyciu tych samych ustawień obliczeniowych i magazynu co wzorzec. Po utworzeniu repliki można zmienić kilka ustawień niezależnie od serwera źródłowego: generowanie zasobów obliczeniowych, rdzenie wirtualne, magazyn i okres przechowywania kopii zapasowych. Warstwę cenową można również zmienić niezależnie, z wyjątkiem warstwy Podstawowa lub z warstwy Podstawowa.
Ważne
Zanim ustawienie serwera źródłowego zostanie zaktualizowane do nowej wartości, zaktualizuj ustawienie repliki na wartość równą lub większą. Ta akcja pomaga repliki nadążyć za wszelkimi zmianami wprowadzonych do wzorca.
Lista replik
Listę replik serwera źródłowego można wyświetlić przy użyciu interfejsu API listy replik:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{masterServerName}/Replicas?api-version=2017-12-01
Zatrzymywanie replikacji na serwerze repliki
Replikację między serwerem źródłowym i repliką do odczytu można zatrzymać przy użyciu interfejsu API aktualizacji.
Po zatrzymaniu replikacji na serwerze źródłowym i repliki do odczytu nie można jej cofnąć. Replika do odczytu staje się autonomicznym serwerem obsługującym odczyty i zapisy. Nie można ponownie utworzyć autonomicznego serwera w repliki.
PATCH https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{masterServerName}?api-version=2017-12-01
{
"properties": {
"replicationRole":"None"
}
}
Usuwanie serwera źródłowego lub repliki
Aby usunąć serwer źródłowy lub serwer repliki, należy użyć interfejsu API usuwania:
Po usunięciu serwera źródłowego replikacja do wszystkich replik do odczytu zostanie zatrzymana. Repliki do odczytu stają się serwerami autonomicznymi, które obsługują teraz zarówno operacje odczytu, jak i zapisu.
DELETE https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}?api-version=2017-12-01
Znany problem
Istnieją dwie generacje magazynu, które serwery w warstwie Ogólnego przeznaczenia i Zoptymalizowane pod kątem pamięci, Magazyn ogólnego przeznaczenia w wersji 1 (obsługuje maksymalnie 4 TB) i Magazyn ogólnego przeznaczenia w wersji 2 (obsługuje do 16 TB magazynu). Serwer źródłowy i serwer repliki powinny mieć ten sam typ magazynu. Ponieważ magazyn ogólnego przeznaczenia w wersji 2 nie jest dostępny we wszystkich regionach, upewnij się, że wybrano prawidłowy region repliki podczas używania lokalizacji z interfejsem wiersza polecenia lub interfejsem API REST do tworzenia repliki do odczytu. Aby określić typ magazynu serwera źródłowego, zapoznaj się z linkiem Jak określić typ magazynu, na którym działa mój serwer.
Jeśli wybierzesz region, w którym nie można utworzyć repliki do odczytu dla serwera źródłowego, wystąpi problem polegający na tym, że wdrożenie będzie nadal działać, jak pokazano na poniższej ilustracji, a następnie zostanie przekroczony limit czasu z błędem "Operacja aprowizacji zasobów nie została ukończona w dozwolonym okresie przekroczenia limitu czasu".
az mysql server replica create -n <replica-servername> -g <resource group> --location <replica-region> -s <source-servername>
/ Running . .
Następne kroki
- Dowiedz się więcej o replikach do odczytu