Megosztás a következőn keresztül:


Nagy méretű adatbázisok migrálása az Azure Database for MySQL-be mydumper/myloader használatával

Figyelemfelhívás

Ez a cikk az End Of Life (EOL) állapotú Linux-disztribúcióra, a CentOS-ra hivatkozik. Ennek megfelelően fontolja meg a használatot és a tervezést. További információ: CentOS End Of Life útmutató.

A következőkre vonatkozik: Azure Database for MySQL – Egykiszolgálós Azure Database for MySQL – Rugalmas kiszolgáló

Az Azure Database for MySQL egy felügyelt szolgáltatás, amellyel magas rendelkezésre állású MySQL-adatbázisokat futtathat, kezelhet és skálázhat a felhőben. Az 1 TB-nál nagyobb MySQL-adatbázisok Azure Database for MySQL-be való migrálásához fontolja meg az olyan közösségi eszközök használatát, mint a mydumper/myloader, amelyek a következő előnyöket biztosítják:

  • Párhuzamosság, a migrálási idő csökkentése érdekében.
  • Jobb teljesítmény, elkerülve a drága karakterkészletek konverziós rutinjait.
  • Egy kimeneti formátum, amely külön fájlokat tartalmaz táblákhoz, metaadatokhoz stb., így könnyen megtekinthetők és elemezhetők az adatok. Konzisztencia az összes szál pillanatképének karbantartásával.
  • Pontos elsődleges és replikanapló-pozíciók.
  • Egyszerű felügyelet, mivel támogatják a Perl-kompatibilis reguláris kifejezéseket (PCRE) az adatbázis- és táblabefoglalások és -kizárások megadásához.
  • A séma és az adatok együtt haladnak. Nem kell külön kezelnie, mint más logikai migrálási eszközöket.

Ez a rövid útmutató bemutatja, hogyan telepíthet, menthet és állíthat vissza MySQL-adatbázisokat a mydumper/myloader használatával.

Előfeltételek

Mielőtt megkezdené a MySQL-adatbázis migrálását, a következőt kell elvégeznie:

  1. Azure Database for MySQL-kiszolgáló létrehozása az Azure Portal használatával.

  2. Hozzon létre egy Linux rendszerű Azure-beli virtuális gépet az Azure Portal (lehetőleg Ubuntu) használatával.

    Feljegyzés

    Az eszközök telepítése előtt vegye figyelembe a következő szempontokat:

    • Ha a forrás helyszíni, és nagy sávszélességű kapcsolattal rendelkezik az Azure-hoz (az ExpressRoute használatával), érdemes lehet telepíteni az eszközt egy Azure-beli virtuális gépre.
    • Ha kihívást jelent a forrás és a cél közötti sávszélesség, fontolja meg a mydumper telepítését a forrás és a myloader közelében a célkiszolgáló közelében. Az Azcopy eszközökkel áthelyezheti az adatokat a helyszíni vagy más felhőalapú megoldásokból az Azure-ba.
  3. Telepítse a mysql-ügyfelet, és hajtsa végre a következő lépéseket:

  • Frissítse a csomagindexet a Linuxot futtató Azure-beli virtuális gépen az alábbi paranccsal:
sudo apt update
  • Telepítse a mysql-ügyfélcsomagot a következő parancs futtatásával:
sudo apt install mysql-client

A mydumper/myloader telepítése

A mydumper/myloader telepítéséhez hajtsa végre az alábbi lépéseket.

  1. Az operációs rendszer disztribúciójától függően töltse le a mydumper/myloader megfelelő csomagját, és futtassa a következő parancsot:

    wget https://github.com/maxbube/mydumper/releases/download/v0.10.1/mydumper_0.10.1-2.$(lsb_release -cs)_amd64.deb
    

    Feljegyzés

    A $(lsb_release -cs) segít azonosítani a disztribúciót.

  2. A mydumper .deb csomagjának telepítéséhez futtassa a következő parancsot:

    sudo dpkg -i mydumper_0.10.1-2.$(lsb_release -cs)_amd64.deb
    

    Tipp.

    A csomag telepítéséhez használt parancs a linuxos disztribúciótól függően eltérő lesz, mivel a telepítők eltérőek. A mydumper/myloader a következő disztribúciókhoz érhető el: Fedora, RedHat, Ubuntu, Debian, CentOS, openSUSE és MacOSX. További információ: Mydumper telepítése

Biztonsági mentés létrehozása a mydumper használatával

  • Ha a mydumper használatával szeretne biztonsági másolatot készíteni, futtassa a következő parancsot:

    mydumper --host=<servername> --user=<username> --password=<Password> --outputdir=./backup --rows=100000 --compress --build-empty-files --threads=16 --compress-protocol --trx-consistency-only --ssl  --regex '^(<Db_name>\.)' -L mydumper-logs.txt
    

Ez a parancs a következő változókat használja:

  • --host: A gazdagép, amelyhez csatlakozni szeretne

  • --user: Felhasználónév a szükséges jogosultságokkal

  • --password: Felhasználói jelszó

  • --sorok: Próbálja meg felosztani a táblákat ebből a sok sorból álló adattömbökre

  • --outputdir: A kimeneti fájlok memóriaképének könyvtára a következőre:

  • --regex: Reguláris kifejezés az adatbázis-egyeztetéshez.

  • --trx-konzisztencia-only: Csak tranzakciós konzisztencia

  • --threads: A használandó szálak száma, alapértelmezett 4. Javasolt a számítógép virtuális magjának 2x-ével egyenlő érték használata.

    Feljegyzés

    Az egyéb lehetőségekről a mydumperrel használható további információkért futtassa a következő parancsot: mydumper --help . További részletekért lásd: mydumper\myloader dokumentáció
    Ha egyszerre több adatbázist szeretne kiképezni, módosíthatja a regex változót a következő példában látható módon: regex '^(DbName1.|DbName2.)

Adatbázis visszaállítása a myloaderrel

  • A mydumperrel biztonsági másolatot készítő adatbázis visszaállításához futtassa a következő parancsot:

    myloader --host=<servername> --user=<username> --password=<Password> --directory=./backup --queries-per-transaction=500 --threads=16 --compress-protocol --ssl --verbose=3 -e 2>myloader-logs.txt
    

Ez a parancs a következő változókat használja:

  • --host: A gazdagép, amelyhez csatlakozni szeretne
  • --user: Felhasználónév a szükséges jogosultságokkal
  • --password: Felhasználói jelszó
  • --directory: A biztonsági mentés tárolási helye.
  • --queries-per-transaction: 500-nál nem nagyobb érték beállításának ajánlása
  • --threads: A használandó szálak száma, alapértelmezett 4. Ajánlott olyan érték használata, amely a számítógép virtuális magjának 2x-ével egyenlő

Tipp.

A myloaderrel használható egyéb lehetőségekről a következő parancs futtatásával tájékozódhat: myloader --help

Az adatbázis visszaállítása után mindig ajánlott ellenőrizni a forrás és a céladatbázisok közötti adatkonzisztenciát.

Feljegyzés

Küldje el az itt található mydumper/myloader eszközökkel kapcsolatos problémákat vagy visszajelzéseket.