Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:programu SQL Server
Notatka
Ta funkcja zostanie usunięta w przyszłej wersji programu SQL Server. Unikaj używania tej funkcji w nowych pracach programistycznych i zaplanuj modyfikowanie aplikacji, które obecnie korzystają z tej funkcji. Użyj grup dostępności Always On.
Po przygotowaniu bazy danych lustrzanej (zobacz Przygotowanie bazy danych lustrzanej do mirroringu (SQL Server)), możesz ustanowić sesję mirroringu bazy danych. Instancje serwera głównego, lustra i świadka muszą być oddzielnymi instancjami serwera, które powinny znajdować się w oddzielnych systemach gospodarzy.
Ważny
Zalecamy skonfigurowanie dublowania bazy danych poza godzinami szczytu, ponieważ konfigurowanie dublowania może mieć wpływ na wydajność.
Notatka
Określone wystąpienie serwera może brać udział w wielu równoległych sesjach mirroringu baz danych z tymi samymi lub różnymi partnerami. Wystąpienie serwera może być partnerem w niektórych sesjach i świadkiem w innych sesjach. Wystąpienie serwera zapasowego musi mieć uruchomioną tę samą edycję programu SQL Server co główne wystąpienie serwera. Dublowanie bazy danych nie jest dostępne w każdej wersji programu Microsoft SQL Server. Aby uzyskać listę funkcji obsługiwanych przez wersje programu SQL Server, zobacz Features Supported by the Editions of SQL Server 2016. Ponadto zdecydowanie zalecamy uruchamianie ich w porównywalnych systemach, które mogą obsługiwać identyczne obciążenia.
Aby ustanowić sesję dublowania bazy danych
Utwórz bazę danych lustrzaną. Aby uzyskać więcej informacji, zobacz Prepare a Mirror Database for Mirroring (SQL Server).
Skonfiguruj zabezpieczenia na każdej instancji serwera.
Każde wystąpienie serwera w sesji mirroringu bazy danych wymaga punktu końcowego mirroringu bazy danych. Jeśli punkt końcowy nie istnieje, musisz go utworzyć.
Notatka
Forma uwierzytelniania używana do dublowania bazy danych przez wystąpienie serwera jest właściwością punktu końcowego dublowania bazy danych. Dostępne są dwa rodzaje zabezpieczeń transportu na potrzeby dublowania bazy danych: uwierzytelnianie systemu Windows lub uwierzytelnianie oparte na certyfikatach. Aby uzyskać więcej informacji, zobacz Transport Security for Database Mirroring and Always On Availability Groups (SQL Server).
Na każdym serwerze partnerskim upewnij się, że punkt końcowy istnieje na potrzeby mirroringu bazy danych. Niezależnie od liczby sesji dublowania, które mają być obsługiwane, wystąpienie serwera może mieć tylko jeden punkt końcowy dublowania bazy danych. Jeśli zamierzasz używać tego wystąpienia serwera wyłącznie dla partnerów w sesjach migrowania baz danych, możesz przypisać rolę partnera punktowi końcowemu (ROLE**=**PARTNER). Jeśli zamierzasz również użyć tego serwera jako świadka w innych sesjach odbijania baz danych, ustaw rolę punktu końcowego na WSZYSTKIE.
Aby wykonać instrukcję SET PARTNER, stan punktów końcowych obu partnerów musi być ustawiony na URUCHOMIONO.
Aby dowiedzieć się, czy wystąpienie serwera ma punkt końcowy dublowania baz danych oraz aby poznać jego rolę i stan, w tym wystąpieniu użyj następującej instrukcji Transact-SQL:
SELECT role_desc, state_desc FROM sys.database_mirroring_endpoints
Ważny
Nie należy ponownie konfigurować punktu końcowego mirroringu bazy danych w użyciu. Jeśli punkt końcowy odbicia bazy danych istnieje i jest już używany, zalecamy użycie tego punktu końcowego dla każdej sesji na instancji serwera. Usunięcie używanego punktu końcowego może spowodować jego restart, zakłócając połączenia istniejących sesji, co może być postrzegane jako błąd dla innych wystąpień serwera. Jest to szczególnie ważne w trybie wysokiego bezpieczeństwa z automatycznym przełączaniem awaryjnym, w którym ponowne skonfigurowanie punktu końcowego u partnera może spowodować przełączenie awaryjne. Ponadto, jeśli świadek został ustawiony dla sesji, usunięcie punktu końcowego mirroringu bazy danych może spowodować utratę kworum przez główny serwer tej sesji; w takim przypadku baza danych zostanie przełączona w tryb offline i jej użytkownicy zostaną odłączeni. Aby uzyskać więcej informacji, zobacz kworum: Jak Świadek wpływa na dostępność bazy danych (dublowanie bazy danych).
Jeśli którykolwiek z partnerów nie ma punktu końcowego, zobacz Tworzenie punktu końcowego dublowania bazy danych na potrzeby uwierzytelniania systemu Windows (Transact-SQL).
Jeśli wystąpienia serwera są uruchomione na różnych kontach użytkowników domeny, każdy z nich wymaga logowania w master bazy danych innych. Jeśli logowanie nie istnieje, musisz go utworzyć. Aby uzyskać więcej informacji, zobacz Zezwalaj na dostęp sieciowy do punktu końcowego dublowania bazy danych przy użyciu uwierzytelniania systemu Windows (SQL Server).
Aby ustawić serwer główny jako partnera bazy dublowanej, połącz się z serwerem dublowania i wydaj następującą instrukcję:
ALTER DATABASE <database_name> SET PARTNER =<server_network_address>
gdzie <database_name> jest nazwą bazy danych, która ma być dublowana (ta nazwa jest taka sama dla obu partnerów), a <server_network_address> to adres sieciowy serwera głównego serwera.
Składnia adresu sieciowego serwera jest następująca:
TCP://<adres-systemowy>:<port>
gdzie <adres-system> jest ciągiem, który jednoznacznie identyfikuje system docelowy, a <port> jest numerem portu używanym przez punkt końcowy replikacji wystąpienia serwera partnera. Aby uzyskać więcej informacji, zobacz Określanie adresu sieciowego serwera (dublowanie bazy danych).
Na przykład w wystąpieniu serwera dublowanego następująca instrukcja ALTER DATABASE ustawia partnera jako oryginalne wystąpienie serwera głównego. Nazwa bazy danych to AdventureWorks, adres systemu to DBSERVER1-nazwa systemu partnera-a port używany przez końcowy punkt dublowania bazy danych partnera to 7022.
ALTER DATABASE AdventureWorks SET PARTNER = 'TCP://DBSERVER1:7022'
To oświadczenie przygotowuje serwer lustrzany do nawiązania sesji, gdy kontaktuje się z nim serwer główny.
Aby ustawić serwer lustrzany jako partnera w bazie danych głównej, połącz się z serwerem głównym i wykonaj następującą instrukcję:
ALTER DATABASE <database_name> SET PARTNER =<server_network_address>
Aby uzyskać więcej informacji, zobacz krok 4.
Na przykład w wystąpieniu serwera głównego następująca instrukcja ALTER DATABASE ustawia partnera jako oryginalne wystąpienie serwera dublowanego. Nazwa bazy danych to AdventureWorks, adres systemowy to DBSERVER2 nazwa systemu partnera i port używany przez punkt końcowy dublowania bazy danych partnera to 7025:
ALTER DATABASE AdventureWorks SET PARTNER = 'TCP://DBSERVER2:7022'
Wprowadzenie tej instrukcji na serwerze głównym rozpoczyna sesję mirroringu bazy danych.
Domyślnie sesja jest ustawiona na pełne bezpieczeństwo transakcji (SAFETY jest ustawione na FULL), co uruchamia sesję w trybie synchronicznym, o wysokim poziomie bezpieczeństwa, bez automatycznego przełączenia awaryjnego. Możesz ponownie skonfigurować sesję do uruchamiania w trybie wysokiego bezpieczeństwa z automatycznym trybem failover lub w trybie asynchronicznym, o wysokiej wydajności w następujący sposób:
Tryb wysokiego bezpieczeństwa z automatycznym przełączaniem awaryjnym
Jeśli chcesz, aby sesja trybu wysokiego bezpieczeństwa obsługiwała automatyczne przełączanie awaryjne, dodaj wystąpienie serwera świadka. Aby uzyskać więcej informacji, zobacz Dodawanie świadka dublowania bazy danych przy użyciu uwierzytelniania systemu Windows (Transact-SQL).
tryb wysokiej wydajności
Alternatywnie, jeśli nie chcesz automatycznego przełączenia awaryjnego i wolisz podkreślić wydajność nad dostępnością, wyłącz bezpieczeństwo transakcji. Aby uzyskać więcej informacji, zobacz Zmienianie bezpieczeństwa transakcji w sesji mirroringu bazy danych (Transact-SQL).
Notatka
W trybie wysokiej wydajności WITNESS powinno być ustawione na WYŁĄCZONE. Aby uzyskać więcej informacji, zobacz kworum: Jak świadek wpływa na dostępność bazy danych (mirroring bazy danych).
Przykład
Notatka
W poniższym przykładzie ustanowiono sesję odbicia bazy danych między partnerami dla istniejącej bazy danych lustrzanej. Aby uzyskać informacje na temat tworzenia bazy danych lustrzanych, zobacz Prepare a Mirror Database for Mirroring (SQL Server)=.
W przykładzie przedstawiono podstawowe kroki tworzenia sesji odbicia bazy danych bez świadka. Obaj partnerzy są domyślnymi wystąpieniami serwera w dwóch systemach komputerowych (PARTNERHOST1 i PARTNERHOST5). Dwa instancje partnerskie uruchamiają to samo konto użytkownika domeny Windows (MYDOMAIN\dbousername).
W wystąpieniu serwera głównego (domyślne wystąpienie w PARTNERHOST1) utwórz punkt końcowy obsługujący wszystkie role przy użyciu portu 7022:
--create an endpoint for this instance CREATE ENDPOINT Endpoint_Mirroring STATE=STARTED AS TCP (LISTENER_PORT=7022) FOR DATABASE_MIRRORING (ROLE=ALL) GO --Partners under same domain user; login already exists in master.
Notatka
Aby zapoznać się z przykładem konfigurowania logowania się, zobacz Zezwalaj na dostęp sieciowy do punktu końcowego mirroringu bazy danych przy użyciu uwierzytelniania systemu Windows (SQL Server).
W wystąpieniu serwera dublowanego (domyślne wystąpienie w PARTNERHOST5) utwórz punkt końcowy obsługujący wszystkie role przy użyciu portu 7022:
--create an endpoint for this instance CREATE ENDPOINT Endpoint_Mirroring STATE=STARTED AS TCP (LISTENER_PORT=7022) FOR DATABASE_MIRRORING (ROLE=ALL) GO --Partners under same domain user; login already exists in master.
W głównej instancji serwera (w PARTNERHOST1) należy utworzyć kopię zapasową bazy danych:
BACKUP DATABASE AdventureWorks TO DISK = 'C:\AdvWorks_dbmirror.bak' WITH FORMAT GO
Na instancji serwera lustrzanego (na
PARTNERHOST5
) przywróć bazę danych:RESTORE DATABASE AdventureWorks FROM DISK = 'Z:\AdvWorks_dbmirror.bak' WITH NORECOVERY GO
Po utworzeniu pełnej kopii zapasowej bazy danych należy utworzyć kopię zapasową dziennika w głównej bazie danych. Na przykład następująca instrukcja Transact-SQL wykonuje kopię zapasową dziennika w tym samym pliku używanym przez poprzednią kopię zapasową bazy danych:
BACKUP LOG AdventureWorks TO DISK = 'C:\AdventureWorks.bak' GO
Przed rozpoczęciem dublowania należy zastosować wymaganą kopię zapasową dziennika (i wszelkie kolejne kopie zapasowe dzienników).
Na przykład następująca instrukcja Transact-SQL przywraca pierwszy dziennik z C:\AdventureWorks.bak:
RESTORE LOG AdventureWorks FROM DISK = 'C:\ AdventureWorks.bak' WITH FILE=1, NORECOVERY GO
W wystąpieniu serwera dublowanego ustaw wystąpienie serwera na PARTNERHOST1 jako partner (co czyni go początkowym serwerem głównym):
USE master; GO ALTER DATABASE AdventureWorks SET PARTNER = 'TCP://PARTNERHOST1:7022' GO
Ważny
domyślnie sesja dublowania bazy danych jest uruchamiana w trybie synchronicznym, który zależy od pełnego bezpieczeństwa transakcji (BEZPIECZEŃSTWO jest ustawione na PEŁNY). Aby spowodować uruchomienie sesji w trybie asynchronicznym, o wysokiej wydajności, ustaw wartość SAFETY na OFF. Aby uzyskać więcej informacji, zobacz Tryby Operacyjne Dublowania Bazy Danych .
W instancji serwera głównego ustaw instancję serwera na
PARTNERHOST5
jako partnera (co czyni ją początkowym serwerem lustrzanym):USE master; GO ALTER DATABASE AdventureWorks SET PARTNER = 'TCP://PARTNERHOST5:7022' GO
Opcjonalnie, jeśli zamierzasz używać trybu wysokiego bezpieczeństwa z automatycznym przełączaniem awaryjnym, skonfiguruj wystąpienie serwera świadka. Aby uzyskać więcej informacji, zobacz Dodaj świadka dublowania bazy danych przy użyciu uwierzytelniania systemu Windows (Transact-SQL).
Notatka
Pełny przykład przedstawiający konfigurację zabezpieczeń, przygotowanie bazy danych do dublowania, skonfigurowanie partnerów oraz dodanie świadka, zobacz Konfigurowanie dublowania bazy danych (SQL Server).
Zobacz też
Konfigurowanie Mirroringu Bazy Danych (SQL Server)
ALTER DATABASE (Transact-SQL)
zezwalać na dostęp sieciowy do punktu końcowego dublowania bazy danych przy użyciu uwierzytelniania systemu Windows (SQL Server)
Przygotowanie bazy danych lustrzanej do dublowania (SQL Server)
Tworzenie punktu końcowego mirroringu bazy danych na potrzeby uwierzytelniania systemu Windows (Transact-SQL)
Mirroring bazy danych i wysyłanie dzienników (SQL Server)
dublowanie bazy danych (SQL Server)
Dublowanie i replikacja bazy danych (SQL Server)
Konfigurowanie mirroringu bazy danych (SQL Server)
określ adres sieciowy serwera (dublowanie bazy danych)
tryby operacyjne dublowania bazy danych