Rozwiązywanie problemów z funkcją SQL Data Sync

Dotyczy:Azure SQL Database

W tym artykule opisano sposób rozwiązywania znanych problemów z usługą SQL Data Sync na platformie Azure. Jeśli istnieje rozwiązanie problemu, podano go tutaj.

Aby zapoznać się z omówieniem usługi SQL Data Sync, zobacz Synchronizowanie danych w wielu chmurach i lokalnych bazach danych za pomocą usługi SQL Data Sync na platformie Azure.

Ważne

Usługa SQL Data Sync nie obsługuje obecnie usługi Azure SQL Managed Instance ani Azure Synapse Analytics.

Błędy synchronizacji

Synchronizacja kończy się niepowodzeniem w interfejsie użytkownika portalu dla lokalnych baz danych skojarzonych z agentem klienta

Synchronizacja kończy się niepowodzeniem w interfejsie użytkownika usługi SQL Data Sync w portalu dla lokalnych baz danych skojarzonych z agentem klienta. Na komputerze lokalnym z uruchomionym agentem są widoczne System.IO.IOException błędy w dzienniku zdarzeń. Te błędy informują, że dysk ma niewystarczającą ilość miejsca.

  • Przyczyna. Dysk ma niewystarczającą ilość miejsca.

  • Rozwiązanie. Utwórz więcej miejsca na dysku, na którym znajduje się katalog %TEMP%.

Moja grupa synchronizacji jest zablokowana w stanie przetwarzania

Grupa synchronizacji w usłudze SQL Data Sync od dłuższego czasu jest w stanie przetwarzania. Nie odpowiada na polecenie stop , a dzienniki nie zawierają nowych wpisów.

Dowolny z następujących warunków może spowodować zablokowanie grupy synchronizacji w stanie przetwarzania:

  • Przyczyna. Agent klienta jest w trybie offline

  • Rozwiązanie. Upewnij się, że agent klienta jest w trybie online, a następnie spróbuj ponownie.

  • Przyczyna. Brak agenta klienta lub został on odinstalowany.

  • Rozwiązanie. Jeśli agent klienta został odinstalowany lub brakuje go z innego powodu:

    1. Usuń plik XML agenta z folderu instalacji usługi SQL Data Sync, jeśli plik istnieje.
    2. Zainstaluj agenta na komputerze lokalnym (może to być ten sam lub inny komputer). Następnie prześlij klucz agenta wygenerowany w portalu dla agenta, który jest widoczny jako będący w trybie offline.
  • Przyczyna. Usługa SQL Data Sync jest zatrzymana.

  • Rozwiązanie. Uruchom ponownie usługę SQL Data Sync.

    1. W menu Start wyszukaj pozycję Usługi.
    2. W wynikach wyszukiwania wybierz pozycję Usługi.
    3. Znajdź usługę SQL Data Sync.
    4. Jeśli stan usługi to Zatrzymano, kliknij prawym przyciskiem myszy nazwę usługi, a następnie wybierz polecenie Uruchom.

Uwaga

Jeśli powyższe informacje nie przeniosą grupy synchronizacji ze stanu przetwarzania, pomoc techniczna firmy Microsoft może zresetować stan grupy synchronizacji. Aby zresetować stan grupy synchronizacji, na stronie pytań i odpowiedzi firmy Microsoft dla usługi Azure SQL Database utwórz wpis. W poście dołącz identyfikator subskrypcji i identyfikator grupy synchronizacji dla grupy, która musi zostać zresetowana. Inżynier pomoc techniczna firmy Microsoft odpowie na Twój wpis i poinformuje Cię, kiedy stan został zresetowany.

Widzę błędne dane w tabelach

