Sdílet prostřednictvím


Řešení potíží s funkcí Synchronizace dat SQL

Platí pro:Azure SQL Database

Tento článek popisuje, jak řešit známé problémy s Synchronizace dat SQL v Azure. Pokud existuje řešení problému, najdete ho tady.

Přehled Synchronizace dat SQL najdete v tématu Synchronizace dat napříč několika cloudovými a místními databázemi s Synchronizace dat SQL v Azure.

Důležité

Synchronizace dat SQL v tuto chvíli nepodporuje službu Azure SQL Managed Instance ani Azure Synapse Analytics.

Problémy se synchronizací

Synchronizace selže v uživatelském rozhraní portálu pro místní databáze, které jsou přidružené k klientskému agentu

Synchronizace selže v uživatelském rozhraní portálu Synchronizace dat SQL pro místní databáze, které jsou přidružené k klientskému agentu. V místním počítači, na kterém běží agent, se v protokolu událostí zobrazí System.IO.IOException chyby. Chyby říkají, že disk nemá dostatek místa.

  • Příčina: Jednotka nemá dostatek místa.

  • Řešení: Na jednotce, na které se nachází adresář %TEMP%, vytvořte více místa.

Moje skupina synchronizace je zablokovaná ve stavu zpracování

Skupina synchronizace v Synchronizace dat SQL byla dlouho ve stavu zpracování. Nereaguje na příkaz stop a v protokolech se nezobrazují žádné nové položky.

Některá z následujících podmínek může vést k zablokování skupiny synchronizace ve stavu zpracování:

  • Příčina: Klientský agent je offline.

  • Řešení: Ujistěte se, že je klientský agent online, a zkuste to znovu.

  • Příčina: Klientský agent je odinstalovaný nebo chybí.

  • Řešení: Pokud je klientský agent odinstalovaný nebo chybí z jiného důvodu:

    1. Odeberte z instalační složky Synchronizace dat SQL soubor XML agenta, pokud existuje.
    2. Nainstalujte agenta na místní počítač (může se jednat o stejný nebo jiný počítač). Pak odešlete klíč agenta, který se vygeneruje na portálu, pro agenta, který se zobrazuje ve stavu offline.
  • Příčina: Služba Synchronizace dat SQL je zastavená.

  • Řešení: Restartujte službu Synchronizace dat SQL.

    1. V nabídce Start vyhledejte Služby.
    2. Ve výsledcích hledání vyberte Služby.
    3. Vyhledejte službu Synchronizace dat SQL.
    4. Pokud je stav služby Zastaveno, klikněte pravým tlačítkem myši na název služby a pak vyberte Spustit.

Poznámka:

Pokud předchozí informace nepřesouvají vaši skupinu synchronizace mimo stav zpracování, podpora Microsoftu může obnovit stav vaší skupiny synchronizace. Pokud chcete obnovit stav skupiny synchronizace, vytvořte příspěvek na stránce otázek Microsoft Q&A pro Azure SQL Database. V příspěvku uveďte ID předplatného a ID skupiny synchronizace pro skupinu, kterou je potřeba resetovat. Technik podpora Microsoftu odpoví na váš příspěvek a upozorní vás, kdy byl stav resetován.

V tabulkách se zobrazují chybná data

Pokud jsou tabulky, které mají stejný název, ale pocházejí z různých schémat databáze, jsou součástí synchronizace, zobrazí se po synchronizaci chybná data v tabulkách.

  • Příčina: Proces zřizování Synchronizace dat SQL používá stejné sledovací tabulky pro tabulky se stejným názvem, ale jsou v různých schématech. Z tohoto důvodu se změny z obou tabulek projeví ve stejné sledovací tabulce. To způsobí chybné změny dat během synchronizace.

  • Řešení: Ujistěte se, že se názvy tabulek, které jsou součástí synchronizace, liší, i když tabulky patří do různých schémat v databázi.

Po úspěšné synchronizaci se zobrazují nekonzistentní data primárního klíče

Synchronizace se nahlásí jako úspěšná a v protokolu se nezobrazí žádné neúspěšné nebo přeskočené řádky, ale vidíte, že data primárního klíče jsou mezi databázemi ve skupině synchronizace nekonzistentní.

  • Příčina: Tento výsledek je záměrně. Změny ve sloupci primárního klíče vedou k nekonzistentním datům v řádcích, kde byl primární klíč změněn.

  • Řešení: Pokud chcete tomuto problému zabránit, ujistěte se, že se nezmění žádná data ve sloupci primárního klíče. Pokud chcete tento problém vyřešit poté, co k němu došlo, odstraňte řádek, který obsahuje nekonzistentní data ze všech koncových bodů ve skupině synchronizace. Potom řádek znovu vložte.

