ZMIANY bazy danych bazy danych, dublowanie (Transact-SQL)

Służy do sterowania dublowanie bazy danych bazy danych.Wartości określone opcje dublowanie bazy danych stosowane do obu kopii bazy danych i dublowanie bazy danych sesja jako całości.Opcja tylko jeden dublowanie bazy danych jest dozwolony dla instrukcjaALTER DATABASE.

Ostrzeżenie

Zaleca się skonfigurowanie dublowanie bazy danych poza godzinami szczytu, ponieważ konfiguracja może wpływać na wydajność.

Informacje dublowanie bazy danych, zobacz Dublowanie administracji bazy danych.Dla innych opcji ZMIEŃ bazę danych, zobacz ALTER DATABASE (Transact-SQL).Dla innych opcji ZMIENIA ustawienie bazy danych, zobacz ZMIENIA opcje zestawu bazy danych (Transact-SQL).

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

ALTER DATABASE database_name 
SET { <partner_option> | <witness_option> }
  <partner_option> ::=
    PARTNER { = 'partner_server' 
            | FAILOVER 
            | FORCE_SERVICE_ALLOW_DATA_LOSS
            | OFF
            | RESUME 
            | SAFETY { FULL | OFF }
            | SUSPEND 
            | TIMEOUT integer
            }
  <witness_option> ::=
    WITNESS { = 'witness_server' 
            | OFF 
            }

Argumenty

Ważna informacjaWażne:

Polecenie Ustaw partnera lub ŚWIADKA USTAWIĆ może zakończyć się pomyślnie, gdy wprowadzono, ale później zakończyć się niepowodzeniem.

  • database_name
    Jest to nazwa bazy danych ma zostać zmodyfikowana.

  • PARTNER <partner_option>
    Określa właściwości bazy danych, które definiują partnerów pracy awaryjnej, dublowanie bazy danych sesja i ich zachowanie.Niektóre opcje Ustaw PARTNER może być zestaw na obu partner; inne są ograniczone do serwer dublowany lub serwer duplikatu.Aby uzyskać więcej informacji zobacz poszczególne opcje partnera, które należy wykonać.Ustaw partnera klauzula wpływa na obie kopie bazy danych, niezależnie od partner , na którym jest określony.

    Aby wykonać partnera zestaw instrukcjaPaństwo końcowych obu partnerów musi być zestaw na ROZPOCZĘTE.Zauważ, Rola punktu końcowego serwera każdego partner wystąpienie dublowanie bazy danych musi być, zestaw partnera lub wszystkie.Aby uzyskać informacje dotyczące sposobu określania punktu końcowego, zobacz Jak Utwórz dublowania punkt końcowy dla uwierzytelniania systemu Windows (Transact-SQL).Uczyć się roli i stan punktu końcowego serwera wystąpienie, w tym wystąpienie, dublowanie bazy danych należy użyć następujących Transact-SQLinstrukcja:

    SELECT role_desc, state_desc FROM sys.database_mirroring_endpoints
    

    <partner_option> :: =

    Ostrzeżenie

    Tylko jeden <partner_option> jest dozwolony dla partnera USTAWIĆ klauzula.

    • 'partner_server'
      Określa adres sieciowy serwer wystąpienie SQL Server jako praca awaryjna partner w nowej dublowanie bazy danych sesja.Każda sesja wymaga dwóch partnerów: system uruchamiany jako serwer dublowanyi innych rozpoczyna się jako serwer duplikatu.Zaleca się, że partnerzy te znajdują się na różnych komputerach.

      Ta opcja jest określony czas sesja na każdy partner.Inicjowanie dublowanie bazy danych sesja wymaga dwóch ALTER DATABASE database USTAWIĆ partnera ='partner_server" instrukcji.Ich kolejność jest istotna.Najpierw połączyć się z serwer duplikatui określić serwer dublowany wystąpienie jako partner_server (Ustaw partnera ='principal_server").Po drugie, łączenie się z serwer dublowanyi określić serwer duplikatu wystąpienie jako partner_server (Ustaw partnera ='mirror_server"); Uruchamia dublowanie bazy danych sesja między tymi dwoma partnerami.Aby uzyskać więcej informacji, zobacz Konfigurowanie dublowania baz danych.

      Wartość partner_server jest adres sieciowy serwera.Ma następującą składnię:

      TCP**: / /<adres systemu>:**<port>

      w przypadku gdy

      • <adres systemu> jest ciąg, takie jak nazwa systemu, nazwę domena lub adres IP, który jednoznacznie identyfikuje system komputera obiekt docelowy .

      • <Port> jest numerem portu, skojarzony z punktem końcowym serwera partner wystąpienie dublowanie .

      Aby uzyskać więcej informacji, zobacz Określanie adresu sieciowego serwera (dublowania bazy danych).

      Poniższy przykład przedstawia ustawianie partnera ='partner_server" klauzula:

      'TCP://MYSERVER.mydomain.Adventure-Works.com:7777'
      
      Ważna informacjaWażne:

      Jeśli sesja jest zestaw w górę przy użyciu instrukcja ALTER DATABASE zamiast SQL Server Management Studio, sesja jest zestaw transakcji pełnego bezpieczeństwa domyślnie (bezpieczeństwa jest zestaw pełne) i działa w trybie wysokiego bezpieczeństwa bez automatyczna praca awaryjna.Aby umożliwić automatyczna praca awaryjna, skonfiguruj świadka; Aby uruchomić w trybie wysokiej wydajności, należy wyłączyć bezpieczeństwa transakcji (bezpieczeństwa Wył.).

    • PRACA AWARYJNA
      Ręczne inicjowanie pracy awaryjnej serwer dublowany serwer duplikatu.Pracy AWARYJNEJ można określić tylko na serwer dublowany.Ta opcja jest prawidłowa tylko wtedy, gdy ustawienie bezpieczeństwa jest pełny (domyślnie).

      Opcja pracy AWARYJNEJ wymaga wzorca jako kontekstu bazy danych.

      Aby uzyskać więcej informacji, zobacz Ręczne przejęcie awaryjne.

    • FORCE_SERVICE_ALLOW_DATA_LOSS
      Wymusza bazy danych usługa do duplikat bazy danych po serwer dublowany z bazą danych w niezsynchronizowane Państwie lub w Państwie zsynchronizowane podczas automatyczna praca awaryjna nie występuje.

      Zdecydowanie zaleca się, aby zmusić usługa tylko wtedy, gdy serwer dublowany nie jest już uruchomiony.W przeciwnym razie niektórzy klienci mogą nadal na dostęp do oryginalnej dublowana baza danych zamiast nowej dublowana baza danych.

      FORCE_SERVICE_ALLOW_DATA_LOSS jest dostępna tylko na serwer duplikatu i tylko pod następującymi warunkami:

      • niedziałający

      • Monitor jest zestaw na wyłączone lub monitor jest podłączony do serwer duplikatu.

      Wymuszenia na usługa tylko, jeśli zgadzasz się ryzyko utraty niektórych danych w celu przywracanie usługa bezpośrednio w bazie danych.Aby uzyskać informacje dotyczące rozwiązań alternatywnych do wymuszania usługa, zobacz Asynchroniczne bazy danych, dublowanie (tryb wysokiej wydajności).

      Wymuszanie usługa zawiesza sesja, tymczasowo zachowania wszystkich danych w oryginalnej dublowana baza danych.Po oryginalnej podmiot jest w usługa i komunikować się z nowego serwer dublowany, administrator bazy danych może wznowić działanie usługa.Powraca do sesja , wszystkie rekordy dziennika niewysłane i odpowiednie aktualizacje zostaną utracone.

      Aby uzyskać więcej informacji dotyczących ryzyka Wymuszanie usługazobacz Wymuszone usługi (o możliwej utracie danych).

    • WYŁĄCZANIE
      Usuwa dublowanie bazy danych sesja i usuwa dublowanie z bazy danych.Można określić OFF albo partner.Aby uzyskać informacje, zobacz temat wpływ usuwanie dublowanie Usuwanie dublowania baz danych.

    • WZNÓW
      Wznawia zawieszone, dublowanie bazy danych sesja.Wznów można określić tylko na serwer dublowany.

    • BEZPIECZEŃSTWO {PEŁNEGO | OFF}
      Ustawia poziom bezpieczeństwa transakcji.BEZPIECZEŃSTWO można określić tylko na serwer dublowany.

      Wartością domyślną jest pełny.Z pełnego bezpieczeństwa, dublowanie bazy danych sesja działa synchronicznie (w trybie wysokiego bezpieczeństwa).Jeśli bezpieczeństwa jest zestaw na wyłączone, dublowanie bazy danych sesja jest uruchamiany asynchronicznie (w Tryb wysokiej wydajności).

      Zachowanie wysokiego bezpieczeństwa tryb zależy częściowo dowód, w następujący sposób:

      • Bezpieczeństwa jest zestaw pełne, gdy świadka jest zestaw dla sesja, sesja jest uruchamiany w trybie wysokiego bezpieczeństwa z automatyczna praca awaryjna.Gdy serwer dublowany zostanie przerwane, sesja automatycznie przełącza się awaryjnie synchronizacji bazy danych i serwer duplikatu wystąpienie i dowód nadal są połączone ze sobą (oznacza to, że mają one kworum).Aby uzyskać więcej informacji, zobacz Kworum: Jak świadka wpływa na dostępność bazy danych.

        Jeśli Monitor jest zestaw dla sesja , ale jest obecnie rozłączone, strata serwer duplikatu powoduje, że serwer dublowany Przejdź niedziałający.

      • Gdy bezpieczeństwa jest zestaw pełne i monitor jest zestaw na wyłączone, sesja jest uruchamiany w trybie wysokiego bezpieczeństwa bez automatyczna praca awaryjna.Jeśli serwer duplikatu wystąpienie ulegnie niedziałający, nie wpływa na serwer dublowany wystąpienie .serwer dublowanywystąpienie ulegnie niedziałający, można wymusić usługa (o możliwości utraty danych) do serwer duplikatuwystąpienie.

      Jeśli bezpieczeństwa jest zestaw na wyłączone, sesja jest uruchamiany w trybie wysokiej wydajności i automatyczna praca awaryjna i ręczna praca awaryjna nie są obsługiwane.Jednak problemy w lusterka nie mają wpływu na głównej i jeśli serwer dublowany wystąpienie ulegnie niedziałający, można w razie potrzeby wymusić usługa (o możliwości utraty danych) do serwer duplikatu wystąpienie— Jeśli Monitor jest zestaw na wyłączone lub monitor jest podłączony do woluminu dublowanego.Aby uzyskać więcej informacji na temat wymuszania usługazobacz "force_service_allow_data_loss" wcześniej w tej sekcji.

      Ważna informacjaWażne:

      Tryb wysokiej wydajności nie jest przeznaczony do używania świadka.Jednak przy każdej zmianie zestaw bezpieczeństwa na OFF, zdecydowanie zaleca się zapewnić, że monitor jest zestaw na wyłączone.

      Aby uzyskać więcej informacji, zobacz Ustawienia języka Transact-SQL i bazy danych, dublowanie tryby działania.

    • ZAWIESIĆ
      Wstrzymuje dublowanie bazy danych sesja.

      Można określić WSTRZYMANIA albo partner.

    • LIMIT CZASUinteger
      Określa czas-okresu w sekundach.czas-okresu jest maksymalny czas wystąpienie serwera oczekuje wiadomość PING z innej wystąpienie dublowaniesesja przed uwzględnieniem to inne wystąpienie rozłączenia.

      Można określić opcję limit czasu tylko na serwer dublowany.Jeśli ta opcja nie zostanie określony domyślnie, okres czas wynosi 10 sekund.Jeśli określisz 5 lub nowszego, czas-okresu jest zestaw na określoną liczbę sekund.Jeśli określisz czas-poza wartością 0 4 sekundy, czas-okresu zostanie automatycznie zestaw na 5 sekund.

      Ważna informacjaWażne:

      Firma Microsoft zaleca, aby zachować czas-out okresu na 10 sekund lub większy.Ustawienie wartości mniejszej niż 10 sekund tworzy możliwość obciążonego systemu brakuje polecenia ping i zgłaszania awarii false.

      Aby uzyskać więcej informacji, zobacz Możliwe błędy podczas dublowania baz danych.

  • Monitor <witness_option>
    Określa właściwości bazy danych, które definiują świadka dublowanie bazy danych .Ustaw ŚWIADKA klauzula wpływa na obie kopie bazy danych, ale tylko na serwer dublowanymożna określić ustawienia monitora.Jeżeli zestaw dla sesja, kworum jest wymagany do obsługi baz danych, niezależnie od ustawienia bezpieczeństwa; Aby uzyskać więcej informacji, zobacz Kworum: Jak świadka wpływa na dostępność bazy danych.

    Zaleca się, że partnerzy świadka i pracy awaryjnej znajdują się na osobnych komputerach.Aby uzyskać informacje dotyczące monitora, zobacz Dublowanie świadka bazy danych.Uzyskać informacje o automatyczna praca awaryjna Automatyczne pracy awaryjnej.

    Aby wykonać ŚWIADKA zestaw instrukcjaPaństwo punkty końcowe wystąpienia głównego zobowiązanego i serwer monitora musi być zestaw na ROZPOCZĘTE.Należy zauważyć, również, że Rola punktu końcowego serwer monitorawystąpienie dublowanie bazy danych musi być zestaw ŚWIADEK lub wszystkie. Aby uzyskać informacje dotyczące określania punktu końcowego, zobacz Dublowanie końcowy bazy danych.

    Uczyć się roli i stan punktu końcowego serwera wystąpienie, w tym wystąpienie, dublowanie bazy danych należy użyć następujących Transact-SQLinstrukcja:

    SELECT role_desc, state_desc FROM sys.database_mirroring_endpoints
    

    Ostrzeżenie

    Właściwości bazy danych nie może być zestaw dla monitora.

    <witness_option> :: =

    Ostrzeżenie

    Tylko jeden <witness_option> jest dozwolony dla monitora USTAWIONA klauzula.

    • 'witness_server'
      Określa wystąpienie Aparat baz danych jako serwer monitora dublowanie bazy danych sesja.Ustaw ŚWIADKA instrukcji można określić tylko na serwer dublowany.

      Ustaw dowód w ='witness_server" instrukcja, składnia witness_server jest taka sama jak składnia partner_server.

    • WYŁĄCZANIE
      Usuwa monitora z dublowanie bazy danych sesja.Ustawienie dowód na OFF Wyłącza automatyczna praca awaryjna.Jeśli baza danych jest zestaw na pełne bezpieczeństwo i monitor jest zestaw na wyłączone, błąd na serwer duplikatu powoduje, że serwer dublowany uniemożliwić dostęp do bazy danych.

Przykłady

A.Tworzenie dublowanie bazy danych sesja z świadka

Definiowanie dublowanie bazy danych z świadka wymaga konfigurowania zabezpieczeń i przygotowywanie duplikat bazy danychi również używać ZMIEŃ bazę danych, aby zestaw partnerów.Na przykład proces instalacji, zobacz Konfigurowanie dublowania baz danych.

B.Niepowodzenie ręcznie nad dublowanie bazy danych sesja

Ręczne przejęcie awaryjne może zostać zainicjowane z albo dublowanie bazy danych partner.Przed awarii, należy sprawdź, czy serwer, który bierzesz bieżącego serwer dublowany faktycznie jest serwer dublowany.Na przykład dla AdventureWorks2008R2 bazy danych, w tym serwera wystąpienie , które uważasz, że jest to bieżący serwer dublowany, wykonać następującej kwerendy:

SELECT db.name, m.mirroring_role_desc 
FROM sys.database_mirroring m 
JOIN sys.databases db
ON db.database_id = m.database_id
WHERE db.name = N'AdventureWorks2008R2'; 
GO

Jeśli wystąpienie serwera fakt dającego zlecenie, wartość mirroring_role_desc jest Principal.Gdyby to wystąpienie serwera serwer duplikatu SELECT instrukcja zwróci Mirror.

W poniższym przykładzie założono, że serwer jest bieżącym głównego zobowiązanego.

  1. Ręcznie praca awaryjna dublowanie bazy danych partner:

    ALTER DATABASE AdventureWorks2008R2 SET PARTNER FAILOVER;
    GO
    
  2. Aby sprawdzić wyniki pracy awaryjnej na nowe dublowanie wykonać następującej kwerendy:

    SELECT db.name, m.mirroring_role_desc 
    FROM sys.database_mirroring m 
    JOIN sys.databases db
    ON db.database_id = m.database_id
    WHERE db.name = N'AdventureWorks2008R2'; 
    GO
    

    Bieżąca wartość mirroring_role_desc jest teraz Mirror.