Ajánlott eljárások az Azure SQL Data Synchez

A következőre vonatkozik: Azure SQL Database

Ez a cikk az Azure SQL Data Sync ajánlott eljárásait ismerteti.

Az SQL Data Sync áttekintéséhez tekintse meg a több felhőalapú és helyszíni adatbázis közötti, az Azure SQL Data Sync segítségével végzett adatszinkronizálást ismertető cikket.

Fontos

Az Azure SQL Data Sync jelenleg nem támogatja a felügyelt Azure SQL-példányt vagy az Azure Synapse Analyticset.

Biztonság és megbízhatóság

Ügyfélügynök

  • Telepítse az ügyfélügynököt a hálózati szolgáltatáshoz hozzáféréssel rendelkező legkevésbé kiemelt felhasználói fiók használatával.
  • Telepítse az ügyfélügynököt egy olyan kiszolgálóra, amely eltér az SQL Server telepítésének helyszínétől.
  • Ne regisztráljon helyszíni adatbázist egynél több ügynökkel.
    • Ezt akkor is elkerülheti, ha különböző táblákat szinkronizál különböző szinkronizálási csoportokhoz.
    • Ha több ügyfélügynökkel regisztrál egy helyszíni adatbázist, az kihívást jelent az egyik szinkronizálási csoport törlésekor.

A legkevésbé szükséges jogosultságokkal rendelkező adatbázisfiókok

  • Szinkronizálás beállításához:

    • SQL Server-engedélyek: CREATE/ALTER TABLE, ALTER DATABASE, CREATE PROCEDURE, SELECT/ALTER SCHEMA, CREATE TYPE. Ezek az engedélyek (az egyéb engedélyekkel együtt) szerepelnek a beépített adatbázisszerepkörben ddl_admin.
    • Az erőforráscsoport szintjén az SQL DB közreműködői szerepkör tagságára van szükség. További információ: Azure-szerepkörök hozzárendelése az Azure Portalon. Ha már hozzárendelték, a szélesebb szerepkörökben, például a Közreműködőben vagy a Tulajdonosban is működik a tagság.
    • Az előfizetés szintjén nem szükséges engedélyekre szükség, de egyszerűbb (bár nem utolsósorban kötelező) módot biztosíthat az előfizetés több Azure Data Sync-implementációjának szükséges engedélyeinek biztosítására. Egy eredeti, elavult API-nak szüksége volt ezekre az Azure RBAC-engedélyekre, de már nem szabad használni.
      • "Microsoft.Sql/locations/syncMemberOperationResults/read"
      • "Microsoft.Sql/locations/syncAgentOperationResults/read"
      • "Microsoft.Sql/locations/syncGroupOperationResults/read"
  • Folyamatos szinkronizáláshoz.

    • SQL Server-engedélyek: SELECT, INSERT, UPDATE és DELETE engedély a szinkronizálásra kijelölt felhasználói táblákon. EXECUTE engedély felhasználó által definiált táblatípusokhoz.
    • SQL Server-engedélyek: SELECT, INSERT, UPDATE és DELETE engedély szinkronizálási metaadatokhoz és rendszer által létrehozott nyomkövetési táblákhoz. EXECUTE engedély a szolgáltatás által létrehozott tárolt eljárásokhoz.
      • A DataSync séma a központi és tagadatbázisok rendszer által létrehozott objektumaihoz használható.
      • A dss rendszer által létrehozott objektumokhoz és TaskHosting sémákhoz használható a szinkronizálási metaadat-adatbázisban.
  • A leépítéshez.

    • SQL Server-engedélyek: ALTER a szinkronizálás minden tábláján; SELECT és DELETE a szinkronizálási metaadattáblákon; CONTROL a szinkronizáláskövetési táblákon, a tárolt eljárásokon és a felhasználó által definiált típusokon.
    • A törléshez távolítsa el a rendszer által létrehozott objektumokat a , dssés TaskHosting sémákbólDataSync.

Az Azure SQL Database csak egyetlen hitelesítő adatot támogat. Ha ezen kényszeren belül szeretné elvégezni ezeket a feladatokat, vegye figyelembe a következő lehetőségeket:

  • Módosítsa a különböző fázisok hitelesítő adatait (például a beállításhoz szükséges hitelesítő adatokat1 , a folyamatban lévő hitelesítő adatokat2 ).
  • Módosítsa a hitelesítő adatok engedélyét (azaz módosítsa az engedélyt a szinkronizálás beállítása után).

Naplózás