Vidím významné snížení výkonu

Výkon se výrazně snižuje, možná až do bodu, kdy nemůžete ani otevřít uživatelské rozhraní Synchronizace dat.

  • Příčina: Nejpravděpodobnější příčinou je synchronizační smyčka. Synchronizační smyčka nastane, když synchronizace podle skupiny synchronizace A aktivuje synchronizaci podle skupiny synchronizace B, která pak aktivuje synchronizaci podle skupiny synchronizace A. Skutečná situace může být složitější a ve smyčce může zahrnovat více než dvě skupiny synchronizace. Problémem je, že existuje cyklický trigger synchronizace, který je způsoben překrývajícími se skupinami synchronizace.

  • Řešení: Nejlepším řešením je prevence. Ujistěte se, že ve skupinách synchronizace nemáte cyklický odkaz. Každý řádek synchronizovaný jednou skupinou synchronizace nejde synchronizovat jinou skupinou synchronizace.

Zobrazuje se mi tato zpráva: "Nelze vložit hodnotu NULL do sloupce sloupce<>. Sloupec nepovoluje hodnoty null." Co to znamená a jak to můžu opravit?

Tato chybová zpráva značí, že došlo k jednomu z následujících dvou problémů:

  • Tabulka nemá primární klíč. Pokud chcete tento problém vyřešit, přidejte primární klíč do všech synchronizovaných tabulek.
  • V příkazu CREATE INDEX je klauzule WHERE. Synchronizace dat tuto podmínku nezpracuje. Pokud chcete tento problém vyřešit, odeberte klauzuli WHERE nebo proveďte změny ve všech databázích ručně.

Jak Synchronizace dat zpracovává cyklický odkaz? To znamená, že když se stejná data synchronizují ve více skupinách synchronizace a v důsledku toho se neustále mění?

Synchronizace dat nezpracuje cyklický odkaz. Nezapomeňte se jim vyhnout.

Problémy s klientským agentem

Informace o řešení potíží s klientským agentem najdete v tématu Řešení potíží s Synchronizace dat agentem.

Problémy nastavení a údržby

Zobrazuje se mi zpráva o tom, že je místo na disku.

  • Příčina: Pokud je potřeba odstranit zbývající soubory, může se zobrazit zpráva "Disk je nedostatek místa". Příčinou může být antivirový software nebo otevření souborů při pokusu o odstranění operací.

  • Řešení: Ručně odstraňte synchronizační soubory, které jsou ve složce %temp% (del \*sync\* /s). Potom odstraňte podadresáře ve složce %temp%.

Důležité

Během synchronizace neodstraňovat žádné soubory.

Nemůžu odstranit svoji synchronizační skupinu

Pokus o odstranění skupiny synchronizace selže. Některé z následujících scénářů můžou způsobit selhání odstranění skupiny synchronizace:

  • Příčina: Klientský agent je offline.

  • Řešení: Ujistěte se, že je klientský agent online, a zkuste to znovu.

  • Příčina: Klientský agent je odinstalovaný nebo chybí.

  • Řešení: Pokud je klientský agent odinstalovaný nebo chybí z jiného důvodu:
    a. Odeberte z instalační složky Synchronizace dat SQL soubor XML agenta, pokud existuje.
    b. Nainstalujte agenta na místní počítač (může se jednat o stejný nebo jiný počítač). Pak odešlete klíč agenta, který se vygeneruje na portálu, pro agenta, který se zobrazuje ve stavu offline.

  • Příčina: Databáze je offline.

  • Řešení: Ujistěte se, že jsou vaše databáze online.

  • Příčina: Skupina synchronizace provádí zřizování nebo synchronizaci.

  • Řešení: Počkejte, až se proces zřizování nebo synchronizace dokončí, a pak zkuste skupinu synchronizace odstranit znovu.

Nejde mi zrušit registraci databáze SQL Serveru

  • Příčina: S největší pravděpodobností se pokoušíte zrušit registraci databáze, která už byla odstraněna.

  • Řešení: Pokud chcete zrušit registraci databáze SQL Serveru, vyberte databázi a pak vyberte Vynutit odstranění.

    Pokud se této operaci nepodaří odebrat databázi ze skupiny synchronizace:

    1. Zastavte a restartujte hostitelskou službu klientského agenta:
      a. Vyberte nabídku Start.
      b. Do vyhledávacího pole zadejte services.msc.
      c. V části Programy v podokně výsledků hledání poklikejte na Služby.
      d. Klikněte pravým tlačítkem na službu Synchronizace dat SQL.
      e. Pokud je služba spuštěná, zastavte ji.
      f. Klikněte pravým tlačítkem myši na službu a pak vyberte Spustit.
      g. Zkontrolujte, jestli je databáze stále zaregistrovaná. Pokud už není zaregistrovaný, máte hotovo. V opačném případě pokračujte dalším krokem.
    2. Otevřete aplikaci klientského agenta (SqlAzureDataSyncAgent).
    3. Vyberte Upravit přihlašovací údaje a zadejte přihlašovací údaje pro databázi.
    4. Pokračujte v registraci.

Nemám dostatečná oprávnění ke spuštění systémových služeb

  • Příčina: K této chybě dochází ve dvou situacích:

    • Uživatelské jméno nebo heslo jsou nesprávné.
    • Zadaný uživatelský účet nemá dostatečná oprávnění pro přihlášení jako službu.
  • Řešení: Udělte uživatelskému účtu přihlašovací údaje jako služba:

    1. Přejděte na Start> Ovládací panely> Správa istrative Tools>Local Security Policy Local Policy Local Policy>>User Rights Management.
    2. Vyberte Přihlásit se jako služba.
    3. V dialogovém okně Vlastnosti přidejte uživatelský účet.
    4. Vyberte Apply (Použít) a pak vyberte OK.
    5. Zavřete všechna okna.

Databáze má stav Zastaralý.

  • Příčina: Synchronizace dat SQL odebere databáze, které byly ze služby offline po dobu 45 dnů nebo déle (jak se počítá od doby, kdy databáze přešla do režimu offline). Pokud je databáze offline po dobu 45 dnů nebo déle a pak se vrátí do režimu online, stav je zastaralý.

  • Řešení: Můžete se vyhnout zastaralému stavu tím, že zajistíte, že žádná z vašich databází nebude po dobu 45 dnů nebo déle offline.

    Pokud je stav databáze zastaralý:

    1. Odeberte databázi se stavem Zastaralý ze skupiny synchronizace.
    2. Přidejte databázi zpět do skupiny synchronizace.

    Upozorňující

    Během offline režimu ztratíte všechny změny provedené v této databázi.

Skupina synchronizace má stav Zastaralý.

  • Příčina: Pokud se nepodaří použít jednu nebo více změn po celou dobu uchovávání 45 dnů, může být skupina synchronizace zastaralá.

  • Řešení: Abyste se vyhnuli zastaralému stavu skupiny synchronizace, pravidelně zkontrolujte výsledky úloh synchronizace v prohlížeči historie. Prozkoumejte a vyřešte všechny změny, které se nepoužijí.

    Pokud je stav skupiny synchronizace zastaralý, odstraňte skupinu synchronizace a pak ji znovu vytvořte.

Skupinu synchronizace nejde odstranit během tří minut od odinstalace nebo zastavení agenta.

Skupinu synchronizace nemůžete odstranit během tří minut od odinstalace nebo zastavení přidruženého Synchronizace dat SQL klientského agenta.

  • Řešení:

    1. Odeberte skupinu synchronizace, když jsou přidružené agenty synchronizace online (doporučeno).
    2. Pokud je agent offline, ale je nainstalovaný, přepněte ho do režimu online na místním počítači. Počkejte, až se na portálu Synchronizace dat SQL zobrazí stav agenta online. Potom odeberte skupinu synchronizace.
    3. Pokud je agent offline, protože byl odinstalován:
      a. Odeberte z instalační složky Synchronizace dat SQL soubor XML agenta, pokud existuje.
      b. Nainstalujte agenta na místní počítač (může se jednat o stejný nebo jiný počítač). Pak odešlete klíč agenta, který se vygeneruje na portálu, pro agenta, který se zobrazuje ve stavu offline.
      c. Zkuste odstranit skupinu synchronizace.

Co se stane, když obnovím ztracenou nebo poškozenou databázi?

Pokud obnovíte ztracenou nebo poškozenou databázi ze zálohy, může dojít k nekonvergenci dat ve skupinách synchronizace, do kterých databáze patří.

Chybová zpráva "Sync0022 Customer nemá autorizaci k provedení akce syncGroupOperationResults/read".

Pokud se zobrazí chybová zpráva Sync0022 Customer does not have authorization to perform action 'syncGroupOperationResults/read', účet, který se o operaci pokouší, nemá dostatečná oprávnění na úrovni předplatného. Přidejte:

  • Microsoft.Sql/locations/syncMemberOperationResults/read
  • Microsoft.Sql/locations/syncAgentOperationResults/read
  • Microsoft.Sql/locations/syncGroupOperationResults/read

Další informace najdete v tématu Řízení přístupu na základě role poskytovatele prostředků a účty databáze Synchronizace dat SQL s nejnižšími požadovanými oprávněními.

Další kroky

Další informace o Synchronizace dat SQL najdete tady:

Další informace o službě SQL Database najdete tady: