felhőbe irányuló replikálás konfigurálása Azure Database for MariaDBConfigure Data-in Replication in Azure Database for MariaDB

Ez a cikk azt ismerteti, hogyan állíthatja be a Azure Database for MariaDB felhőbe irányuló replikálás a forrás-és a replika-kiszolgálók konfigurálásával.This article describes how to set up Data-in Replication in Azure Database for MariaDB by configuring the source and replica servers. Ez a cikk azt feltételezi, hogy a MariaDB-kiszolgálókkal és-adatbázisokkal kapcsolatban némi korábbi tapasztalat van.This article assumes that you have some prior experience with MariaDB servers and databases.

Ahhoz, hogy replikát hozzon létre a Azure Database for MariaDB szolgáltatásban, felhőbe irányuló replikálás szinkronizálja a helyszíni forrásból, a virtuális gépekből vagy a Cloud Database szolgáltatásokból származó MariaDB-kiszolgáló adatait.To create a replica in the Azure Database for MariaDB service, Data-in Replication synchronizes data from a source MariaDB server on-premises, in virtual machines (VMs), or in cloud database services. A beérkező adatokra épülő replikáció a MariaDB natív bináris naplójának (binlog) fájlpozíció-alapú replikációján alapul.Data-in Replication is based on the binary log (binlog) file position-based replication native to MariaDB. A BinLog replikálásával kapcsolatos további tudnivalókért tekintse meg a BinLog-replikáció áttekintésecímű témakört.To learn more about binlog replication, see the binlog replication overview.

A jelen cikkben ismertetett lépések végrehajtása előtt tekintse át az adatok replikálásának korlátozásait és követelményeit .Review the limitations and requirements of Data-in replication before performing the steps in this article.

Megjegyzés

Ha a forráskiszolgáló 10,2-es vagy újabb verziójú, javasoljuk, hogy a globális tranzakció-azonosítóhasználatával állítsa be felhőbe irányuló replikálás.If your source server is version 10.2 or newer, we recommend that you set up Data-in Replication by using Global Transaction ID.

Megjegyzés

Ez a cikk a Slave kifejezésre mutató hivatkozásokat tartalmaz, amelyek egy kifejezés, amelyet a Microsoft már nem használ.This article contains references to the term slave, a term that Microsoft no longer uses. Ha a rendszer eltávolítja a kifejezést a szoftverből, azt a cikkből távolítjuk el.When the term is removed from the software, we'll remove it from this article.

Replikaként használandó MariaDB-kiszolgáló létrehozásaCreate a MariaDB server to use as a replica

  1. Hozzon létre egy új Azure Database for MariaDB-kiszolgálót (például replica.mariadb.database.azure.com).Create a new Azure Database for MariaDB server (for example, replica.mariadb.database.azure.com). A kiszolgáló a felhőbe irányuló replikálás található replika-kiszolgáló.The server is the replica server in Data-in Replication.

    A kiszolgálók létrehozásával kapcsolatos további tudnivalókért lásd: Azure Database for MariaDB kiszolgáló létrehozása a Azure Portal használatával.To learn about server creation, see Create an Azure Database for MariaDB server by using the Azure portal.

    Fontos

    A Azure Database for MariaDB-kiszolgálót a általános célú vagy a memória optimalizált díjszabási szintjein kell létrehoznia.You must create the Azure Database for MariaDB server in the General Purpose or Memory Optimized pricing tiers.

  2. Hozzon létre azonos felhasználói fiókokat és megfelelő jogosultságokat.Create identical user accounts and corresponding privileges.

    A felhasználói fiókok nem replikálódnak a forráskiszolgálóról a másodpéldány-kiszolgálóra.User accounts aren't replicated from the source server to the replica server. A replika-kiszolgálóhoz való felhasználói hozzáférés biztosításához manuálisan kell létrehoznia az összes fiókot és a megfelelő jogosultságokat az újonnan létrehozott Azure Database for MariaDB-kiszolgálón.To provide user access to the replica server, you must manually create all accounts and corresponding privileges on the newly created Azure Database for MariaDB server.

  3. Adja hozzá a forráskiszolgáló IP-címét a replika tűzfalszabály-szabályaihoz.Add the source server's IP address to the replica's firewall rules.

    A tűzfalszabályokat az Azure Portallal vagy az Azure CLI-vel frissítheti.Update firewall rules using the Azure portal or Azure CLI.

A forráskiszolgáló konfigurálásaConfigure the source server

A következő lépések előkészítik és konfigurálja a helyszínen üzemeltetett MariaDB-kiszolgálót egy virtuális gépen vagy egy felhőalapú adatbázis-szolgáltatásban felhőbe irányuló replikálás számára.The following steps prepare and configure the MariaDB server hosted on-premises, in a VM, or in a cloud database service for Data-in Replication. A MariaDB-kiszolgáló a forrás a felhőbe irányuló replikálásban.The MariaDB server is the source in Data-in Replication.

  1. A továbblépés előtt tekintse át az elsődleges kiszolgálóra vonatkozó követelményeket .Review the primary server requirements before proceeding.

  2. Győződjön meg arról, hogy a forráskiszolgáló engedélyezi a bejövő és a kimenő forgalmat is a 3306-es porton, valamint arról, hogy a forráskiszolgáló nyilvános IP-címmel rendelkezik, a DNS nyilvánosan elérhető, vagy rendelkezik teljes tartománynévvel (FQDN).Ensure the source server allows both inbound and outbound traffic on port 3306 and that the source server has a public IP address, the DNS is publicly accessible, or has a fully qualified domain name (FQDN).

    Tesztelje a kapcsolatot a forráskiszolgálóról egy olyan eszközről való csatlakozásra tett kísérlettel, amely egy másik gépen vagy a Azure Portal elérhető Azure Cloud Shell .Test connectivity to the source server by attempting to connect from a tool such as the MySQL command line hosted on another machine or from the Azure Cloud Shell available in the Azure portal.

    Ha a szervezete szigorú biztonsági házirendekkel rendelkezik, és nem engedélyezi az összes IP-címet a forráskiszolgálón az Azure-ból a forráskiszolgálóról való kommunikáció engedélyezéséhez, az alábbi parancs segítségével meghatározhatja a Azure Database for MariaDB-kiszolgáló IP-címét.If your organization has strict security policies and won't allow all IP addresses on the source server to enable communication from Azure to your source server, you can potentially use the below command to determine the IP address of your Azure Database for MariaDB server.

    1. Jelentkezzen be a Azure Database for MariaDB egy olyan eszközzel, mint a MySQL parancssor.Sign in to your Azure Database for MariaDB using a tool like MySQL command line.

    2. Hajtsa végre az alábbi lekérdezést.Execute the below query.

      mysql> SELECT @@global.redirect_server_host;
      

      Néhány példa a kimenetre:Below is some sample output:

      +-----------------------------------------------------------+
      | @@global.redirect_server_host                             |
      +-----------------------------------------------------------+
      | e299ae56f000.tr1830.westus1-a.worker.database.windows.net |
       +-----------------------------------------------------------+
      
    3. Kilépés a MySQL parancssorból.Exit from the MySQL command line.

    4. Futtassa az alábbi parancsot a ping segédprogramban az IP-cím lekéréséhez.Execute the below in the ping utility to get the IP address.

      ping <output of step 2b>
      

      Például:For example:

      C:\Users\testuser> ping e299ae56f000.tr1830.westus1-a.worker.database.windows.net
      Pinging tr1830.westus1-a.worker.database.windows.net (**11.11.111.111**) 56(84) bytes of data.
      
    5. Konfigurálja úgy a forráskiszolgáló tűzfalszabályok beállításait, hogy az előző lépés a 3306-es porton lévő, kiszolgált IP-címet tartalmazza.Configure your source server's firewall rules to include the previous step's outputted IP address on port 3306.

    Megjegyzés

    Ez az IP-cím karbantartási/üzembe helyezési műveletek miatt változhat.This IP address may change due to maintenance/deployment operations. Ez a kapcsolódási módszer csak olyan ügyfelek számára érhető el, akik nem engedhetik meg a 3306-es porton az összes IP-cím engedélyezését.This method of connectivity is only for customers who cannot afford to allow all IP address on 3306 port.

  3. A bináris naplózás bekapcsolása.Turn on binary logging.

    Ha szeretné megtekinteni, hogy engedélyezve van-e a bináris naplózás az elsődleges számítógépen, írja be a következő parancsot:To see if binary logging is enabled on the primary, enter the following command:

    SHOW VARIABLES LIKE 'log_bin';
    

    Ha a változó log_bin visszaadja az értéket ON , a bináris naplózás engedélyezve van a kiszolgálón.If the variable log_bin returns the value ON, binary logging is enabled on your server.

    Ha log_bin az értéket adja vissza OFF , szerkessze a My. cnf fájlt úgy, hogy az log_bin=ON bekapcsolja a bináris naplózást.If log_bin returns the value OFF, edit the my.cnf file so that log_bin=ON turns on binary logging. Indítsa újra a kiszolgálót a módosítás érvénybe léptetéséhez.Restart the server to make the change take effect.

  4. A forráskiszolgáló beállításainak konfigurálása.Configure source server settings.

    Felhőbe irányuló replikálás megköveteli lower_case_table_names , hogy a paraméter konzisztens legyen a forrás-és a replika-kiszolgálók között.Data-in Replication requires the parameter lower_case_table_names to be consistent between the source and replica servers. A lower_case_table_names paraméter 1 alapértelmezett értéke Azure Database for MariaDB.The lower_case_table_names parameter is set to 1 by default in Azure Database for MariaDB.

    SET GLOBAL lower_case_table_names = 1;
    
  5. Hozzon létre egy új replikációs szerepkört, és állítson be engedélyeket.Create a new replication role and set up permissions.

    Hozzon létre egy olyan felhasználói fiókot a forráskiszolgálón, amely replikációs jogosultságokkal van konfigurálva.Create a user account on the source server that's configured with replication privileges. Az SQL-parancsok vagy a MySQL Workbench használatával hozhat létre fiókot.You can create an account by using SQL commands or MySQL Workbench. Ha az SSL-sel való replikálást tervezi, ezt a felhasználói fiók létrehozásakor kell megadnia.If you plan to replicate with SSL, you must specify this when you create the user account.

    Ha szeretné megtudni, hogyan adhat hozzá felhasználói fiókokat a forráskiszolgálón, tekintse meg a MariaDB dokumentációját.To learn how to add user accounts on your source server, see the MariaDB documentation.

    Az alábbi parancsokkal az új replikációs szerepkör bármely gépről elérheti a forrást, nem csak a forrást futtató gépet.By using the following commands, the new replication role can access the source from any machine, not just the machine that hosts the source itself. Ehhez a hozzáféréshez a @ (z) "%" syncuser kell megadnia a parancsban a felhasználó létrehozásához.For this access, specify syncuser@'%' in the command to create a user.

    A MariaDB-dokumentációval kapcsolatos további tudnivalókért tekintse meg a fiókok nevének megadásávalfoglalkozó témakört.To learn more about MariaDB documentation, see specifying account names.

    SQL-parancsSQL command

    • Replikáció SSL használatávalReplication with SSL

      Ha az SSL használatát szeretné megkövetelni az összes felhasználói kapcsolathoz, adja meg a következő parancsot egy felhasználó létrehozásához:To require SSL for all user connections, enter the following command to create a user:

      CREATE USER 'syncuser'@'%' IDENTIFIED BY 'yourpassword';
      GRANT REPLICATION SLAVE ON *.* TO ' syncuser'@'%' REQUIRE SSL;
      
    • Replikáció SSL nélkülReplication without SSL

      Ha az SSL nem szükséges minden kapcsolathoz, adja meg a következő parancsot egy felhasználó létrehozásához:If SSL isn't required for all connections, enter the following command to create a user:

      CREATE USER 'syncuser'@'%' IDENTIFIED BY 'yourpassword';
      GRANT REPLICATION SLAVE ON *.* TO ' syncuser'@'%';
      

    MySQL WorkbenchMySQL Workbench

    A MySQL Workbench replikációs szerepkörének létrehozásához a felügyelet ablaktáblán válassza a felhasználók és jogosultságok lehetőséget.To create the replication role in MySQL Workbench, in the Management pane, select Users and Privileges. Ezután válassza a fiók hozzáadása lehetőséget.Then select Add Account.

    Felhasználók és jogosultságok

    Adjon meg egy felhasználónevet a bejelentkezési név mezőben.Enter a username in the Login Name field.

    Felhasználó szinkronizálása

    Válassza ki a felügyeleti szerepkörök panelt, majd a globális jogosultságok listájában válassza ki a replikálási Slave elemet.Select the Administrative Roles panel, and then in the list of Global Privileges, select Replication Slave. A replikációs szerepkör létrehozásához kattintson az alkalmaz gombra.Select Apply to create the replication role.

    Replikálási Slave

  6. A forráskiszolgáló beállítása írásvédett módra.Set the source server to read-only mode.

    Az adatbázisok kiírása előtt a kiszolgálót csak olvasható módban kell elhelyezni.Before you dump a database, the server must be placed in read-only mode. Amíg csak olvasható módban van, a forrás nem dolgozhat fel írási tranzakciókat.While in read-only mode, the source can't process any write transactions. Az üzleti hatás elkerülése érdekében ütemezze a csak olvasási időszakot egy off-Peak idő alatt.To help avoid business impact, schedule the read-only window during an off-peak time.

    FLUSH TABLES WITH READ LOCK;
    SET GLOBAL read_only = ON;
    
  7. Az aktuális bináris naplófájl nevének és eltolásának beolvasása.Get the current binary log file name and offset.

    Az aktuális bináris naplófájl nevének és eltolásának meghatározásához futtassa a parancsot show master status .To determine the current binary log file name and offset, run the command show master status.

    show master status;
    

    Az eredmények az alábbi táblázathoz hasonlóak:The results should be similar to the following table:

    Fő állapot eredményei

    Jegyezze fel a bináris fájl nevét, mert a későbbi lépésekben lesz használva.Note the binary file name, because it will be used in later steps.

  8. A GTID pozíciójának beolvasása (nem kötelező, a GTID való replikáláshoz szükséges).Get the GTID position (optional, needed for replication with GTID).

    Futtassa a függvényt a BINLOG_GTID_POS megfelelő BinLog-fájlnév és ELTOLÁS GTID pozíciójának lekéréséhez.Run the function BINLOG_GTID_POS to get the GTID position for the corresponding binlog file name and offset.

    select BINLOG_GTID_POS('<binlog file name>', <binlog offset>);
    

A forráskiszolgáló kiírása és visszaállításaDump and restore the source server

  1. A forráskiszolgáló összes adatbázisának kiírása.Dump all the databases from the source server.

    A mysqldump használatával az összes adatbázist kiírja a forráskiszolgálóról.Use mysqldump to dump all the databases from the source server. Nem szükséges a MySQL-függvénytár és a tesztelési könyvtár kiírása.It isn't necessary to dump the MySQL library and test library.

    További információ: memóriakép és visszaállítás.For more information, see Dump and restore.

  2. A forráskiszolgáló beállítása írási/olvasási módra.Set the source server to read/write mode.

    Az adatbázis kiírása után állítsa vissza a forrás MariaDB-kiszolgálót olvasási/írási módra.After the database has been dumped, change the source MariaDB server back to read/write mode.

    SET GLOBAL read_only = OFF;
    UNLOCK TABLES;
    
  3. Állítsa vissza a memóriakép fájlját az új kiszolgálóra.Restore the dump file to the new server.

    Állítsa vissza a memóriakép-fájlt a Azure Database for MariaDB szolgáltatásban létrehozott kiszolgálóra.Restore the dump file to the server created in the Azure Database for MariaDB service. A dump-fájlok MariaDB-kiszolgálóra való visszaállításával kapcsolatban lásd: dump & Restore .See Dump & Restore for how to restore a dump file to a MariaDB server.

    Ha a memóriakép nagy méretű, töltse fel azt egy Azure-beli virtuális gépre, amely a replika-kiszolgálóval azonos régióban található.If the dump file is large, upload it to a VM in Azure within the same region as your replica server. Állítsa vissza a Azure Database for MariaDB-kiszolgálóra a virtuális gépről.Restore it to the Azure Database for MariaDB server from the VM.

  1. Állítsa be a forráskiszolgáló-kiszolgálót.Set the source server.

    Az összes felhőbe irányuló replikálás függvényt tárolt eljárások hajtják végre.All Data-in Replication functions are done by stored procedures. Az összes eljárást felhőbe irányuló replikálás tárolt eljárásokbantalálja.You can find all procedures at Data-in Replication Stored Procedures. A tárolt eljárások a MySQL-rendszerhéjban vagy a MySQL Workbenchben is futtathatók.Stored procedures can be run in the MySQL shell or MySQL Workbench.

    Két kiszolgáló összekapcsolásához és a replikáció megkezdéséhez jelentkezzen be a cél másodpéldány-kiszolgálóra az Azure DB for MariaDB szolgáltatásban.To link two servers and start replication, sign in to the target replica server in the Azure DB for MariaDB service. Ezután állítsa a külső példányt forráskiszolgálóként a mysql.az_replication_change_master vagy mysql.az_replication_change_master_with_gtid tárolt eljárás használatával a MariaDB-kiszolgálóhoz készült Azure-adatbázison.Next, set the external instance as the source server by using the mysql.az_replication_change_master or mysql.az_replication_change_master_with_gtid stored procedure on the Azure DB for MariaDB server.

    CALL mysql.az_replication_change_master('<master_host>', '<master_user>', '<master_password>', 3306, '<master_log_file>', <master_log_pos>, '<master_ssl_ca>');
    

    vagyor

    CALL mysql.az_replication_change_master_with_gtid('<master_host>', '<master_user>', '<master_password>', 3306, '<master_gtid_pos>', '<master_ssl_ca>');
    
    • master_host: a forráskiszolgáló állomásnevemaster_host: hostname of the source server
    • master_user: a forráskiszolgáló felhasználónevemaster_user: username for the source server
    • master_password: a forráskiszolgáló jelszavamaster_password: password for the source server
    • master_log_file: bináris naplófájl neve a futtatásból show master statusmaster_log_file: binary log file name from running show master status
    • master_log_pos: a bináris napló pozíciója fut show master statusmaster_log_pos: binary log position from running show master status
    • master_gtid_pos: a GTID pozíciója fut select BINLOG_GTID_POS('<binlog file name>', <binlog offset>);master_gtid_pos: GTID position from running select BINLOG_GTID_POS('<binlog file name>', <binlog offset>);
    • master_ssl_ca: HITELESÍTÉSSZOLGÁLTATÓI tanúsítvány környezete.master_ssl_ca: CA certificate's context. Ha nem használ SSL-t, adjon meg egy üres karakterláncot. *If you're not using SSL, pass in an empty string.*

    * Javasoljuk, hogy a master_ssl_ca paramétert változóként adja át.*We recommend passing in the master_ssl_ca parameter as a variable. További információkért tekintse meg az alábbi példákat.For more information, see the following examples.

    PéldákExamples

    • Replikáció SSL használatávalReplication with SSL

      Hozza létre a változót a @cert következő parancsok futtatásával:Create the variable @cert by running the following commands:

      SET @cert = '-----BEGIN CERTIFICATE-----
      PLACE YOUR PUBLIC KEY CERTIFICATE\'S CONTEXT HERE
      -----END CERTIFICATE-----'
      

      Az SSL-sel történő replikáció beállítása a tartomány companya.com üzemeltetett forráskiszolgáló és a Azure Database for MariaDBban üzemeltetett replika-kiszolgáló között történik.Replication with SSL is set up between a source server hosted in the domain companya.com, and a replica server hosted in Azure Database for MariaDB. Ez a tárolt eljárás fut a replikán.This stored procedure is run on the replica.

      CALL mysql.az_replication_change_master('master.companya.com', 'syncuser', 'P@ssword!', 3306, 'mariadb-bin.000016', 475, @cert);
      
    • Replikáció SSL nélkülReplication without SSL

      Az SSL nélküli replikáció beállítása a tartomány companya.com üzemeltetett forráskiszolgáló és a Azure Database for MariaDBban üzemeltetett replika-kiszolgáló között történik.Replication without SSL is set up between a source server hosted in the domain companya.com, and a replica server hosted in Azure Database for MariaDB. Ez a tárolt eljárás fut a replikán.This stored procedure is run on the replica.

      CALL mysql.az_replication_change_master('master.companya.com', 'syncuser', 'P@ssword!', 3306, 'mariadb-bin.000016', 475, '');
      
  2. Replikáció elindítása.Start replication.

    A mysql.az_replication_start replikálás elindításához hívja meg a tárolt eljárást.Call the mysql.az_replication_start stored procedure to start replication.

    CALL mysql.az_replication_start;
    
  3. Replikáció állapotának bejelölése.Check replication status.

    A show slave status replikálási állapot megtekintéséhez hívja meg a parancsot a replika kiszolgálóján.Call the show slave status command on the replica server to view the replication status.

    show slave status;
    

    Ha Slave_IO_Running a és az Slave_SQL_Running állapotban van yes , és a értéke Seconds_Behind_Master , a 0 replikálás működik.If Slave_IO_Running and Slave_SQL_Running are in the state yes, and the value of Seconds_Behind_Master is 0, replication is working. Seconds_Behind_Master azt jelzi, hogy a replika milyen későn van.Seconds_Behind_Master indicates how late the replica is. Ha az érték nem 0 , akkor a replika frissíti a frissítéseket.If the value isn't 0, then the replica is processing updates.

  4. Frissítse a megfelelő kiszolgálói változókat az adatreplikálás biztonságosabbá tételéhez (csak a GTID nélküli replikáláshoz szükséges).Update the corresponding server variables to make data-in replication safer (required only for replication without GTID).

    A MariaDB-ben a natív replikálás korlátozása miatt sync_master_info a GTID-forgatókönyv nélkül kell beállítania és konfigurálnia sync_relay_log_info a replikálást.Because of a native replication limitation in MariaDB, you must set sync_master_info and sync_relay_log_info variables on replication without the GTID scenario.

    Ellenőrizze a replika kiszolgálójának sync_master_info és sync_relay_log_info változóinak ellenőrzését, és győződjön meg arról, hogy az adatreplikáció stabil, és állítsa be a változókat a következőre: 1 .Check your replica server's sync_master_info and sync_relay_log_info variables to make sure the data-in replication is stable, and set the variables to 1.

Egyéb tárolt eljárásokOther stored procedures

Replikáció leállításaStop replication

A forrás-és a replika kiszolgáló közötti replikáció leállításához használja a következő tárolt eljárást:To stop replication between the source and replica server, use the following stored procedure:

CALL mysql.az_replication_stop;

Replikációs kapcsolat eltávolításaRemove the replication relationship

A forrás-és a replika kiszolgáló közötti kapcsolat eltávolításához használja a következő tárolt eljárást:To remove the relationship between the source and replica server, use the following stored procedure:

CALL mysql.az_replication_remove_master;

A replikálási hiba kihagyásaSkip the replication error

A replikálási hibák kihagyásához és a replikáció engedélyezéséhez használja a következő tárolt eljárást:To skip a replication error and allow replication, use the following stored procedure:

CALL mysql.az_replication_skip_counter;

Következő lépésekNext steps

További információ a Azure Database for MariaDB felhőbe irányuló replikálásról .Learn more about Data-in Replication for Azure Database for MariaDB.