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.
Ez a cikk megfontolandó szempontokat és irányelveket tartalmaz a kiszolgálóparaméterek konfigurálásához a rugalmas Azure Database for MySQL-kiszolgálón.
Feljegyzés
Ez a cikk a Microsoft által már nem használt rabszolga kifejezésre mutató hivatkozásokat tartalmaz. Ha a kifejezés el lesz távolítva a szoftverből, eltávolítjuk ebből a cikkből.
Mik azok a kiszolgálóparaméterek?
A MySQL-motor számos kiszolgálóparamétert (más néven változót) biztosít, amelyekkel konfigurálhatja és hangolhatja a motor viselkedését. Egyes paraméterek futásidőben dinamikusan állíthatók be. Mások statikusak, és a beállítás után újra kell indítani a kiszolgálót.
A rugalmas Azure Database for MySQL-kiszolgálón módosíthatja a különböző MySQL-kiszolgálóparaméterek értékét az Azure Database for MySQL -rugalmas kiszolgáló kiszolgálóparamétereinek konfigurálásával az Azure Portal használatával, valamint a kiszolgálóparaméterek konfigurálása az Azure Database for MySQL-ben – rugalmas kiszolgálói paraméterek konfigurálása az Azure CLI használatával a számítási feladat igényeinek megfelelően.
Konfigurálható kiszolgálóparaméterek
A rugalmas Azure Database for MySQL-kiszolgáló konfigurációját kiszolgálóparaméterek használatával kezelheti. A kiszolgálóparaméterek a kiszolgáló létrehozásakor az alapértelmezett és ajánlott értékekkel vannak konfigurálva. Az Azure Portal Kiszolgálóparaméterek paneljén mind a módosítható, mind a nem módosítható paraméterek láthatók. A nem módosítható kiszolgálóparaméterek nem érhetők el.
A támogatott kiszolgálóparaméterek listája folyamatosan növekszik. Az Azure Portal használatával rendszeresen megtekintheti a kiszolgálóparaméterek teljes listáját, és konfigurálhatja az értékeket.
Ha a portál használatával módosít egy statikus kiszolgálóparamétert, újra kell indítania a kiszolgálót a módosítások érvénybe lépéséhez. Ha automatizálási szkripteket használ (például Azure Resource Manager-sablonokon, Terraformon vagy Az Azure CLI-ben), a szkriptnek rendelkeznie kell egy kiosztással, amely újraindítja a szolgáltatást a beállítások érvénybe lépéséhez, még akkor is, ha a konfigurációt a létrehozási folyamat részeként módosítja.
Ha módosítani szeretne egy nem módosítható kiszolgálóparamétert a környezetéhez, küldjön egy ötletet közösségi visszajelzésen keresztül, vagy szavazzon, ha a visszajelzés már létezik (ami segíthet a rangsorolásban).
A következő szakaszok a gyakran frissített kiszolgálóparaméterek korlátait ismertetik. A korlátokat a kiszolgáló számítási szintje és mérete (virtuális magok) határozzák meg.
lower_case_table_names
A MySQL 8.0+-os verziójához
További információ.
lower_case_table_names A kiszolgáló inicializálása után a beállítás módosítása tilos. A MySQL 8.0-s verziójának támogatott értékei a rugalmas Azure Database for MySQL-kiszolgálón találhatók 12 . Az alapértelmezett érték 1.
Ezeket a beállításokat a portálon a kiszolgáló létrehozása során úgy konfigurálhatja, hogy megadja a kívánt értéket a Kiszolgálóparaméterek területen a További konfiguráció lapon. Visszaállítási műveletek vagy replikakiszolgáló létrehozásakor a paraméter automatikusan ki lesz másolva a forráskiszolgálóról, és nem módosítható.
A MySQL 5.7-es verziója esetén az alapértelmezett érték lower_case_table_names a rugalmas Azure Database for MySQL-kiszolgálón található 1 . Bár a támogatott érték 2módosítható, a visszalépés 21 nem engedélyezett. Ha segítségre van szüksége az alapértelmezett érték módosításához, hozzon létre egy támogatási jegyet.
innodb_tmpdir
A rugalmas Azure Database for MySQL-kiszolgáló innodb_tmpdir paraméterével definiálhatja az újraépítendő online ALTER TABLE műveletek során létrehozott ideiglenes rendezési fájlok könyvtárát.
Az alapértelmezett érték az innodb_tmpdir/mnt/temp. Ez a hely az ideiglenes tárolónak (SSD) felel meg, és gibibyte-ben (GiB) érhető el minden egyes kiszolgáló számítási méretével. Ez a hely ideális olyan műveletekhez, amelyek nem igényelnek nagy mennyiségű helyet.
Ha több helyre van szüksége, beállíthatja a következőt innodb_tmpdir/app/work/tmpdir: . Ez a beállítás a rugalmas Azure Database for MySQL-kiszolgálón elérhető tárkapacitást használja. Ez a beállítás olyan nagyobb műveleteknél lehet hasznos, amelyek több ideiglenes tárterületet igényelnek.
Ne feledje, hogy az eredmények használata /app/work/tmpdir az alapértelmezett ideiglenes tárolási (SSD)képest lassabb teljesítményt eredményez. Döntsön a műveletek konkrét követelményei alapján.
A megadott innodb_tmpdir információk a innodb_temp_tablespaces_dir, tmpdir és slave_load_tmpdir paraméterekre vonatkoznak, ahol:
- Az alapértelmezett érték
/mnt/tempgyakori. - Az alternatív címtár
/app/work/tmpdira megnövekedett ideiglenes tárolás konfigurálásához érhető el, és a teljesítmény adott üzemeltetési követelményeken alapuló kompromisszumot biztosít.
log_bin_trust_function_creators
A rugalmas Azure Database for MySQL-kiszolgálón a bináris naplók mindig engedélyezve vannak (azaz log_bin a beállítás ONértéke). A log_bin_trust_function_creators paraméter alapértelmezés szerint rugalmas kiszolgálókon van beállítva ON .
A bináris naplózási formátum mindig ROWa soralapú bináris naplózást használja, és a kiszolgálóhoz való kapcsolatok mindig soralapú bináris naplózást használnak. Soralapú bináris naplózás esetén a biztonsági problémák nem léteznek, és a bináris naplózás nem tud megtörni, így biztonságosan engedélyezheti log_bin_trust_function_creators , hogy továbbra is mint ON.
Ha log_bin_trust_function_creators be van állítva OFF , és megpróbál triggereket létrehozni, a következőhöz hasonló hibaüzenetek jelenhetnek meg: "Nem rendelkezik SUPER jogosultsággal, és a bináris naplózás engedélyezve van (érdemes lehet a kevésbé biztonságos log_bin_trust_function_creators változót használni)."
innodb_buffer_pool_size (az InnoDB adatbázis motor puffer medence mérete)
A paraméter megismeréséhez innodb_buffer_pool_size tekintse át a MySQL dokumentációját.
Az alábbi táblázatban szereplő fizikai memória mérete a rugalmas Azure Database for MySQL-kiszolgálón elérhető véletlenszerű hozzáférésű memória (RAM) gigabájtban (GB) kifejezve.
| Számítási méret | Virtuális magok | Fizikai memória mérete (GB) | Alapértelmezett érték (bájt) | Minimális érték (bájt) | Maximális érték (bájt) |
|---|---|---|---|---|---|
| Kipukkanható | |||||
| Standard_B1s | 0 | 0 | 134217728 | 33554432 | 268435456 |
| Standard_B1ms | 0 | 2 | 536870912 | 134217728 | 1073741824 |
| Standard_B2s | 2 | 4 | 2147483648 | 134217728 | 2147483648 |
| Standard_B2ms | 2 | 8 | 4294967296 | 134217728 | 5368709120 |
| Standard_B4ms | 4 | 16 | 12884901888 | 134217728 | 12884901888 |
| Standard_B8ms | 8 | 32 | 25769803776 | 134217728 | 25769803776 |
| Standard_B12ms | 12 | 48 | 51539607552 | 134217728 | 32212254720 |
| Standard_B16ms | 16 | 64 | 2147483648 | 134217728 | 51539607552 |
| Standard_B20ms | 20 | 80 | 64424509440 | 134217728 | 64424509440 |
| Általános célú | |||||
| Standard_D2ads_v5 | 2 | 8 | 4294967296 | 134217728 | 5368709120 |
| Standard_D2ds_v4 | 2 | 8 | 4294967296 | 134217728 | 5368709120 |
| Standard_D4ads_v5 | 4 | 16 | 12884901888 | 134217728 | 12884901888 |
| Standard_D4ds_v4 | 4 | 16 | 12884901888 | 134217728 | 12884901888 |
| Standard_D8ads_v5 | 8 | 32 | 25769803776 | 134217728 | 25769803776 |
| Standard_D8ds_v4 | 8 | 32 | 25769803776 | 134217728 | 25769803776 |
| Standard_D16ads_v5 | 16 | 64 | 51539607552 | 134217728 | 51539607552 |
| Standard_D16ds_v4 | 16 | 64 | 51539607552 | 134217728 | 51539607552 |
| Standard_D32ads_v5 | 32 | 128 | 103079215104 | 134217728 | 103079215104 |
| Standard_D32ds_v4 | 32 | 128 | 103079215104 | 134217728 | 103079215104 |
| Standard_D48ads_v5 | 48 | 192 | 154618822656 | 134217728 | 154618822656 |
| Standard_D48ds_v4 | 48 | 192 | 154618822656 | 134217728 | 154618822656 |
| Standard_D64ads_v5 | 64 | 256 | 206158430208 | 134217728 | 206158430208 |
| Standard_D64ds_v4 | 64 | 256 | 206158430208 | 134217728 | 206158430208 |
| üzletileg kritikus | |||||
| Standard_E2ds_v4 | 2 | 16 | 12884901888 | 134217728 | 12884901888 |
| Standard_E2ads_v5, Standard_E2ds_v5 | 2 | 16 | 12884901888 | 134217728 | 12884901888 |
| Standard_E4ds_v4 | 4 | 32 | 25769803776 | 134217728 | 25769803776 |
| Standard_E4ads_v5, Standard_E4ds_v5 | 4 | 32 | 25769803776 | 134217728 | 25769803776 |
| Standard_E8ds_v4 | 8 | 64 | 51539607552 | 134217728 | 51539607552 |
| Standard_E8ads_v5, Standard_E8ds_v5 | 8 | 64 | 51539607552 | 134217728 | 51539607552 |
| Standard_E16ds_v4 | 16 | 128 | 103079215104 | 134217728 | 103079215104 |
| Standard_E16ads_v5, Standard_E16ds_v5 | 16 | 128 | 103079215104 | 134217728 | 103079215104 |
| Standard_E20ds_v4 | 20 | 160 | 128849018880 | 134217728 | 128849018880 |
| Standard_E20ads_v5, Standard_E20ds_v5 | 20 | 160 | 128849018880 | 134217728 | 128849018880 |
| Standard_E32ds_v4 | 32 | 256 | 206158430208 | 134217728 | 206158430208 |
| Standard_E32ads_v5, Standard_E32ds_v5 | 32 | 256 | 206158430208 | 134217728 | 206158430208 |
| Standard_E48ds_v4 | 48 | 384 | 309237645312 | 134217728 | 309237645312 |
| Standard_E48ads_v5, Standard_E48ds_v5 | 48 | 384 | 309237645312 | 134217728 | 309237645312 |
| Standard_E64ds_v4 | 64 | 504 | 405874409472 | 134217728 | 405874409472 |
| Standard_E64ads_v5 , Standard_E64ds_v5 | 64 | 512 | 412316860416 | 134217728 | 412316860416 |
| Standard_E80ids_v4 | 80 | 504 | 405874409472 | 134217728 | 405874409472 |
| Standard_E96ds_v5 | 96 | 672 | 541165879296 | 134217728 | 541165879296 |
innodb_file_per_table
A MySQL az InnoDB-táblát különböző táblaterekben tárolja a tábla létrehozása során megadott konfiguráció alapján. A rendszer táblatere az InnoDB adatszótár tárolási területe. A táblánkénti fájltáblázatok egyetlen InnoDB-tábla adatait és indexeit tartalmazzák, és a fájlrendszerben tárolják a saját adatfájljában. Ezt a viselkedést a innodb_file_per_table kiszolgálóparaméter vezérli.
A beállítás innodb_file_per_table hatására az OFF InnoDB táblákat hoz létre a rendszer táblaterében. Ellenkező esetben az InnoDB táblákat hoz létre a fájlonkénti táblaterekben.
Az Azure Database for MySQL – Rugalmas kiszolgáló egyetlen adatfájlban legfeljebb 8 terabájtot (TB) támogat. Ha az adatbázis mérete 8 TB-nál nagyobb, akkor a táblát a innodb_file_per_table táblatérben kell létrehoznia. Ha egyetlen táblázatmérete nagyobb, mint 8 TB, használja a partíciótáblát.
innodb_log_file_size
A innodb_log_file_size értéke a naplófájlok mérete (bájtban). A naplófájlok összesített mérete (innodb_log_file_size * innodb_log_files_in_group) nem haladhatja meg az 512 GB-nál valamivel kisebb maximális értéket.
A nagyobb naplófájlméret jobb a teljesítményhez, de hátránya, hogy az összeomlás utáni helyreállítási idő magas. Ki kell egyensúlyoznia a helyreállítási időt egy összeomlás ritka eseménye esetén, és maximalizálnia kell az átviteli sebességet a csúcsműveletek során. A nagyobb naplófájlméret hosszabb újraindítási időt is eredményezhet.
Konfigurálhat innodb_log_size 256 megabájtot (MB), 512 MB-ot, 1 GB-ot vagy 2 GB-ot a rugalmas Azure Database for MySQL-kiszolgálóhoz. A paraméter statikus, és újraindítást igényel.
Feljegyzés
Ha a paramétert az innodb_log_file_size alapértelmezett értékről módosította, ellenőrizze, hogy az érték 30 másodpercig show global status like 'innodb_buffer_pool_pages_dirty' marad-e az újraindítás késleltetésének 0 elkerülése érdekében.
maximális_kapcsolatok
A kiszolgáló memóriamérete határozza meg a max_connections. Az alábbi táblázatban szereplő fizikai memóriaméret a rugalmas Azure Database for MySQL-kiszolgálón gigabájtban elérhető RAM-ot jelöli.
| Számítási méret | Virtuális magok | Fizikai memória mérete (GB) | Alapértelmezett érték | Minimális érték | Maximális érték |
|---|---|---|---|---|---|
| Kipukkanható | |||||
| Standard_B1s | 0 | 0 | 85 | 10 | 171 |
| Standard_B1ms | 0 | 2 | 171 | 10 | 341 |
| Standard_B2s | 2 | 4 | 341 | 10 | 683 |
| Standard_B2ms | 2 | 4 | 683 | 10 | 1365 |
| Standard_B4ms | 4 | 16 | 1365 | 10 | 2731 |
| Standard_B8ms | 8 | 32 | 2731 | 10 | 5461 |
| Standard_B12ms | 12 | 48 | 4097 | 10 | 8193 |
| Standard_B16ms | 16 | 64 | 5461 | 10 | 10923 |
| Standard_B20ms | 20 | 80 | 6827 | 10 | 13653 |
| Általános célú | |||||
| Standard_D2ads_v5 | 2 | 8 | 683 | 10 | 1365 |
| Standard_D2ds_v4 | 2 | 8 | 683 | 10 | 1365 |
| Standard_D4ads_v5 | 4 | 16 | 1365 | 10 | 2731 |
| Standard_D4ds_v4 | 4 | 16 | 1365 | 10 | 2731 |
| Standard_D8ads_v5 | 8 | 32 | 2731 | 10 | 5461 |
| Standard_D8ds_v4 | 8 | 32 | 2731 | 10 | 5461 |
| Standard_D16ads_v5 | 16 | 64 | 5461 | 10 | 10923 |
| Standard_D16ds_v4 | 16 | 64 | 5461 | 10 | 10923 |
| Standard_D32ads_v5 | 32 | 128 | 10923 | 10 | 21845 |
| Standard_D32ds_v4 | 32 | 128 | 10923 | 10 | 21845 |
| Standard_D48ads_v5 | 48 | 192 | 16384 | 10 | 32 768 |
| Standard_D48ds_v4 | 48 | 192 | 16384 | 10 | 32 768 |
| Standard_D64ads_v5 | 64 | 256 | 21845 | 10 | 43691 |
| Standard_D64ds_v4 | 64 | 256 | 21845 | 10 | 43691 |
| üzletileg kritikus | |||||
| Standard_E2ds_v4 | 2 | 16 | 1365 | 10 | 2731 |
| Standard_E2ads_v5, Standard_E2ds_v5 | 2 | 16 | 1365 | 10 | 2731 |
| Standard_E4ds_v4 | 4 | 32 | 2731 | 10 | 5461 |
| Standard_E4ads_v5, Standard_E4ds_v5 | 4 | 32 | 2731 | 10 | 5461 |
| Standard_E8ds_v4 | 8 | 64 | 5461 | 10 | 10923 |
| Standard_E8ads_v5, Standard_E8ds_v5 | 8 | 64 | 5461 | 10 | 10923 |
| Standard_E16ds_v4 | 16 | 128 | 10923 | 10 | 21845 |
| Standard_E16ads_v5, Standard_E16ds_v5 | 16 | 128 | 10923 | 10 | 21845 |
| Standard_E20ds_v4 | 20 | 160 | 13653 | 10 | 27306 |
| Standard_E20ads_v5, Standard_E20ds_v5 | 20 | 160 | 13653 | 10 | 27306 |
| Standard_E32ds_v4 | 32 | 256 | 21845 | 10 | 43691 |
| Standard_E32ads_v5, Standard_E32ds_v5 | 32 | 256 | 21845 | 10 | 43691 |
| Standard_E48ds_v4 | 48 | 384 | 32 768 | 10 | 65536 |
| Standard_E48ads_v5, Standard_E48ds_v5 | 48 | 384 | 32 768 | 10 | 65536 |
| Standard_E64ds_v4 | 64 | 504 | 43008 | 10 | 86016 |
| Standard_E64ads_v5, Standard_E64ds_v5 | 64 | 512 | 43691 | 10 | 87383 |
| Standard_E80ids_v4 | 80 | 504 | 43008 | 10 | 86016 |
| Standard_E96ds_v5 | 96 | 672 | 50000 | 10 | 100 000 |
Ha a kapcsolatok túllépik a korlátot, a következő hibaüzenet jelenhet meg: "HIBA: 1040 (08004): Túl sok kapcsolat".
Az új ügyfélkapcsolatok létrehozása a MySQL-hez időt vesz igénybe. A kapcsolatok létrehozása után azok akkor is lefoglalják az adatbázis-erőforrásokat, ha inaktívak. A legtöbb alkalmazás sok rövid élettartamú kapcsolatot igényel, ami ezt a helyzetet is meghatározza. Az eredmény az, hogy kevesebb erőforrás érhető el a tényleges számítási feladathoz, ami a teljesítmény csökkenéséhez vezet.
Egy kapcsolatkészletező, amely csökkenti az üresjárati kapcsolatokat, és újra felhasználja a meglévő kapcsolatokat, segít elkerülni ezt a problémát. A legjobb élmény érdekében javasoljuk, hogy a kapcsolatok hatékony kezeléséhez használjon egy olyan kapcsolatkészletezőt, mint a ProxySQL. A ProxySQL beállításával kapcsolatos további információkért tekintse meg ezt a blogbejegyzést.
Feljegyzés
A ProxySQL egy nyílt forráskódú közösségi eszköz. A Microsoft minden tőle telhetőt megtesz. Ha mérvadó útmutatással szeretne éles támogatást kapni, forduljon a ProxySQL terméktámogatásához.
innodb_strict_mode
Ha a "Túl nagy sorméret (> 8126) " hibához hasonló hibaüzenet jelenik meg, érdemes lehet kikapcsolni a innodb_strict_mode kiszolgálóparamétert. Ez a paraméter globálisan nem módosítható a kiszolgáló szintjén, mert ha a soradatok mérete nagyobb, mint 8K, akkor az adatok hiba nélkül csonkulnak. Ez a csonkolás potenciális adatvesztéshez vezethet. Javasoljuk, hogy módosítsa a sémát az oldalméret korlátjának megfelelően.
Ezt a paramétert a munkamenet szintjén állíthatja be a következővel init_connect: . További információ: Nem módosítható kiszolgálóparaméterek beállítása.
Feljegyzés
Ha olvasási replikakiszolgálóval rendelkezik, a forráskiszolgáló munkamenet szintjén történő beállítása innodb_strict_modeOFF megszakítja a replikációt. Javasoljuk, hogy ON az olvasási replikák esetén állítsa be a paramétert.
időzóna
Az időzóna-táblákat feltöltheti a legújabb időzóna-adatokkal, ha meghívja a mysql.az_load_timezone tárolt eljárást egy olyan eszközről, mint a MySQL parancssor vagy a MySQL Workbench, majd az Azure Portal vagy az Azure CLI használatával beállíthatja a globális időzónákat. Az időzónákat a rendszer automatikusan betölti a kiszolgáló létrehozásakor, így az ügyfeleknek nincs szükségük arra, hogy manuálisan végrehajtsák a mysql.az_load_timezone tárolt eljárást az időzóna betöltéséhez.
innodb_temp_data_file_size_max
Rugalmas Azure Database for MySQL-kiszolgáló esetén (csak 5.7-es verzió) innodb_temp_data_file_size_max paraméter határozza meg az InnoDB ideiglenes táblatér adatfájljainak maximális méretét MB-ban. Az érték 0 értékre állítása nem jelent korlátot, ami lehetővé teszi a teljes tárterület méretének növelését. A 64 MB alatti nem nulla értékek 64 MB-ra vannak kerekítve, míg a 64 MB feletti értékek a megadott módon lesznek alkalmazva. Ez egy statikus változó, és a módosítások érvénybe lépéséhez újra kell indítani a kiszolgálót.
Feljegyzés
- Megjegyzés: A MySQL 8.0-s és újabb verziókban a globális ideiglenes táblatér (ibtmp1) csak a felhasználó által létrehozott ideiglenes táblák módosításaihoz tárolja a visszaállítási szegmenseket. Ezért ez a paraméter már nem releváns.
binlog_expire_logs_seconds
A rugalmas Azure Database for MySQL-kiszolgálón a binlog_expire_logs_seconds paraméter megadja, hogy a szolgáltatás hány másodpercet vár a bináris naplófájl törlése előtt.
A bináris napló olyan eseményeket tartalmaz, amelyek az adatbázis változásait írják le, például a táblalétrehozási műveleteket vagy a táblaadatok módosítását. A bináris napló olyan utasítások eseményeit is tartalmazza, amelyek esetleg módosításokat is okozhattak. A bináris naplót elsősorban két célra használják: replikációs és adat-helyreállítási műveletekre.
A bináris naplók általában azonnal törlődnek, amint a leíró mentes a szolgáltatástól, a biztonsági mentéstől vagy a replikakészlettől. Ha több replika is létezik, a bináris naplók megvárják, amíg a leglassabb replika felolvassa a módosításokat a törlés előtt.
Ha hosszabb ideig szeretné őrizni a bináris naplókat, konfigurálhatja a paramétert binlog_expire_logs_seconds . Ha binlog_expire_logs_seconds az alapértelmezett értékre 0van állítva, a rendszer azonnal törli a bináris naplót, amint felszabadítja a leírót. Ha az érték binlog_expire_logs_seconds nagyobb, akkor 0a bináris napló a konfigurált másodpercek száma után törlődik.
A rugalmas Azure Database for MySQL-kiszolgáló belsőleg kezeli a felügyelt funkciókat, például a bináris fájlok biztonsági mentését és olvasását. Amikor replikálja az adatokat az Azure Database for MySQL rugalmas kiszolgálóról, ezt a paramétert az elsődleges helyen kell beállítani, hogy elkerülje a bináris naplók törlését, mielőtt a replika beolvassa az elsődleges módosításokat. Ha magasabb értékre állítja be binlog_expire_logs_seconds , a bináris naplók nem törlődnek elég hamar. Ez a késés a tárterület számlázásának növekedéséhez vezethet.
Korlátozások
A gyorsított naplók funkció engedélyezése után a binlog_expire_logs_seconds kiszolgálóparaméter teljes mértékben figyelmen kívül lesz hagyva, és a konfigurált értékeknek már nincs hatása. Ha azonban a gyorsított naplók funkció le van tiltva, a kiszolgáló ismét betartja a bináris naplók megőrzéséhez használt binlog_expire_logs_seconds konfigurált értékét. Ez a replikakiszolgálókra is vonatkozik.
eseményütemező
A rugalmas Azure Database for MySQL-kiszolgálón a kiszolgálóparaméter kezeli az event_scheduler események létrehozását, ütemezését és futtatását. Ez azt jelzi, hogy a paraméter egy speciális MySQL-eseményütemező-szál által ütemezés szerint futtatott feladatokat kezel.
event_scheduler A paraméter beállításakor ONaz Eseményütemező szál démonfolyamatként jelenik meg a kimenetbenSHOW PROCESSLIST.
Az 5.7-es verziójú MySQL-kiszolgálók esetében a kiszolgálóparaméter event_scheduler automatikusan ki van kapcsolva a biztonsági mentés indításakor, és a kiszolgálóparaméter event_scheduler "BE" állapotba kerül a biztonsági mentés sikeres befejezése után. A Rugalmas Azure Database for MySQL-kiszolgálóHoz készült MySQL 8.0-s verziójában a event_scheduler a biztonsági mentések során nem érintik. A zökkenőmentesebb működés érdekében ajánlott a MySQL 5.7-kiszolgálókat a 8.0-s verzióra frissíteni egy főverziófrissítéssel.
Eseményeket az alábbi SQL-szintaxissal hozhat létre és ütemezhet:
CREATE EVENT <event name>
ON SCHEDULE EVERY _ MINUTE / HOUR / DAY
STARTS TIMESTAMP / CURRENT_TIMESTAMP
ENDS TIMESTAMP / CURRENT_TIMESTAMP + INTERVAL 1 MINUTE / HOUR / DAY
COMMENT '<comment>'
DO
<your statement>;
Az esemény létrehozásával kapcsolatos további információkért tekintse meg az eseményütemező következő dokumentációját a MySQL referencia-kézikönyvében:
A event_scheduler kiszolgálóparaméter konfigurálása
Az alábbi forgatókönyv a paraméter rugalmas Azure Database for MySQL-kiszolgálón való használatának event_scheduler egyik módját mutatja be.
A forgatókönyv bemutatásához tekintse meg egy egyszerű táblázat alábbi példáját:
mysql> describe tab1;
+-----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
| +-----------+-------------+------+-----+---------+----------------+ |
| id | int(11) | NO | PRI | NULL | auto_increment |
| CreatedAt | timestamp | YES | | NULL | |
| CreatedBy | varchar(16) | YES | | NULL | |
| +-----------+-------------+------+-----+---------+----------------+ |
| 3 rows in set (0.23 sec) |
| ``` |
| To configure the `event_scheduler` server parameter in Azure Database for MySQL - Flexible Server, perform the following steps: |
1. In the Azure portal, go to your Azure Database for MySQL - Flexible Server instance. Under **Settings**, select **Server parameters**.
1. On the **Server parameters** pane, search for `event_scheduler`. In the **VALUE** dropdown list, select **ON**, and then select **Save**.
> [!NOTE]
> Deployment of the dynamic configuration change to the server parameter doesn't require a restart.
1. To create an event, connect to the Azure Database for MySQL - Flexible Server instance and run the following SQL command:
```sql
CREATE EVENT test_event_01
ON SCHEDULE EVERY 1 MINUTE
STARTS CURRENT_TIMESTAMP
ENDS CURRENT_TIMESTAMP + INTERVAL 1 HOUR
COMMENT 'Inserting record into the table tab1 with current timestamp'
DO
INSERT INTO tab1(id,createdAt,createdBy)
VALUES('',NOW(),CURRENT_USER());
```
1. To view the Event Scheduler details, run the following SQL statement:
```sql
SHOW EVENTS;
```
The following output appears:
```sql
mysql> show events;
+-----+---------------+-------------+-----------+-----------+------------+----------------+----------------+---------------------+---------------------+---------+------------+----------------------+----------------------+--------------------+
| Db | Name | Definer | Time zone | Type | Execute at | Interval value | Interval field | Starts | Ends | Status | Originator | character_set_client | collation_connection | Database Collation |
| +-----+---------------+-------------+-----------+-----------+------------+----------------+----------------+---------------------+---------------------+---------+------------+----------------------+----------------------+--------------------+ |
| db1 | test_event_01 | azureuser@% | SYSTEM | RECURRING | NULL | 1 | MINUTE | 2023-04-05 14:47:04 | 2023-04-05 15:47:04 | ENABLED | 3221153808 | latin1 | latin1_swedish_ci | latin1_swedish_ci |
| +-----+---------------+-------------+-----------+-----------+------------+----------------+----------------+---------------------+---------------------+---------+------------+----------------------+----------------------+--------------------+ |
| 1 row in set (0.23 sec) |
| ``` |
1. After a few minutes, query the rows from the table to begin viewing the rows inserted every minute according to the `event_scheduler` parameter that you configured:
```azurecli
mysql> select * from tab1;
+----+---------------------+-------------+
| id | CreatedAt | CreatedBy |
| +----+---------------------+-------------+ |
| 1 | 2023-04-05 14:47:04 | azureuser@% |
| 2 | 2023-04-05 14:48:04 | azureuser@% |
| 3 | 2023-04-05 14:49:04 | azureuser@% |
| 4 | 2023-04-05 14:50:04 | azureuser@% |
| +----+---------------------+-------------+ |
| 4 rows in set (0.23 sec) |
| ``` |
| 1. After an hour, run a `select` statement on the table to view the complete result of the values inserted into table every minute for an hour (as `event_scheduler` is configured in this case): |
```azurecli
mysql> select * from tab1;
+----+---------------------+-------------+
| id | CreatedAt | CreatedBy |
| +----+---------------------+-------------+ |
| 1 | 2023-04-05 14:47:04 | azureuser@% |
| 2 | 2023-04-05 14:48:04 | azureuser@% |
| 3 | 2023-04-05 14:49:04 | azureuser@% |
| 4 | 2023-04-05 14:50:04 | azureuser@% |
| 5 | 2023-04-05 14:51:04 | azureuser@% |
| 6 | 2023-04-05 14:52:04 | azureuser@% |
| ..< 50 lines trimmed to compact output >.. |
| 56 | 2023-04-05 15:42:04 | azureuser@% |
| 57 | 2023-04-05 15:43:04 | azureuser@% |
| 58 | 2023-04-05 15:44:04 | azureuser@% |
| 59 | 2023-04-05 15:45:04 | azureuser@% |
| 60 | 2023-04-05 15:46:04 | azureuser@% |
| 61 | 2023-04-05 15:47:04 | azureuser@% |
| +----+---------------------+-------------+ |
| 61 rows in set (0.23 sec) |
| ``` |
#### Other scenarios
You can set up an event based on the requirements of your specific scenario. A few examples of scheduling SQL statements to run at various time intervals follow.
To run a SQL statement now and repeat one time per day with no end:
```sql
CREATE EVENT <event name>
ON SCHEDULE
EVERY 1 DAY
STARTS (TIMESTAMP(CURRENT_DATE) + INTERVAL 1 DAY + INTERVAL 1 HOUR)
COMMENT 'Comment'
DO
<your statement>;
Sql-utasítás futtatása óránként, vége nélkül:
CREATE EVENT <event name>
ON SCHEDULE
EVERY 1 HOUR
COMMENT 'Comment'
DO
<your statement>;
SQL-utasítás futtatása minden nap vége nélkül:
CREATE EVENT <event name>
ON SCHEDULE
EVERY 1 DAY
STARTS str_to_date( date_format(now(), '%Y%m%d 0200'), '%Y%m%d %H%i' ) + INTERVAL 1 DAY
COMMENT 'Comment'
DO
<your statement>;
Korlátozások
Magas rendelkezésre állású kiszolgálók esetén feladatátvétel esetén lehetséges, hogy a event_scheduler kiszolgáló paramétere a következőre OFFvan állítva: . Ha ez történik, a feladatátvétel befejezésekor konfigurálja a paramétert úgy, hogy az értéket a következőre ONállítsa.
innodb_ft_user_stopword_table
innodb_ft_user_stopword_table Egy kiszolgálóparaméter a MySQL-ben, amely megadja annak a táblának a nevét, amely egyéni stopwords-eket tartalmaz az InnoDB Teljes szöveges kereséshez. A táblázatnak ugyanabban az adatbázisban kell lennie, mint a teljes szöveges indexelt táblázatnak, és az első oszlopának típusnak VARCHARkell lennie. A rugalmas Azure Database for MySQL-kiszolgálón az alapértelmezett beállítás sql_generate_invisible_primary_key=ON azt eredményezi, hogy az összes olyan tábla, amely nem rendelkezik explicit elsődleges kulccsal, automatikusan tartalmaz egy láthatatlan elsődleges kulcsot. Ez a viselkedés ütközik a következő követelményekkel innodb_ft_user_stopword_table: a láthatatlan elsődleges kulcs lesz a tábla első oszlopa, ami megakadályozza, hogy a teljes szöveges keresés során a kívánt módon működjön. A probléma megoldásához ugyanabban a munkamenetben kell beállítania sql_generate_invisible_primary_key=OFF az egyéni stopword tábla létrehozása előtt. Példa:
SET sql_generate_invisible_primary_key = OFF;
CREATE TABLE my_stopword_table (
stopword VARCHAR(50) NOT NULL
);
INSERT INTO my_stopword_table (stopword) VALUES ('and'), ('or'), ('the');
Ez biztosítja, hogy a stopword tábla megfeleljen a MySQL követelményeinek, és lehetővé teszi az egyéni stopwords megfelelő működését.
Nem módosítható kiszolgálóparaméterek
Az Azure Portal Kiszolgálóparaméterek paneljén a módosítható és a nem módosítható kiszolgálóparaméterek is láthatók. A nem módosítható kiszolgálóparaméterek nem érhetők el. A munkamenet szintjén init_connect nem módosítható kiszolgálóparamétert az Azure Portalon vagy az Azure CLI-ben konfigurálhatja.
Azure mysql rendszerváltozók
Azure szerver neve
A azure_server_name változó megadja a rugalmas Azure Database for MySQL-kiszolgálópéldány pontos kiszolgálónevét. Ez a változó akkor hasznos, ha az alkalmazásoknak vagy szkripteknek programozott módon le kell kérniük a kiszolgáló gazdanevét, amelyhez csatlakoznak, külső konfigurációk használata nélkül, és a következő parancs mySQL-en belüli futtatásával kérhetők le.
mysql> SHOW GLOBAL VARIABLES LIKE 'azure_server_name';
+-------------------+---------+
| Variable_name | Value |
+-------------------+---------+
| azure_server_name | myflex |
+-------------------+---------+
Megjegyzés: A azure_server_name rendszer következetesen visszaadja a szolgáltatáshoz való csatlakozáshoz használt eredeti kiszolgálónevet (például myflex) a HA-kompatibilis és a HA-letiltott kiszolgálók esetében is.
logikai_szerver_név
A logical_server_name változó annak a példánynak a gazdagépnevét jelöli, amelyen az Azure Database for MySQL – Rugalmas kiszolgáló fut. Ez a változó hasznos annak a gazdagépnek a azonosításához, ahol a szolgáltatás jelenleg fut, segítve a hibaelhárítást és a feladatátvételi monitorozást. Ezt a változót az alábbi parancs MySQL-ben való végrehajtásával lehet lekérni.
mysql> SHOW GLOBAL VARIABLES LIKE 'logical_server_name';
+---------------------+--------------+
| Variable_name | Value |
+---------------------+--------------+
| logical_server_name | myflex |
+---------------------+--------------+
Megjegyzés: HA-kompatibilis kiszolgáló esetén a változó az logical_server_name elsődleges kiszolgálóként működő példány állomásnevét tükrözi. Olyan kiszolgáló esetén, ahol a HA le van tiltva, a logical_server_name változó értéke megegyezik a azure_server_name változóéval, mivel csak egyetlen példány van.