Udostępnij za pośrednictwem


Rozwiązywanie problemów dotyczących wdrażania dublowania bazy danych

W tym temacie przedstawiono informacje pomocne w rozwiązywaniu problemów, konfigurując dublowanie bazy danych sesja.

Ostrzeżenie

Upewnij się, że są wszystkie spotkania Warunki wstępne dla dublowanie bazy danych.

Problem

Podsumowanie

Konta

W tym artykule omówiono wymagania dotyczące poprawne skonfigurowanie konta, pod którym SQL Server jest uruchomiony.

Punkty końcowe

W tym artykule omówiono wymagania dotyczące konfigurowania poprawnie dublowanie bazy danych endpoint każde wystąpienie serwera.

Adres systemu

Podsumowuje alternatywy dla określenia nazwy systemu wystąpienie serwera w dublowanie bazy danych konfiguracja.

Dostęp do sieci

Dokumenty wymóg, że każde wystąpienie serwera mieć dostęp do portów wystąpienie serwera lub wystąpień przez TCP.

Dublowanie przygotowanie bazy danych

Podsumowanie wymagania dotyczące przygotowania duplikat bazy danych włączyć dublowanie do uruchomienia.

Operacji nie powiodło się tworzenie pliku

Opisuje sposób odpowiedzieć operacji nie powiodło się utworzenie pliku.

Uruchamianie dublowanie (Transact-SQL)

Describes the required order for ALTER DATABASE database_name SET PARTNER ='partner_server' statements.

Konta

Konta, pod którym SQL Server jest uruchomiony musi być poprawnie skonfigurowany.

  1. Czy kont mają odpowiednie uprawnienia?

    1. Jeśli konta są uruchomione w tych samych kont domena, są redukowane szanse błędną konfiguracją.

    2. Rachunki są uruchomione w różnych domenach lub nie są konta domena, logowanie jednego konta muszą być utworzone w wzorca na innym komputerze oraz że logowanie musi mieć uprawnienia POŁĄCZ w punkcie końcowym.Aby uzyskać więcej informacji, zobacz Zarządzanie metadane podczas tworzenia bazy danych na inne wystąpienie serwera.Zawiera konto Usługa sieciowa.

  2. Jeśli SQL Server działa jako usługa, która korzysta z lokalnego konta systemowego, należy użyć certyfikatów do uwierzytelnianie.Aby uzyskać więcej informacji, zobacz Używanie certyfikatów do dublowania bazy danych.

Punkty końcowe

Punkty końcowe muszą być prawidłowo skonfigurowane.

  1. Upewnij się, że każde wystąpienie serwera (serwer dublowany, serwer duplikatu i monitor, jeśli) dublowanie bazy danych punktu końcowego.Aby uzyskać więcej informacji, zobacz sys.database_mirroring_endpoints (języka Transact-SQL) i, w zależności od postaci uwierzytelnianie, albo Jak Utwórz dublowania punkt końcowy dla uwierzytelniania systemu Windows (Transact-SQL) lub Jak Zezwalaj na bazy danych dublowania, aby używać certyfikatów dla połączeń wychodzących (Transact-SQL).

  2. Sprawdź, czy numery portów są poprawne.

    Aby zidentyfikować port, aktualnie skojarzonych z dublowanie bazy danych końcowy wystąpienie serwera za pomocą następujących Transact-SQL instrukcja.

    SELECT type_desc, port FROM sys.tcp_endpoints;
    GO
    
  3. Problemy z instalacją, które są trudne do wyjaśnienia dublowanie bazy danych zaleca się, aby sprawdzać każde wystąpienie serwera do ustalenia, czy nasłuchuje na odpowiednie porty.Aby uzyskać informacje dotyczące sprawdzania dostępności portu, zobacz MSSQLSERVER_1418.

  4. Upewnij się, że punkty końcowe są uruchomione (stan = uruchomiono).Użyj następujących na każde wystąpienie serwera Transact-SQL instrukcja.

    SELECT state_desc FROM sys.database_mirroring_endpoints
    

    Więcej informacji o state_desc kolumna, zobacz sys.database_mirroring_endpoints (języka Transact-SQL).

    Aby uruchomić punktu końcowego, użyj następujących Transact-SQL instrukcja.

    ALTER ENDPOINT Endpoint_Mirroring 
    STATE = STARTED 
    AS TCP (LISTENER_PORT = <port_number>)
    FOR database_mirroring (ROLE = ALL);
    GO
    

    Aby uzyskać więcej informacji, zobacz ZMIEŃ punkt końcowy (Transact-SQL).

  5. Sprawdź, czy rola jest poprawna.Użyj następujących na każde wystąpienie serwera Transact-SQL instrukcja.

    SELECT role FROM sys.database_mirroring_endpoints;
    GO
    

    Aby uzyskać więcej informacji, zobacz sys.database_mirroring_endpoints (języka Transact-SQL).

  6. Upewnij się, że logowanie z innego serwera ma uprawnienie POŁĄCZ.Aby określić, kto ma uprawnienia do połączenia dla punktu końcowego, na każde wystąpienie serwera użyj następujących Transact-SQL instrukcja.

    SELECT 'Metadata Check';
    SELECT EP.name, SP.STATE, 
       CONVERT(nvarchar(38), suser_name(SP.grantor_principal_id)) 
          AS GRANTOR, 
       SP.TYPE AS PERMISSION,
       CONVERT(nvarchar(46),suser_name(SP.grantee_principal_id)) 
          AS GRANTEE 
       FROM sys.server_permissions SP , sys.endpoints EP
       WHERE SP.major_id = EP.endpoint_id
       ORDER BY Permission,grantor, grantee; 
    GO
    

Adres systemu

Nazwę wystąpienie serwera w system dublowanie bazy danych konfiguracja, można nadać dowolną nazwę, która jednoznacznie identyfikuje system.Adres serwera może być nazwa systemu (Jeśli systemy są w tej samej domenie), w pełni kwalifikowaną nazwą domena lub adres IP (najlepiej, statyczny adres IP).Przy użyciu w pełni kwalifikowana nazwa domena jest gwarantowane.Aby uzyskać więcej informacji, zobacz Określanie adresu sieciowego serwera (dublowania bazy danych).

Dostęp do sieci

Każde wystąpienie serwera musi mieć możliwość dostępu do portów wystąpienie serwera lub wystąpień przez TCP.Jest to szczególnie ważne w przypadku wystąpienia serwera znajdują się w różnych domenach, które nie ufają sobie nawzajem (domen niezaufanych).Ogranicza znacznie komunikacji między wystąpieniami serwera.

Dublowanie przygotowanie bazy danych

Czy dublowanie w pierwszym czas lub ponownym uruchomieniem po dublowanie został usunięty, sprawdź, że duplikat bazy danych jest przygotowany do dublowania.

Podczas tworzenia bazy danych dublowanie na serwer duplikatu, upewnij się, że przywracanie kopia zapasowa dublowana baza danych, określając nazwę tej samej bazy danych Z NORECOVERY.Ponadto wszystkie kopie zapasowe dziennika utworzone po wykonaniu tej kopia zapasowa musi również zastosowane ponownie Z NORECOVERY.

Zaleca się także, że jest to możliwe, ścieżka duplikat bazy danych (łącznie z literą dysku) być identyczne ścieżka dublowana baza danych.Jeśli układy plik musi się różnią, na przykład, jeżeli dublowana baza danych znajduje się na dysku "f": ale systemu dublowanie nie F: dysk, należy dołączyć opcję Przenieś w instrukcja PRZYWRACANIA.

Ważna informacjaWażne:

Jeśli przenosisz pliki bazy danych podczas tworzenia duplikat bazy danych, może być niemożliwe pliki później dodać do bazy danych bez dublowanie zostanie zawieszone.

Jeśli dublowanie bazy danych została zatrzymana, wszystkie kopie zapasowe dziennika kolejnych na dublowana baza danych muszą być stosowane do dublowanie bazy danych przed dublowanie może zostać uruchomiony ponownie.

Aby uzyskać więcej informacji, zobacz Jak Przygotowywanie bazy danych dublowania do dublowania (Transact-SQL).

Operacji nie powiodło się tworzenie pliku

Dodawanie pliku bez wywierania wpływu dublowanie sesja wymaga istnienia ścieżka pliku na obu serwerach.Dlatego jeśli przenosisz pliki bazy danych podczas tworzenia bazy danych dublowania, później operacji dodawania pliku może nie duplikat bazy danych i spowodować dublowanie zawieszone.

Aby rozwiązać ten problem:

  1. Właściciel bazy danych należy usunąć dublowanie sesja i przywracanie pełna kopia zapasowa grupa plików zawierający dodany plik.

  2. Właściciel musi następnie dziennik zawierający operacji Dodaj plik serwer dublowany i przywracanie tworzyć kopię zapasową zapasowych ręcznie kopia zapasowa dziennika duplikat bazy danych, korzystając z opcji Z NORECOVERY i przenieść.Spowoduje to powstanie określona ścieżka do pliku na serwer duplikatu i przywraca nowy plik do tej lokalizacji.

  3. Aby przygotować bazy danych do nowej sesja dublowanie, właściciel musi także przywracanie nr odzyskiwania z innych zapasowych zaległych dziennika z serwer dublowany.

For more information, see Usuwanie dublowania baz danych, Jak Przygotowywanie bazy danych dublowania do dublowania (Transact-SQL), Jak Ustanowienie bazy danych, dublowanie sesji za pomocą uwierzytelniania systemu Windows (Transact-SQL), Używanie certyfikatów do dublowania bazy danych, or Jak Konfigurowanie bazy danych, dublowanie sesji (SQL Server Management Studio).

Uruchamianie dublowanie (Transact-SQL)

The order in which the ALTER DATABASE database_name SET PARTNER ='partner_server' statements are issued is very important.

  1. Pierwsza instrukcja musi być uruchamiane na serwer duplikatu.Gdy to instrukcja wydano dublowanie serwer nie próbuje skontaktować się z innym wystąpienie serwera.Zamiast tego serwer duplikatu instruuje swojej bazy danych poczekać, aż serwer duplikatu został nawiązany serwer dublowany.

  2. Druga Instrukcja ALTER DATABASE należy uruchomić serwer dublowany.Ta instrukcja powoduje, że serwer dublowany próby połączenia z serwerem dublowania.Po połączenia jest tworzona dublowanie następnie próbuje połączyć się z serwer dublowany na inne połączenie.

Aby uzyskać więcej informacji, zobacz ALTER DATABASE (Transact-SQL).

Komunikat o błędzie 1418

To SQL Server komunikat wskazuje, że adres sieciowy serwer jest nieosiągalny lub nie istnieje, i sugeruje, sprawdź nazwę adresu sieciowego i ponownie opublikowała polecenia.Aby uzyskać więcej informacji, zobacz MSSQLSERVER_1418.

Transakcje między bazami danych

Kiedy jest są dublowane bazy danych w trybie wysokiego bezpieczeństwa z automatyczna praca awaryjna, automatyczna praca awaryjna może prowadzić do automatycznego i ewentualnie niepoprawne rozpoznawanie wątpliwych transakcji.Jeśli automatyczna praca awaryjna występuje albo bazy danych podczas zaangażowanych transakcji między bazami danych logicznych niespójności mogą wystąpić między bazami danych.

Typy transakcji między bazami danych, które mogą wpływać automatyczna praca awaryjna obejmują:

  • Transakcja, która jest aktualizowanie wielu baz danych, w tym samym wystąpienie z SQL Server.

  • Transakcje, które używają Microsoft Distributed Transaction Coordinator (MS DTC).

Aby uzyskać więcej informacji, zobacz Bazy danych transakcji dublowania i między bazami danych.