Javasoljuk, hogy a szinkronizálási csoportok adatbázisainak szintjén engedélyezze a naplózást. Megtudhatja, hogyan engedélyezheti a naplózást az Azure SQL Database-ben, vagy hogyan engedélyezheti a naplózást az SQL Server-adatbázisban.

Beállítás

Adatbázissal kapcsolatos szempontok és korlátozások

Adatbázisméret

Új adatbázis létrehozásakor állítsa be a maximális méretet, hogy mindig nagyobb legyen, mint a telepített adatbázis. Ha nem állítja be a maximális méretet az üzembe helyezett adatbázisnál nagyobbra, a szinkronizálás meghiúsul. Bár az SQL Data Sync nem nyújt automatikus növekedést, futtathatja a ALTER DATABASE parancsot az adatbázis méretének növeléséhez a létrehozás után. Győződjön meg arról, hogy az adatbázis méretkorlátja alatt marad.

Fontos

Az SQL Data Sync további metaadatokat tárol minden adatbázissal. Győződjön meg arról, hogy a szükséges hely kiszámításakor figyelembe veszi ezt a metaadatot. A hozzáadott többletterhelés a táblák szélességéhez (például a szűk táblákhoz több többletterhelés szükséges) és a forgalom mennyiségéhez kapcsolódik.

Táblázatokkal kapcsolatos megfontolások és korlátozások

Táblák kijelölése

Nem kell az adatbázis összes tábláját belefoglalnia egy szinkronizálási csoportba. A szinkronizálási csoportban szereplő táblák hatással vannak a hatékonyságra és a költségekre. Csak akkor vegye fel a táblákat és a függő táblákat egy szinkronizálási csoportba, ha a vállalatnak szüksége van rá.

Elsődleges kulcsok

A szinkronizálási csoport minden táblájának elsődleges kulccsal kell rendelkeznie. Az SQL Data Sync nem tud szinkronizálni egy olyan táblát, amely nem rendelkezik elsődleges kulccsal.

Az SQL Data Sync éles környezetben való használata előtt tesztelje a kezdeti és a folyamatos szinkronizálási teljesítményt.

Az üres táblák biztosítják a legjobb teljesítményt

Az üres táblák a legjobb teljesítményt nyújtják az inicializáláskor. Ha a céltábla üres, a Data Sync tömeges beszúrással tölti be az adatokat. Ellenkező esetben az Adatszinkronizálás sorról sorra összehasonlítást és beszúrást végez az ütközések ellenőrzéséhez. Ha azonban a teljesítmény nem jelent problémát, beállíthatja a szinkronizálást a már adatokat tartalmazó táblák között.

Céladatbázisok kiépítése

Az SQL Data Sync alapszintű automatikus adatbázis-létesítést biztosít.

Ez a szakasz az SQL Data Syncben való kiépítés korlátait ismerteti.

Automatikusan kiépítési korlátozások

Az SQL Data Sync automatikus üzembe helyezésére az alábbi korlátozások vonatkoznak:

  • Csak a céltáblában létrehozott oszlopokat jelölje ki. A szinkronizálási csoporthoz nem tartozó oszlopok nincsenek kiépítve a céltáblákban.
  • Az indexek csak a kijelölt oszlopokhoz jönnek létre. Ha a forrástábla indexe olyan oszlopokkal rendelkezik, amelyek nem részei a szinkronizálási csoportnak, akkor ezek az indexek nem lesznek kiépítve a céltáblákban.
  • Az XML-típusú oszlopok indexei nincsenek kiépítve.
  • A Data Sync csak a következő két indextulajdonságot támogatja: Egyedi, Fürtözött/Nem fürtözött. Az index egyéb tulajdonságai, mint például a IGNORE_DUP_KEY, ahol a szűrő predikátum stb. nem támogatott, és a célindex ezek nélkül a tulajdonságok nélkül van kiépítve, még akkor is, ha a forrásindex rendelkezik ezekkel a tulajdonságokkal.
  • A CHECK korlátozások nincsenek kiépítve.
  • A forrástáblák meglévő eseményindítói nincsenek kiépítve.
  • A nézetek és a tárolt eljárások nem jönnek létre a céladatbázisban.
  • A CASCADE frissítése és a CASCADE törlésekor a rendszer nem hozza létre újra a céltáblákban az idegen kulcsokra vonatkozó CASCADE-műveleteket.
  • Ha 28-nál nagyobb pontosságú decimális vagy numerikus oszlopokkal rendelkezik, az SQL Data Sync a szinkronizálás során konverziós túlcsordulási problémát tapasztalhat. Javasoljuk, hogy a decimális vagy numerikus oszlopok pontosságát legfeljebb 28-ra korlátozza.

Ajánlatok

  • Az SQL Data Sync automatikus kiépítési képességét csak a szolgáltatás kipróbálásakor használhatja.
  • Éles környezetben építse ki az adatbázissémát.

A központi adatbázis helyének helye

Nagyvállalati felhőbeli forgatókönyv

A késés minimalizálása érdekében tartsa a központi adatbázist a szinkronizálási csoport adatbázis-forgalmának legnagyobb koncentrációja közelében.

Felhőből felhőbe forgatókönyv

  • Ha a szinkronizálási csoport összes adatbázisa egy adatközpontban található, a központnak ugyanabban az adatközpontban kell lennie. Ez a konfiguráció csökkenti a késést és az adatközpontok közötti adatátvitel költségeit.
  • Ha a szinkronizálási csoportban lévő adatbázisok több adatközpontban találhatók, a központnak ugyanabban az adatközpontban kell lennie, mint az adatbázisok és az adatbázis-forgalom többsége.

Vegyes forgatókönyvek

Alkalmazza az előző irányelveket az összetett szinkronizálási csoportkonfigurációkra, például a nagyvállalati és felhőbeli forgatókönyvek kombinációjára.

Sync

A lassú és költséges kezdeti szinkronizálás elkerülése

Ebben a szakaszban a szinkronizálási csoport kezdeti szinkronizálását tárgyaljuk. Megtudhatja, hogyan akadályozhatja meg, hogy a kezdeti szinkronizálás tovább tart, és a szükségesnél költségesebb legyen.

A kezdeti szinkronizálás működése

Amikor szinkronizálási csoportot hoz létre, csak az egy adatbázisban lévő adatokkal kezdje. Ha több adatbázisban is vannak adatok, a SQL-adatszinkronizálás minden sort feloldandó ütközésként kezel. Ez az ütközésfeloldás miatt a kezdeti szinkronizálás lassan halad. Ha több adatbázis adataival rendelkezik, a kezdeti szinkronizálás az adatbázis méretétől függően több nap és több hónap között is eltarthat.

Ha az adatbázisok különböző adatközpontokban találhatók, minden sornak a különböző adatközpontok között kell haladnia. Ez növeli a kezdeti szinkronizálás költségét.

Ajánlás

Ha lehetséges, kezdje az adatokkal a szinkronizálási csoport adatbázisainak egyikében.

Tervezés a szinkronizálási hurkok elkerülése érdekében

Szinkronizálási hurok akkor fordul elő, ha egy szinkronizálási csoportban körkörös hivatkozások találhatók. Ebben a forgatókönyvben egy adatbázis minden módosítása végtelenül és körkörösen replikálódik a szinkronizálási csoport adatbázisain keresztül.

Győződjön meg arról, hogy elkerüli a szinkronizálási hurkokat, mert teljesítménycsökkenést okoznak, és jelentősen növelhetik a költségeket.

Nem propagálásra nem ható módosítások

A módosítások propagálásának sikertelen okai

A módosítások propagálása sikertelen lehet az alábbi okok valamelyike miatt:

  • Séma-/adattípus-inkompatibilitás.
  • Null beszúrása nem null értékű oszlopokba.
  • Idegenkulcs-korlátozások megsértése.

Mi történik, ha a módosítások propagálása sikertelen?

  • A szinkronizálási csoport azt mutatja, hogy figyelmeztetési állapotban van.
  • A részletek a portál felhasználói felületének naplómegjelenítőjében jelennek meg.
  • Ha a probléma 45 napig nem oldható meg, az adatbázis elavulttá válik.

Megjegyzés:

Ezek a módosítások soha nem propagálása. Ebben a forgatókönyvben a helyreállítás egyetlen módja a szinkronizálási csoport újbóli létrehozása.

Ajánlás

A szinkronizálási csoport és az adatbázis állapotának rendszeres monitorozása a portálon és a naplófelületen keresztül.

Karbantartás

Elavult adatbázisok és szinkronizálási csoportok elkerülése

A szinkronizálási csoport vagy egy szinkronizálási csoport adatbázisa elavulttá válhat. Ha egy szinkronizálási csoport állapota elavult, az nem működik. Ha egy adatbázis állapota elavult, előfordulhat, hogy az adatok elvesznek. A legjobb, ha elkerüli ezt a forgatókönyvet ahelyett, hogy megpróbálna helyreállni belőle.

Elavult adatbázisok elkerülése

Egy adatbázis állapota elavultra van állítva, ha az 45 nap vagy annál több napja offline állapotban van. Az adatbázisok elavult állapotának elkerülése érdekében győződjön meg arról, hogy egyik adatbázis sem érhető el offline állapotban 45 napig vagy annál tovább.

