2012-06-14 15 views
12

Próbuję dublowanie bazy danych w serwerze sql. Stworzyłem bazę danych i zrobiłem jej kopię zapasową i przywróciłem na innym serwerze. Ale po wykonaniu wszystkich operacji i kliknięciu uruchom dublowanie, a następnie pokazuje następujący błąd. Podaję "NIE" dla opcji serwera Świadków enter image description here.Jak rozwiązać problem: 1418 w serwerze sql podczas dublowania

Podążałem za stopniami lustrzanymi w tym link. W tym miejscu należy utworzyć użytkownika na serwerze głównym i serwerze lustrzanym z tymi samymi danymi uwierzytelniającymi w KROKU 3. Czy konieczne jest utworzenie tego samego użytkownika na obu serwerach? czy istnieje jakieś alternatywne rozwiązanie?

+0

Myślę, że powyższy problem był spowodowany portu numbers.because tych samych numerów portów udzielonych Instance1 i instance2.The domyślnych numerów portów dla serwera zasada jest 5022, 5023 i Lustro jest świadkiem jest 5024.so raz sprawdzić numery portów . – sandy

Odpowiedz

17

Też miałem do czynienia z tym samym problemem. musisz raz sprawdzić następujące elementy.

  1. Przejdź do services.msc i sprawdź, czy działa serwer sql pod którym kontem. Upewnij się, że usługi sql serwera i sql serwera powinny działać z tymi samymi poświadczeniami.

  2. w serwerze lustrzanej bazy danych należy wykonać ten sam krok, co krok 1. Podaj te same poświadczenia, co na serwerze głównym. Jeśli tego użytkownika nie ma, utwórz nowy na obu serwerach z tymi samymi danymi uwierzytelniającymi.

  3. Teraz mamy serwer główny i na serwerze sql dodać nowy login pod Bezpieczeństwo -> Zaloguj się. Podaj role serwera jako Sysadmin i publiczne. Dodaj tego samego użytkownika również na serwerze lustrzanym.

  4. Teraz wykonaj dublowanie w głównej bazie danych. Nie dostałeś tam żadnego błędu.

+0

Mówisz „Upewnij się, że usługi agenta serwera SQL i SQL Server należy uruchomić z tych samych danych logowania” na zarówno zasada i Mirror. Nie działa w domenie usługi Active Directory systemu Windows. Moje usługi muszą działać pod lokalnymi kontami użytkowników. Czy twoja odpowiedź zakłada, że ​​użytkownicy są użytkownikami Active Directory? – Dave

+0

Dzięki, działający serwer SQL na koncie domeny naprawił go dla mnie. Czy są jakieś słabsze strony zamiast konta lokalnego? –

+0

przez powiedzenie tych samych poświadczeń, czy konieczne jest posiadanie tego samego hasła dla użytkowników? Próbowałem i nie udało się replikować. główne konta i konta użytkowników serwerów lustrzanych używają lokalnego administratora o tej samej nazwie, ale prawdopodobnie o innym haśle. czy to zwykle działa? – RayofCommand

1

Nie możesz również zostawiać kopii przeznaczonej do tworzenia kopii lustrzanej w stanie przywracania, którą należy pozostawić, aby włączyć tworzenie kopii lustrzanej.

Zwykle procedura SQL Server dublowanie jest:

1) kopii bezpieczeństwa bazy danych i skopiować go do serwera przeznaczonego do lustrzanych.

2) Utwórz kopię zapasową dziennika transakcji i skopiuj go na serwer przeznaczony do tworzenia kopii lustrzanych.

3) Wybrać bazę danych przywracania z MMC i zlokalizować kopię zapasową bazy danych i przywrócić ją z opcjami ustawionymi do pozostawienia w stanie niedziałającym bez wycofywania transakcji.

4) Wybierz przywracanie i wybierz pliki, a następnie wybierz pliki dziennika i przywróć kopię zapasową pliku dziennika, także z opcją braku rollobaku i niedziałającego. Jest to drugi przycisk opcji poniżej strony opcji na serwerze sql 2008.

5) przejdź do oryginalnego serwera kopiowania baz danych i włącz dublowanie. Aby rozpocząć konwersację dublowania, należy użyć konta z uprawnieniami sysadmin na obu serwerach.

2

sam problem, błąd 1418. Czy wszystko sugeruje tutaj: link

Z perspektywy czasu to było oczywiste. Po ukończeniu MONITORUJ> KONFIGURUJ KARTĘ BEZPIECZEŃSTWA, otrzymasz stronę wyjaśniającą wyniki. Patrząc na węzły SQL1 i SQL2, linia ta była kluczowa:

On the principal server instance, SQL1 
Listener Port: 5022 
Encryption: **Yes** 


On the mirror server instance, SQL2 
Listener Port: 5022 
Encryption: **No** 

Rozwiązanie.Po zakończeniu pracy kreatora we wszystkich węzłach SQL wykonaj:

drop endpoint Mirroring 
go 


CREATE ENDPOINT Mirroring 
STATE = STARTED 
AS TCP (LISTENER_PORT = 5022) 
FOR DATABASE_MIRRORING 
(ENCRYPTION = DISABLED,ROLE=ALL) 
GO 

Udane dublowanie, problem rozwiązany.

nadzieję, że pomoże ktoś Scotta

0

Poznałem ten problem wcześniej, wszystko przechodzi walidacji. Użyj wreszcie nowego punktu końcowego, to działa. Przyczyną główną jest 5022 może zablokować inną sesję.

0

Mój błąd 1418 został rozwiązany za pomocą nas samych napędów na obu serwerach ...

Chociaż MS sugeruje, że można korzystać z różnych liter, zdecydowałem się użyć tej samej litery dysków ...

Od MS:

Also, we recommend that, if it is possible, the file path (including the drive letter) of the mirror database be identical to the path of the principal database. If the file paths must differ, for example, if the principal database is on drive 'F:' but the mirror system lacks an F: drive, you must include the MOVE option in the RESTORE statement.

2

Po wyczerpaniu wszystkich opcji, o których mowa powyżej, miałem odmiany do środowiska dublowania. W SQL Server 2008 wspieraliśmy serwer 2014 w konfiguracji Principal-Mirror. Serwer Sql 2014 był również używany w konfiguracji AlwaysOn dla HA niektórych innych Db. Punkty końcowe są teraz inaczej nazywane sql 2008 i sql 2014.

Po otrzymaniu powyższego błędu, stwierdziłem, że szyfrowanie na rok 2008 to RC4, a na 2014 rok to AES. W rezultacie nie udało się uzgadniać z punktem końcowym SQL2014. Zmieniłem szyfrowanie tak, aby pasowało do SQL 2008 za pomocą poniższego polecenia i violi !!

ALTER ENDPOINT [Hadr_endpoint] 
    FOR DATA_MIRRORING (ENCRYPTION = REQUIRED ALGORITHM RC4) 
0

Dla mnie, miałem ten plon wyemitować i postanowił go ostatecznie przez upuszczenie i ponowne punkty końcowe mirroring (SSMS -> Obiekty serwerów -> punktów końcowych -> Database Mirroring)

0

Kropla końcowym Mirroring

Go

CREATE ENDPOINT Mirroring 
STATE = STARTED 
AS TCP (LISTENER_PORT = 5022) 
FOR DATABASE_MIRRORING 
(ENCRYPTION = DISABLED,ROLE=ALL) 
GO 

Hit zaczynają mirroring, problem rozwiązany.

nadzieję, że pomoże ktoś Scott

to naprawdę pomogło mi dzięki Scott

Tnx Ritz

0

W przypadku gdy żaden z powyższych pracował, tutaj jest to, co spowodowało mój problem. Uruchom następujące zapytanie na obu serwerach i przyjrzeć się bliżej

SELECT @@Version 

miałem kilka aktualizacji na moim głównym serwerze, które nie zostały zainstalowane na moim serwerze lustrzanym.

Ponadto można zobaczyć dodatkowe informacje w dzienniku SQL Server, aby uzasadnić, dlaczego dublowanie nie działa. W ten sposób zdałem sobie sprawę, że mam inną wersję na obu serwerach.

0

Na serwerze SQL Server 2016 rozwiązaniem jest posiadanie [konta domeny] jako sysadmin na serwerze głównym i serwerze kopii dystrybucyjnej.Następnie należy utworzyć nowe konto jako serwera głównego po

use [master] 
GO 
CREATE LOGIN [domain\mirrorservername$] FROM WINDOWS 
GO 
GRANT CONNECT ON ENDPOINT::[Mirroring] TO [domain\mirrorservername$] 
GO 

Lustro Server

use [master] 
GO 
CREATE LOGIN [domain\principalservername$] FROM WINDOWS 
GO 
GRANT CONNECT ON ENDPOINT::[Mirroring] TO [domain\principalservername$] 
GO 

Musisz utworzyć te konta i udzielenia pozwolenia CONNECT jak rachunki te są te używane podczas uzgadnianie między serwerem głównym a serwerem lustrzanym.

Więcej informacji na temat tego błędu, sprawdź logi błędów SQL.

Nadzieja ten post pomaga kogoś.

0

miałem ten sam problem. Próbowałem skonfigurować dublowanie w Windows 2008 - R2, w konfiguracji domeny. Jak sugerowano powyżej przez jednego z ekspertów, sprawdziłem kont SQL Server logowania „” dla SQLSERVER i SQLSERVERAgent i używane z tego samego konta domeny dla usługi SQL Server na obu maszynach. Udało mi się ustawić dublowanie.

Dzięki za pomoc!