Jeśli synchronizacja obejmuje tabele, które mają taką samą nazwę, ale pochodzą z różnych schematów bazy danych, to będą widoczne błędne dane w tych tabelach po synchronizacji.

  • Przyczyna. Proces aprowizacji usługi SQL Data Sync używa tych samych tabel śledzenia dla tabel, które mają taką samą nazwę, ale znajdują się w różnych schematach. Dlatego zmiany z obu typów tabel są odzwierciedlane w tej samej tabeli śledzenia. Powoduje to błędne zmiany danych podczas synchronizacji.

  • Rozwiązanie. Upewnij się, że nazwy tabel uwzględnionych w synchronizacji są odmienne, nawet jeśli tabele te należą do różnych schematów w bazie danych.

Widzę niespójne dane klucza podstawowego po pomyślnej synchronizacji

Synchronizacja jest zgłaszana jako pomyślna, a dziennik nie pokazuje nieudanych ani pominiętych wierszy, ale widzisz, że dane klucza podstawowego są niespójne w bazach danych w grupie synchronizacji.

  • Przyczyna. Taki wynik jest zgodny z projektem. Zmiany w dowolnej kolumnie klucza podstawowego powodują niespójne dane w wierszach, w których ten klucz został zmieniony.

  • Rozwiązanie. Aby zapobiec temu problemowi, upewnij się, że żadne dane w kolumnie klucza podstawowego nie są zmieniane. Aby rozwiązać ten problem po jego wystąpieniu, usuń wiersz zawierający niespójne dane z wszystkich punktów końcowych w grupie synchronizacji. Następnie ponownie wstaw ten wiersz.

Widzę znaczny spadek wydajności

Wydajność znacznie spada, być może do tego stopnia, że nie można nawet otworzyć interfejsu użytkownika usługi Data Sync.

  • Przyczyna. Najbardziej prawdopodobną przyczyną jest pętla synchronizacji. Pętla synchronizacji występuje, gdy synchronizacja grupy synchronizacji A wyzwala synchronizację grupy synchronizacji B, która następnie wyzwala synchronizację grupy synchronizacji A. Rzeczywista sytuacja może być bardziej złożona i może obejmować więcej niż dwie grupy synchronizacji w pętli. Problem polega na tym, że istnieje cykliczne wyzwalanie synchronizacji spowodowane przez grupy synchronizacji nakładające się na siebie.

  • Rozwiązanie. Najlepszym rozwiązaniem jest zapobieganie. Upewnij się, że nie masz odwołań cyklicznych w grupach synchronizacji. Żadna grupa synchronizacji nie może synchronizować żadnego wiersza synchronizowanego przez inną grupę synchronizacji.

Widzę następujący komunikat: "Nie można wstawić wartości NULL do kolumny> kolumny<. Kolumna nie zezwala na wartości null". Co to znaczy i jak mogę to naprawić?

Ten komunikat o błędzie wskazuje, że wystąpił jeden z dwóch następujących problemów:

  • Tabela nie ma klucza podstawowego. Aby rozwiązać ten problem, dodaj klucz podstawowy do wszystkich synchronizowanych tabel.
  • W instrukcji CREATE INDEX znajduje się klauzula WHERE. Usługa Data Sync nie obsługuje tego warunku. Aby rozwiązać ten problem, usuń klauzulę WHERE lub ręcznie wprowadź zmiany we wszystkich bazach danych.

Jak usługa Data Sync obsługuje odwołania cykliczne? Oznacza to, że gdy te same dane są synchronizowane w wielu grupach synchronizacji i w rezultacie zmieniają się?

Usługa Data Sync nie obsługuje odwołań cyklicznych. Pamiętaj, aby ich unikać.

Problemy z agentem klienta

Aby rozwiązać problemy z agentem klienta, zobacz Rozwiązywanie problemów z agentem usługi Data Sync.

Problemy z konfiguracją i konserwacją

Otrzymuję komunikat "Dysk z wolnego miejsca"

  • Przyczyna. Komunikat „Brak miejsca na dysku” może pojawić się, jeśli konieczne jest usunięcie pozostawionych plików. Może to być spowodowane przez oprogramowanie antywirusowe lub przez to, że pliki są otwarte podczas próby operacji usunięcia.

  • Rozwiązanie. Ręcznie usuń pliki synchronizacji, które znajdują się w folderze %temp% (del \*sync\* /s). Następnie usuń podkatalogi w folderze %temp%.

Ważne

Nie usuwaj żadnych plików, gdy synchronizacja jest w toku.

Nie mogę usunąć grupy synchronizacji

Próba usunięcia grupy synchronizacji kończy się niepowodzeniem. Dowolny z następujących scenariuszy może spowodować niepowodzenie usunięcia grupy synchronizacji:

  • Przyczyna. Agent klienta jest w trybie offline.

  • Rozwiązanie. Upewnij się, że agent klienta jest w trybie online, a następnie spróbuj ponownie.

  • Przyczyna. Brak agenta klienta lub został on odinstalowany.

  • Rozwiązanie. Jeśli agent klienta został odinstalowany lub brakuje go z innego powodu:
    a. Usuń plik XML agenta z folderu instalacji usługi SQL Data Sync, jeśli plik istnieje.
    b. Zainstaluj agenta na komputerze lokalnym (może to być ten sam lub inny komputer). Następnie prześlij klucz agenta wygenerowany w portalu dla agenta, który jest widoczny jako będący w trybie offline.

  • Przyczyna. Baza danych jest w trybie offline.

  • Rozwiązanie. Upewnij się, że wszystkie bazy danych są w trybie online.

  • Przyczyna. Grupa synchronizacji aprowizuje lub synchronizuje.

  • Rozwiązanie. Poczekaj na zakończenie procesu aprowizacji lub synchronizacji, a następnie ponów próbę usunięcia grupy synchronizacji.

Nie mogę wyrejestrować bazy danych programu SQL Server

  • Przyczyna. Najprawdopodobniej próbujesz wyrejestrować bazę danych, która została już usunięta.

  • Rozwiązanie. Aby wyrejestrować bazę danych programu SQL Server, wybierz bazę danych, a następnie wybierz pozycję Wymuś usunięcie.

    Jeśli ta operacja nie umożliwi usunięcia bazy danych z grupy synchronizacji:

    1. Zatrzymaj, a następnie uruchom ponownie usługę hosta agenta klienta:
      a. Wybierz menu Start.
      b. W polu wyszukiwania wprowadź services.msc.
      c. W sekcji Programy w okienku wyników wyszukiwania kliknij dwukrotnie pozycję Usługi.
      d. Kliknij prawym przyciskiem myszy usługę SQL Data Sync.
      e. Jeśli usługa jest uruchomiona, zatrzymaj ją.
      f. Kliknij usługę prawym przyciskiem myszy, a następnie wybierz pozycję Uruchom.
      g. Sprawdź, czy baza danych jest nadal zarejestrowana. Jeśli nie jest już zarejestrowana, nie musisz nic więcej robić. W przeciwnym razie przejdź do następnego kroku.
    2. Otwórz aplikację agenta klienta (SqlAzureDataSyncAgent).
    3. Wybierz pozycję Edytuj poświadczenia, a następnie wprowadź poświadczenia dla bazy danych.
    4. Kontynuuj wyrejestrowanie.

Nie mam wystarczających uprawnień do uruchamiania usług systemowych

  • Przyczyna. Ten błąd występuje w dwóch sytuacjach:

    • Nazwa użytkownika i/lub hasło są niepoprawne.
    • Określone konto użytkownika nie ma wystarczających uprawnień do logowania się jako usługa.
  • Rozwiązanie. Udziel poświadczeń do logowania w trybie usługi dla konta użytkownika:

    1. Przejdź do pozycji Start> Panel sterowania> Administracja istrative Tools>Local Security Policy Local Policy>>Zarządzanie prawami użytkownika.
    2. Wybierz pozycję Zaloguj się jako usługa.
    3. W oknie dialogowym Właściwości dodaj konto użytkownika.
    4. Wybierz Zastosuj, a następnie wybierz OK.
    5. Zamknij wszystkie okna.