Elavult szinkronizálási csoportok elkerülése

A szinkronizálási csoport állapota elavultra van állítva, ha a szinkronizálási csoport bármely módosítása 45 napig vagy több napig nem propagálja a szinkronizálási csoport többi tagját. A szinkronizálási csoport elavult állapotának elkerülése érdekében rendszeresen ellenőrizze a szinkronizálási csoport előzménynaplóját. Győződjön meg arról, hogy az összes ütközés feloldva van, és hogy a módosítások sikeresen propagálásra kerülnek a szinkronizálási csoport adatbázisai között.

Előfordulhat, hogy egy szinkronizálási csoport nem alkalmazza a módosítást az alábbi okok valamelyike miatt:

  • Sémakompatibilitás a táblák között.
  • Adatkompatibilitás a táblák között.
  • Null értékkel rendelkező sor beszúrása olyan oszlopba, amely nem engedélyezi a null értékeket.
  • Sor frissítése idegenkulcs-korlátozást sértő értékkel.

Elavult szinkronizálási csoportok megakadályozása:

  • Frissítse a sémát a sikertelen sorokban található értékek engedélyezéséhez.
  • Frissítse az idegenkulcs-értékeket úgy, hogy azok tartalmazzák a sikertelen sorokban található értékeket.
  • Frissítse a sikertelen sorban lévő adatértékeket, hogy kompatibilisek legyenek a céladatbázis sémájával vagy idegen kulcsaival.

A leépítési problémák elkerülése

Bizonyos esetekben az adatbázis ügyfélügynökkel való regisztrációja meghiúsulhat.

Forgatókönyv

  1. Az A szinkronizálási csoport egy SQL Database-példány és egy SQL Server-adatbázis használatával jött létre, amely az 1. helyi ügynökhöz van társítva.
  2. Ugyanez a helyszíni adatbázis regisztrálva van a 2. helyi ügynökkel (ez az ügynök nincs szinkronizálási csoporthoz társítva).
  3. A helyszíni adatbázis helyi 2. ügynökből való regisztrációjának megszüntetése eltávolítja a helyszíni adatbázis A szinkronizálási csoportjának nyomkövetési és metatábláit.
  4. Az A szinkronizálási csoport műveletei sikertelenek, a következő hibaüzenettel: "Az aktuális művelet nem hajtható végre, mert az adatbázis nincs kiépítve szinkronizálásra, vagy nincs engedélye a szinkronizálási konfigurációs táblákhoz."

Megoldás

A forgatókönyv elkerülése érdekében ne regisztráljon egy adatbázist egynél több ügynökkel.

A következő forgatókönyvből való helyreállításhoz:

  1. Távolítsa el az adatbázist minden olyan szinkronizálási csoportból, amelyhez tartozik.
  2. Adja hozzá az adatbázist minden olyan szinkronizálási csoporthoz, amelyből eltávolította.
  3. Minden érintett szinkronizálási csoport üzembe helyezése (ez a művelet kiépíti az adatbázist).

Szinkronizálási csoport módosítása

Ne kíséreljen meg eltávolítani egy adatbázist egy szinkronizálási csoportból, majd szerkessze a szinkronizálási csoportot anélkül, hogy először üzembe helyezné az egyik módosítást.

Ehelyett először távolítsa el az adatbázist egy szinkronizálási csoportból. Ezután helyezze üzembe a módosítást, és várja meg, amíg a leépítés befejeződik. Ha a leépítés befejeződött, szerkesztheti a szinkronizálási csoportot, és üzembe helyezheti a módosításokat.

Ha megpróbál eltávolítani egy adatbázist, majd szerkeszteni egy szinkronizálási csoportot anélkül, hogy először üzembe helyezné az egyik módosítást, az egyik vagy a másik művelet meghiúsul. Előfordulhat, hogy a portál felülete inkonzisztenssé válik. Ha ez történik, frissítse a lapot a megfelelő állapot visszaállításához.

Sémafrissítés időtúllépésének elkerülése

Ha összetett sémát szeretne szinkronizálni, a sémafrissítés során "műveleti időtúllépés" léphet fel, ha a szinkronizálási metaadat-adatbázis alacsonyabb termékváltozatú (például alapszintű).

Megoldás

A probléma megoldásához fontolja meg a szinkronizálási metaadat-adatbázis erőforrásainak vertikális felskálázását.

További lépések

Az SQL Data Sync szolgáltatással kapcsolatos további információkért lásd:

További információ az SQL Database-ről: