Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A MySQL-adatbázisok helyszíni környezetekből az Azure Database for MySQL-be való migrálásának értékelése kritikus fontosságú első lépés a zökkenőmentes és sikeres átállás biztosításához. Ez a cikk részletesen megvizsgálja az értékelési fázisban érintett főbb tényezőket és szempontokat. A szervezet céljaihoz igazodó megalapozott döntéseket hozhat a jelenlegi infrastruktúra kiértékelésével, a lehetséges kihívások azonosításával és az Azure felügyelt adatbázis-szolgáltatásainak előnyeinek megismerésével. Akár a teljesítmény javítására, a méretezhetőség javítására, akár a működési költségek csökkentésére törekszik, ez az útmutató a migrálási stratégia hatékony megtervezéséhez és végrehajtásához szükséges elemzéseket nyújtja.
Előfeltételek
Helyszíni MySQL migrálása az Azure Database for MySQL-be: Reprezentatív használati eset
Áttekintés
Mielőtt belevág egy MySQL-számítási feladat migrálásába, kellő gondossággal kell eljárni. Ez magában foglalja az adatok elemzését, az üzemeltetési környezetet és az alkalmazás számítási feladatait az Azure-beli célzóna megfelelő konfigurálásához és a hamarosan migrálható számítási feladatok üzemeltetéséhez való előkészítéséhez.
Korlátozások
Az Azure Database for MySQL a MySQL közösségi kiadás teljes körűen támogatott verziója, amely szolgáltatásként platformként fut. Az első értékelés során azonban van néhány korlátozás , amellyel megismerkedhet.
A legfontosabbak a következők:
A tárolómotor támogatása
InnoDB
ésMemory
csakKorlátozott
Privilege
támogatás (DBA
,SUPER
,DEFINER
)Letiltott adatkezelési utasítások (
SELECT ... INTO OUTFILE
,LOAD DATA INFILE
)Automatikus jelentős adatbázis-migrálás (5.6–5.7, 5.7–8.0)
A MySQL Server felhasználó által definiált függvények (UDF-k) használatakor az egyetlen működőképes üzemeltetési lehetőség az Azure-ban üzemeltetett virtuális gépek, mivel nem lehet feltölteni az összetevőt az
so
dll
Azure Database for MySQL-be.
Számos egyéb elem olyan üzemeltetési szempontok, amelyeket a rendszergazdáknak ismernie kell az operatív adatok számítási feladatainak életciklus-kezelésének részeként. Ez az útmutató a Migrálás utáni kezelés szakasz számos működési aspektusát ismerteti.
MySQL-verziók
A MySQL 1995-től kezdve gazdag előzményei vannak. Azóta széles körben használt adatbázis-kezelő rendszer lett belőle. Az Azure Database for MySQL a MySQL 5.6-os verziójának támogatásával indult, és az 5.7-es és a közelmúltban a 8.0-s verzióra vált. Az Azure Database for MySQL legújabb verziójának támogatásához tekintse meg a Támogatott Azure Database for MySQL-kiszolgálóverziókat. A Migrálás utáni kezelés szakaszban áttekintjük, hogyan történik a frissítések (például az 5.7.20-as és az 5.7.21-es verzió) alkalmazása az Azure-beli MySQL-példányokra.
Feljegyzés
Az 5.x-ről a 8.0-ra ugrás nagyrészt a MySQL Oracle-felvásárlásának köszönhető. A MySQL-előzményekről a MySQL wikilapján olvashat bővebben.
A forrás MySQL-verzió ismerete elengedhetetlen. A rendszert használó alkalmazások az adott verzióra jellemző adatbázis-objektumokat és funkciókat használhatják. Az adatbázisok alacsonyabb verzióra való migrálása kompatibilitási problémákat és funkcióvesztést okozhat. Azt is javasoljuk, hogy az adatokat és az alkalmazáspéldányt alaposan tesztelje, mielőtt újabb verzióra migrálna, mivel a bevezetett funkciók megszakíthatják az alkalmazást.
Példák az áttelepítési útvonalra és a verzióra:
5.6: TIMESTAMP oszlop az ezredmásodpercek és a teljes szöveges keresés megfelelő tárolásához
5.7: Natív JSON-adattípus támogatása
8.0: NoSQL-dokumentumtár, atomi és összeomlásbiztos DDL- és JSON-táblafüggvények támogatása
Feljegyzés
A MySQL 5.6 2021 februárjában elveszíti az általános támogatást. A MySQL számítási feladatainak az 5.7-es vagy újabb MySQL-verzióra kell migrálniuk.
A MySQL-kiszolgáló verziójának ellenőrzése:
SHOW VARIABLES LIKE "%version%";
Adatbázis-tárolómotorok
Az Azure Database for MySQL csak az InnoDB- és memóriaadatbázis-tárolómotorokat támogatja. Más tárolómotorokat, például a MyISAM-et, egy támogatott tárolómotorba kell migrálni. A MyISAM és az InnoDB közötti különbségek az üzemeltetési funkciók és a teljesítménykimenet. A magasabb szintű táblák és sémastruktúra általában nem változik a motorok között, de az index és a tábla oszloptípusai tárolási és teljesítménybeli okokból változhatnak. Bár az InnoDB-ről ismert, hogy nagy adatfájlméretekkel rendelkezik, ezeket a tárolási adatokat az Azure Database for MySQL szolgáltatás kezeli.
Migrálás a MyISAM-ről az InnoDB-be
A MyISAM-adatbázist és a táblákat InnoDB-táblákká kell konvertálni. Az átalakítás után az alkalmazásokat tesztelni kell a kompatibilitás és a teljesítmény szempontjából. A legtöbb esetben a teszteléshez újra kell adni a táblát, és DDL-utasításokon keresztül módosítani kell a céltároló motort. Nem valószínű, hogy ezt a módosítást a migrálás során kell végrehajtani, mivel az az Azure-cél séma létrehozása során következik be. További részletekért tekintse át a konvertáló táblák fejlesztőinek dokumentációját a MySQL webhelyén.
A táblázat hasznos információinak megkereséséhez használja ezt a lekérdezést:
SELECT
tab.table_schema,
tab.table_name,
tab.engine as engine_type,
tab.auto_increment,
tab.table_rows,
tab.create_time,
tab.update_time,
tco.constraint_type
FROM information_schema.tables tab
LEFT JOIN information_schema.table_constraints tco
ON (tab.table_schema = tco.table_schema
AND tab.table_name = tco.table_name
)
WHERE
tab.table_schema NOT IN ('mysql', 'information_schema', 'performance_
schema', 'sys')
AND tab.table_type = 'BASE TABLE';
Feljegyzés
Ha több adatbázison futtat lekérdezést INFORMATION_SCHEMA, az hatással lehet a teljesítményre. Futtatás alacsony használati időszakokban.
Ha egy táblát a MyISAM-ből InnoDB-vé szeretne konvertálni, futtassa a következőket:
ALTER TABLE {table\_name} ENGINE=InnoDB;
Feljegyzés
Ez a konverziós módszer zárolja a táblát, és minden alkalmazás megvárhatja a művelet befejezését. A táblazárolás miatt az adatbázis rövid ideig offline állapotban jelenik meg.
Ehelyett a tábla létrehozható ugyanazzal a szerkezettel, de egy másik tárolómotorral. A létrehozás után másolja a sorokat az új táblába:
INSERT INTO {table\_name} SELECT * FROM {myisam\_table} ORDER BY {primary\_key\_columns}
Feljegyzés
Ahhoz, hogy ez a módszer sikeres legyen, az eredeti táblát törölni kell, majd át kell nevezni az új táblát. Ez a tevékenység rövid állásidőt okoz.
Adatbázisadatok és objektumok
Az adatok az adatbázis-migrálás egyik összetevője. Az adatbázist támogató objektumokat migrálni és ellenőrizni kell, hogy az alkalmazások továbbra is megbízhatóan fussanak.
Az alábbi lista az áttelepítés előtt és után leltárba vegye az elemeket:
Táblák (séma)
Elsődleges kulcsok, idegen kulcsok
Indexek
Függvények
Eljárások
Triggerek
Megjelenítések
Felhasználó által definiált függvények
A MySQL lehetővé teszi a külső kódot hívó függvények használatát. Sajnos a felhasználó által definiált függvényeket (UDF-eket) külső kóddal használó adatterhelések nem migrálhatók az Azure Database for MySQL-be. Ennek az az oka, hogy a szükséges MySQL-függvény háttérrendszere vagy dll-kódja nem tölthető fel az Azure-kiszolgálóra.
Futtassa a következő lekérdezést a telepített UDF-ek megkereséséhez:
SELECT * FROM mysql.func;
Forrásrendszerek
A migrálás előkészítése a forrásrendszertől és a helyétől függően változhat. Az adatbázis-objektumokon kívül fontolja meg, hogyan szerezheti be az adatokat a forrásrendszerből a célrendszerbe. Az adatok migrálása kihívást jelenthet, ha a tűzfalak és más hálózati összetevők a forrás és a cél között vannak.
Emellett az adatok interneten keresztüli áthelyezése lassabb is lehet, mint dedikált kapcsolatcsoportok használata az Azure-ba. Ezért ha sok gigabájtot, terabájtot és petabájtnyi adatot helyez át, érdemes lehet ExpressRoute-kapcsolatot beállítani a forráshálózat és az Azure-hálózat között.
Ha az ExpressRoute már létezik, valószínű, hogy más alkalmazások is használják a kapcsolatot. Ha egy meglévő útvonalon végez migrálást, az megterhelheti a hálózati átviteli sebességet, és jelentős teljesítménycsökkenést okozhat mind a migrálás, mind a hálózatot használó egyéb alkalmazások esetében.
Végül a lemezterületet ki kell értékelni. Nagy adatbázis exportálásakor vegye figyelembe az adatok méretét. Győződjön meg arról, hogy a rendszer, ahol az eszköz fut, és végső soron az exportálási hely elegendő lemezterülettel rendelkezik az exportálási művelet végrehajtásához.
Felhőszolgáltatók
Az adatbázisok felhőszolgáltatókból, például az Amazon Web Servicesből (AWS) való migrálása további hálózati konfigurációs lépést igényelhet a felhőben üzemeltetett MySQL-példányok eléréséhez. A migrálási eszközökhöz, például a Data Migration Serviceshez, külső IP-tartományból kell hozzáférést kérni, és más módon blokkolva lehet.
Helyszíni
A felhőszolgáltatókhoz hasonlóan, ha a MySQL-adatterhelés tűzfalak vagy más hálózati biztonsági rétegek mögött található, létre kell hozni egy útvonalat a helyszíni példány és az Azure Database for MySQL között.
Eszközök
A MySQL-adatterhelések és -környezetek értékeléséhez számos eszköz és módszer használható. Minden eszköz különböző értékelési és migrálási funkciókat és funkciókat biztosít. Az útmutató részeként áttekintjük a MySQL-adatterhelések értékeléséhez leggyakrabban használt eszközöket.
Az Azure migrálása
Bár az Azure Migrate nem támogatja közvetlenül a MySQL-adatbázis számítási feladatainak migrálását, akkor is használható, ha a rendszergazdák nem tudják, hogy a felhasználók és alkalmazások milyen adatokat használnak fel, akár virtuális, akár hardveralapú gépen vannak tárolva. A függőségelemzés úgy végezhető el, hogy telepíti és futtatja a monitorozási ügynököt a MySQL-számítási feladatot futtató gépen. Az ügynök egy megadott időszakban, például egy hónapban gyűjti az adatokat. A függőségi adatok elemezhetők az adatbázissal létesített ismeretlen kapcsolatok megkereséséhez. A kapcsolati adatok segíthetnek azonosítani azokat az alkalmazástulajdonosokat, amelyeket értesíteni kell a függőben lévő migrálásról.
Az alkalmazások és a felhasználói kapcsolati adatok függőségelemzése mellett az Azure Migrate a Hyper-V, a VMware vagy a fizikai kiszolgálók elemzésére is használható, hogy kihasználtsági mintákat biztosítson az adatbázis számítási feladataihoz, hogy a megfelelő célkörnyezetet javasolhassa.
Telgraf Linuxhoz
A Linux-számítási feladatok a Microsoft Monitoring Agent (MMA) használatával gyűjthetnek adatokat a virtuális és fizikai gépeken. Emellett fontolja meg a Telegraf-ügynök és a beépülő modulok széles skálájának használatát a teljesítménymetrikák gyűjtéséhez.
Szolgáltatásszintek
Az értékelési adatokkal (CPU, memória, tárolás stb.) ellátott migrálási felhasználó következő választása, hogy eldöntse, melyik Azure Database for MySQL tarifacsomagot érdemes használnia.
Jelenleg három szint létezik:
Alapszintű: Könnyű számítási és I/O-teljesítményt igénylő számítási feladatok.
Általános célú: A legtöbb olyan üzleti számítási feladat, amely kiegyensúlyozott számítást és memóriát igényel skálázható I/O-átviteli sebességgel.
Memóriaoptimalizált: Nagy teljesítményű adatbázis-számítási feladatok, amelyek memórián belüli teljesítményt igényelnek a gyorsabb tranzakciófeldolgozáshoz és a nagyobb egyidejűséghez.
A rétegdöntést az adatterhelés RTO- és RPO-követelményei befolyásolhatják. Ha az adatterhelés több mint 4 TB tárterületet igényel, további lépésre van szükség. Tekintse át és válassza ki azt a régiót, amely legfeljebb 16 TB tárterületet támogat .
A döntéshozatal általában a tárolásra és az IOPS-ra, illetve a másodpercenkénti bemeneti/kimeneti műveletekre összpontosít. Így a célrendszernek mindig legalább annyi tárhelyre van szüksége, mint a forrásrendszerben. Emellett mivel az IOPS 3/GB-os, fontos, hogy megfeleljen az IOPS-eknek a végső tárolóméretnek.
Tényezők | Szint |
---|---|
Basic | Fejlesztőgép, nincs szükség nagy teljesítményre 1 TB-nál kisebb tárterülettel. |
Általános célú | Az IOPS-nak többre van szüksége, mint amennyit az alapszint biztosít, de a 16 TB-nál kisebb tárhelyhez és a 4 GB-nál kevesebb memóriához. |
Memóriaoptimalizált | Nagy memóriát vagy nagy gyorsítótárat és pufferrel kapcsolatos kiszolgálókonfigurációt használó adatterhelések, például magas egyidejűségi innodb_buffer_pool_instances, nagy BLOB-méretek, sok replikációs példányt tartalmazó rendszerek. |
Költségek
A WWI a teljes WWI MySQL-adatterhelés kiértékelése után megállapította, hogy legalább 4 virtuális magra és 20 GB memóriára és legalább 100 GB tárterületre lesz szükségük 450 IOPS-kapacitással. A 450 IOPS-követelmény miatt legalább 150 GB tárterületet kell lefoglalniuk az Azure Database for MySQL IOPP-foglalási módszer miatt. Emellett a kiépített kiszolgáló tárterületének legalább 100%-át biztonsági mentési tárként és egy olvasási replikaként kell használniuk. Nem számítanak 5 GB-nál nagyobb kimenő kimenő forgalomra.
Az Azure Database for MySQL díjszabási kalkulátorával a WWI meg tudta határozni az Azure Database for MySQL-példány költségeit. 2020. 09. 09-étől a teljes tulajdonosi költség (TCO) megjelenik a WWI konferenciaadatbázis alábbi táblázatában.
Erőforrás | Leírás | Mennyiség | Költség |
---|---|---|---|
Számítás (általános célú) | 4 virtuális mag, 20 GB | 1 @ 0,351 USD/óra | $3074.76 / yr |
Tárolás | 5 GB | 12 x 150 @ 0,115 $ | $207 / yr |
Biztonsági mentés | A kiépített tároló legfeljebb 100%-a | A kiépített kiszolgálói tárterület 100%-ig nem jár többletköltséggel | $0.00 / yr |
Replika olvasása | 1 másodperces régióreplika | számítás + tárolás | $3281.76 / yr |
Hálózat | < 5 GB/hó kimenő forgalom | Ingyenes | |
Teljes | $6563.52 / yr |
A kezdeti költségek áttekintése után a WWI CIO-ja megerősítette, hogy három évnél hosszabb ideig vannak az Azure-ban. Úgy döntöttek, hogy 3 éves tartalékpéldányokat használnak további ~4K/yr megtakarításhoz.
Erőforrás | Leírás | Mennyiség | Költség |
---|---|---|---|
Számítás (általános célú) | 4 virtuális mag | 1 @ 0,1375 USD/óra | $1204.5 / yr |
Tárolás | 5 GB | 12 x 150 @ 0,115 $ | $207 / yr |
Biztonsági mentés | A kiépített tároló legfeljebb 100%-a | A kiépített kiszolgálói tárterület 100%-ig nem jár többletköltséggel | $0.00 / yr |
Hálózat | < 5 GB/hó kimenő forgalom | Ingyenes | |
Replika olvasása | 1 másodperces régióreplika | számítás + tárolás | $1411.5 / yr |
Teljes | $2,823 / yr |
Ahogy a fenti táblázat is mutatja, a biztonsági mentéseket, a hálózati kimenő forgalmat és az olvasási replikákat a teljes tulajdonosi költség (TCO) figyelembe kell venni. Mivel több adatbázist adnak hozzá, a létrehozott tároló- és hálózati forgalom lenne az egyetlen további költségalapú tényező, amelyet figyelembe kell venni.
Feljegyzés
A fenti becslések nem tartalmazzák az alkalmazásrétegek ExpressRoute-, Azure-alkalmazás-átjáró-, Azure Load Balancer- vagy App Service-költségeit.
A fenti díjszabás bármikor változhat, és régiótól függően változhat.
Alkalmazásokkal kapcsolatos következmények
Az Azure Database for MySQL-be való áttéréskor a szoftvercsatornák rétege (SSL) alapú kommunikációvá alakítása valószínűleg az alkalmazások egyik legjelentősebb változása. Az SSL alapértelmezés szerint engedélyezve van az Azure Database for MySQL-ben, és valószínű, hogy a helyszíni alkalmazás és az adatterhelés nincs beállítva a MySQL-hez való SSL-csatlakozáshoz. Ha engedélyezve van, az SSL-használat többletterhelést ad a feldolgozáshoz, ezért figyelni kell.
Feljegyzés
Bár az SSL alapértelmezés szerint engedélyezve van, letilthatja azt.
Kövesse az alkalmazás SSL-kapcsolatának konfigurálására vonatkozó tevékenységeit , hogy biztonságosan csatlakozzon az Azure Database for MySQL-hez az alkalmazás újrakonfigurálásához, hogy támogassa ezt az erős hitelesítési útvonalat.
Végül módosítsa a kiszolgáló nevét az alkalmazás kapcsolati sztring, vagy váltson a DNS-re, hogy az új Azure Database for MySQL-kiszolgálóra mutasson.
WWI-forgatókönyv
A WWI úgy kezdte meg az értékelést, hogy információkat gyűjt a MySQL-adattulajdonról, ahogy az az alábbi táblázatban is látható.
Név | Forrás | Db-motor | Méret | IOPS | Verzió | Tulajdonos | Leállás |
---|---|---|---|---|---|---|---|
WwwDB | AWS (PaaS) | InnoDB | 1 GB | 150 | 5.7 | Marketing osztály | 1 óra |
BlogDB | AWS (PaaS) | InnoDB | 1 GB | 100 | 5.7 | Marketing osztály | 4 óra |
ConferenceDB | Helyszíni | InnoDB | 5 GB | 50 | 5,5 | Értékesítési részleg | 4 óra |
CustomerDB | Helyszíni | InnoDB | 10 GB | 75 | 5,5 | Értékesítési részleg | 2 óra |
SalesDB | Helyszíni | InnoDB | 20 GB | 75 | 5,5 | Értékesítési részleg | 1 óra |
Minden adatbázis-tulajdonossal felvette a kapcsolatot az elfogadható állásidő meghatározásához. A kiválasztott tervezési és migrálási módszer az adatbázis elfogadható állásidején alapult.
Az első fázisban a WWI kizárólag a ConferenceDB-adatbázisra összpontosított. A csapatnak szüksége volt a migrálási felületre az adatterhelések migrálásához. A ConferenceDB-adatbázist az egyszerű adatbázis-struktúra és a nagy elfogadható állásidő miatt választották ki. Az adatbázis migrálása után a csapat az alkalmazás biztonságos Azure-célzónába való migrálására összpontosított.
Értékelési ellenőrzőlista
Tesztelje a számítási feladat sikeres futtatását a célrendszeren.
Győződjön meg arról, hogy a megfelelő hálózati összetevők vannak a migráláshoz.
Az adatterhelési erőforrás követelményeinek megismerése.
A teljes költség becslése.
Ismerje meg az állásidőre vonatkozó követelményeket.
Készüljön fel az alkalmazás módosítására.