Baza danych ma stan „Nieaktualna”

  • Przyczyna. Usługa SQL Data Sync przestaje obsługiwać bazy danych, które były w trybie offline przez co najmniej 45 dni (licząc od czasu przejścia bazy danych w tryb offline). Jeśli baza danych jest w trybie offline przez co najmniej 45 dni, a następnie wraca do trybu online, ma stan Nieaktualna.

  • Rozwiązanie. Możesz uniknąć stanu nieaktualnego , upewniając się, że żadna z baz danych nie przechodzi w tryb offline przez 45 dni lub więcej.

    Jeśli stan bazy danych jest nieaktualny:

    1. Usuń bazę danych, która ma stan nieaktualny z grupy synchronizacji.
    2. Dodaj bazę danych z powrotem do grupy synchronizacji.

    Ostrzeżenie

    Utracisz wszystkie zmiany wprowadzone w tej bazie danych, gdy była w trybie offline.

Grupa synchronizacji ma stan "Nieaktualne"

  • Przyczyna. Jeśli co najmniej jedna zmiana nie zostanie zastosowana przez cały okres przechowywania 45 dni, grupa synchronizacji może stać się nieaktualna.

  • Rozwiązanie. Aby uniknąć nieaktualnego stanu grupy synchronizacji, należy regularnie sprawdzać wyniki zadań synchronizacji w podglądzie historii. Zbadaj i rozwiąż wszelkie zmiany, których nie można zastosować.

    Jeśli stan grupy synchronizacji to Nieaktualna, usuń grupę synchronizacji, a następnie utwórz ją ponownie.

Nie można usunąć grupy synchronizacji w ciągu trzech minut od odinstalowania lub zatrzymania agenta

Nie można usunąć grupy synchronizacji w ciągu trzech minut od odinstalowania lub zatrzymania skojarzonego agenta klienta usługi SQL Data Sync.

  • Rozwiązanie.

    1. Usuń grupę synchronizacji, gdy skojarzone agenci synchronizacji są w trybie online (zalecane).
    2. Jeśli agent jest w trybie offline, ale jest zainstalowany, przełącz go do trybu online na komputerze lokalnym. Poczekaj, aż stan agenta zostanie wyświetlony jako Online w portalu usługi SQL Data Sync. Następnie usuń grupę synchronizacji.
    3. Jeśli agent jest w trybie offline, ponieważ został odinstalowany:
      a. Usuń plik XML agenta z folderu instalacji usługi SQL Data Sync, jeśli plik istnieje.
      b. Zainstaluj agenta na komputerze lokalnym (może to być ten sam lub inny komputer). Następnie prześlij klucz agenta wygenerowany w portalu dla agenta, który jest widoczny jako będący w trybie offline.
      c. Spróbuj usunąć grupę synchronizacji.

Co się stanie po przywróceniu utraconej lub uszkodzonej bazy danych?

Jeśli przywrócisz utraconą lub uszkodzoną bazę danych z kopii zapasowej, może wystąpić niezgodność danych w grupach synchronizacji, do których należy ta baza danych.

Komunikat o błędzie „Sync0022 Klient nie ma autoryzacji do wykonania akcji 'syncGroupOperationResults/read'”

Jeśli zostanie wyświetlony komunikat Sync0022 Customer does not have authorization to perform action 'syncGroupOperationResults/read'o błędzie , konto próbujące wykonać operację nie ma wystarczających uprawnień na poziomie subskrypcji. Dodaj:

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

Aby uzyskać więcej informacji, zobacz Kontrola dostępu oparta na rolach dla operacji dostawcy zasobów i Konta bazy danych usługi SQL Data Sync z najmniejszymi wymaganymi uprawnieniami.

Następne kroki

Aby uzyskać więcej informacji na temat usługi SQL Data Sync, zobacz:

Aby uzyskać więcej informacji na temat usługi SQL Database, zobacz: