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:SQL Server
Przed rozpoczęciem sesji dublowania bazy danych właściciel bazy danych lub administrator systemu musi upewnić się, że baza danych dublowania została utworzona i jest gotowa do dublowania. Utworzenie nowej bazy danych lustrzanych wymaga w minimalnym zakresie wykonania pełnej kopii zapasowej głównej bazy danych, a następnie wykonania kolejnej kopii zapasowej dziennika oraz przywrócenia ich na instancję serwera lustrzanego przy użyciu opcji WITH NORECOVERY.
W tym temacie opisano sposób przygotowywania dublowania bazy danych w programie SQL Server przy użyciu programu SQL Server Management Studio lub Języka Transact-SQL.
Przed rozpoczęciem:
Aby przygotować istniejącą bazę danych mirroringu do ponownego uruchomienia mirroringu
Postępuj zgodnie z instrukcjami:po przygotowaniu lustrzanej bazy danych
Przed rozpoczęciem
Wymagania
Wystąpienia głównego serwera i serwera lustrzanego muszą być uruchomione w tej samej wersji SQL Server. Chociaż serwer dublowania może mieć wyższą wersję programu SQL Server, ta konfiguracja jest zalecana tylko podczas starannie zaplanowanego procesu uaktualniania. W takiej konfiguracji występuje ryzyko automatycznego przejścia w tryb failover, w którym przenoszenie danych jest automatycznie zawieszone, ponieważ dane nie mogą przejść do niższej wersji programu SQL Server. Aby uzyskać więcej informacji, zobacz Uaktualnianie wystąpień dublowanych.
Wystąpienia głównego serwera i serwera lustrzanego muszą być uruchomione w tej samej edycji programu SQL Server. Aby uzyskać informacje o obsłudze dublowania baz danych w programie SQL Server, zobacz Wersje i obsługiwane funkcje programu SQL Server 2022.
Baza danych musi używać pełnego modelu odzyskiwania.
Aby uzyskać więcej informacji, zobacz Wyświetlanie lub zmienianie modelu odzyskiwania bazy danych (SQL Server) lub sys.databases (Transact-SQL) i ALTER DATABASE (Transact-SQL).
Nazwa lustrzanej bazy danych musi być taka sama jak nazwa głównej bazy danych.
Dublowanie bazy danych musi być w stanie PRZYWRACANIA, aby dublowanie działało. Podczas przygotowywania bazy danych lustrzanej należy użyć funkcji RESTORE WITH NORECOVERY dla każdej operacji przywracania. Co najmniej należy przywrócić z NORECOVERY pełną kopię zapasową głównej bazy danych, a następnie wszystkie kolejne kopie zapasowe dziennika.
System, w którym planujesz utworzyć lustrzaną bazę danych, musi posiadać dysk z wystarczającą ilością miejsca na przechowywanie tej bazy danych.
Ograniczenia i ograniczenia
Nie można dublowania głównych, msdb, tymczasowych lub modelowych baz danych systemowych.
Nie można dublować bazy danych należącej do zawsze włączonej grupy dostępności.
Rekomendacje
Użyj najnowszej pełnej kopii zapasowej bazy danych lub najnowszej różnicowej kopii zapasowej głównej bazy danych.
Jeśli zadanie tworzenia kopii zapasowej dziennika jest zaplanowane do uruchamiania bardzo często w głównej bazie danych, może być konieczne wyłączenie zadania tworzenia kopii zapasowej do momentu uruchomienia dublowania.
Jeśli to możliwe, ścieżka (w tym litera dysku) bazy danych lustrzanej powinna być identyczna ze ścieżką bazy danych głównej.
Jeśli ścieżki plików muszą się różnić, na przykład jeśli główna baza danych znajduje się na dysku "F:", ale system dublowania nie ma dysku F:, należy dołączyć opcję MOVE w instrukcji RESTORE.
Ważne
Dodanie pliku podczas sesji dublowania bez wpływu na sesję wymaga, aby ścieżka pliku istniała na obu serwerach. W związku z tym w przypadku przenoszenia plików bazy danych podczas tworzenia dublowanej bazy danych późniejsze operacje dodawania plików mogą zakończyć się niepowodzeniem w bazie danych dublowanej i spowodować wstrzymanie dublowania. Aby uzyskać informacje na temat pracy z nieudaną operacją tworzenia pliku, zobacz Rozwiązywanie problemów z konfiguracją dublowania bazy danych (SQL Server).
Jeśli główna baza danych ma jakiekolwiek wykazy pełnotekstowe, zalecamy zapoznanie się z tematem Dublowanie baz danych i katalogi Full-Text (SQL Server).
W przypadku produkcyjnej bazy danych zawsze należy utworzyć kopię zapasową na oddzielnym urządzeniu.
Bezpieczeństwo
TRUSTWORTHY jest ustawione na WYŁĄCZONE, gdy tworzona jest kopia zapasowa bazy danych. W związku z tym TRUSTWORTHY zawsze jest wyłączona w nowej bazie danych lustrzanej. Jeśli baza danych musi być godna zaufania po przejściu w tryb failover, konieczne są dodatkowe kroki konfiguracji. Aby uzyskać więcej informacji, zobacz Skonfiguruj bazę danych lustrzaną do używania właściwości Trustworthy (Transact-SQL).
Aby uzyskać informacje na temat włączania automatycznego odszyfrowywania klucza głównego bazy danych dublowanej bazy danych, zobacz Konfigurowanie zaszyfrowanej dublowanej bazy danych.
Uprawnienia
Właściciel bazy danych lub administrator systemu.
Aby przygotować istniejącą bazę danych mirroringu do ponownego uruchomienia mirroringu
Jeśli dublowanie zostało usunięte, a dublowana baza danych jest nadal w stanie ODZYSKIWANIA, możesz ponownie uruchomić dublowanie.
Wykonaj co najmniej jedną kopię zapasową dziennika w głównej bazie danych. Aby uzyskać więcej informacji, zobacz Tworzenie kopii zapasowej dziennika transakcji (SQL Server).
W bazie danych lustrzanej użyj polecenia RESTORE WITH NORECOVERY, aby przywrócić wszystkie kopie zapasowe dziennika wykonane na głównej bazie danych od czasu usunięcia lustrzania. Aby uzyskać więcej informacji, zobacz Przywracanie kopii zapasowej dziennika transakcji (SQL Server).
Aby przygotować nową lustrzaną bazę danych
Aby przygotować lustrzaną bazę danych
Uwaga / Notatka
Dla Transact-SQL przykładu tej procedury zobacz Przykład (Transact-SQL) w dalszej części tej sekcji.
Połącz się z wystąpieniem serwera głównego.
Utwórz pełną kopię zapasową bazy danych lub różnicową kopię zapasową głównej bazy danych.
Zazwyczaj należy wykonać co najmniej jedną kopię zapasową dziennika w głównej bazie danych. Jednak tworzenie kopii zapasowej dziennika może być niepotrzebne, jeśli baza danych została utworzona i nie utworzono jeszcze żadnej kopii zapasowej dziennika lub jeśli model odzyskiwania został właśnie zmieniony z SIMPLE na FULL.
Chyba że kopie zapasowe znajdują się na dysku sieciowym dostępnym dla obu systemów, skopiuj kopie zapasowe bazy danych i dzienników do systemu, który będzie obsługiwać wystąpienie serwera dublowanego.
Połącz się z instancją serwera lustrzanego.
Za pomocą funkcji RESTORE WITH NORECOVERY, utwórz zapasową bazę danych przez przywrócenie pełnej kopii zapasowej bazy danych, a opcjonalnie najbardziej aktualnej różnicowej kopii zapasowej bazy danych, na wystąpieniu zapasowego serwera.
Uwaga / Notatka
Jeśli przywrócisz grupę plików bazy danych według grupy plików, pamiętaj, aby przywrócić całą bazę danych.
Za pomocą funkcji RESTORE WITH NORECOVERY zastosuj wszelkie zaległe kopie zapasowe dziennika lub kopie zapasowe do dublowania bazy danych.
Przykład (Transact-SQL)
Przed rozpoczęciem sesji dublowania bazy danych należy utworzyć bazę danych dublowania. Należy to zrobić tuż przed rozpoczęciem sesji lustrzania.
W tym przykładzie użyto przykładowej bazy danych AdventureWorks2022
, która domyślnie używa prostego modelu odzyskiwania.
Aby używać dublowania z bazą danych
AdventureWorks2022
, zmodyfikuj ją tak, aby korzystała z pełnego modelu odzyskiwania danych.USE master; GO ALTER DATABASE AdventureWorks SET RECOVERY FULL; GO
Po zmodyfikowaniu modelu odzyskiwania bazy danych z SIMPLE na FULL, utwórz pełną kopię zapasową, która może posłużyć do stworzenia bazy danych lustrzanej. Ponieważ model odzyskiwania został właśnie zmieniony, opcja WITH FORMAT jest określana w celu utworzenia nowego zestawu multimediów. Jest to przydatne, aby oddzielić kopie zapasowe w modelu pełnego odzyskiwania od wszystkich poprzednich kopii zapasowych wykonanych w ramach prostego modelu odzyskiwania. W tym przykładzie plik kopii zapasowej (
C:\AdventureWorks.bak
) jest tworzony na tym samym dysku co baza danych.Uwaga / Notatka
W przypadku produkcyjnej bazy danych należy zawsze tworzyć kopie zapasowe na osobnym urządzeniu.
W wystąpieniu serwera głównego (
PARTNERHOST1
) utwórz pełną kopię zapasową głównej bazy danych w sposób następujący:BACKUP DATABASE AdventureWorks TO DISK = 'C:\AdventureWorks.bak' WITH FORMAT GO
Skopiuj pełną kopię zapasową na serwer dublowania.
Za pomocą opcji RESTORE WITH NORECOVERY przywróć pełną kopię zapasową w wystąpieniu serwera lustrzanego. Polecenie przywracania zależy od tego, czy ścieżki baz danych głównej i zapasowej są identyczne.
Jeśli ścieżki są identyczne:
W wystąpieniu serwera lustrzanego (
PARTNERHOST5
) przywróć pełną kopię zapasową w następujący sposób:RESTORE DATABASE AdventureWorks FROM DISK = 'C:\AdventureWorks.bak' WITH NORECOVERY GO
Jeśli ścieżki różnią się:
Jeśli ścieżka dublowania bazy danych różni się od ścieżki głównej bazy danych (na przykład ich litery dysku różnią się), utworzenie dublowania bazy danych wymaga, aby operacja przywracania zawierała klauzulę MOVE.
Ważne
Jeśli nazwy ścieżek podstawowej i lustrzanej bazy danych różnią się, nie można dodać pliku. Jest to spowodowane tym, że po otrzymaniu dziennika operacji dodawania pliku wystąpienie serwera dublowania próbuje umieścić nowy plik w lokalizacji używanej przez główną bazę danych.
Na przykład następujące polecenie przywraca kopię zapasową głównej bazy danych znajdującej się w folderze C:\Program Files\Microsoft SQL Server\MSSQL. n\MSSQL\Data\ do innej lokalizacji D:\Program Files\Microsoft SQL Server\MSSQL. n\MSSQL\Data, gdzie ma znajdować się dublacyjna baza danych.
RESTORE DATABASE AdventureWorks FROM DISK='C:\AdventureWorks.bak' WITH NORECOVERY, MOVE 'AdventureWorks_Data' TO 'D:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\AdventureWorks_Data.mdf', MOVE 'AdventureWorks_Log' TO 'D:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\AdventureWorks_Log.ldf'; GO
Po utworzeniu pełnej kopii zapasowej 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ą pełną kopię zapasową:
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 pliku
C:\AdventureWorks.bak
:RESTORE LOG AdventureWorks FROM DISK = 'C:\AdventureWorks.bak' WITH FILE=1, NORECOVERY GO
Jeśli przed rozpoczęciem dublowania wystąpią jakiekolwiek dodatkowe kopie zapasowe dziennika, należy również przywrócić wszystkie te kopie zapasowe dziennika, w sekwencji, na serwerze dublowania przy użyciu funkcji WITH NORECOVERY.
Na przykład następująca instrukcja Transact-SQL przywraca dwa dodatkowe dzienniki z
C:\AdventureWorks.bak
:RESTORE LOG AdventureWorks FROM DISK = 'C:\AdventureWorks.bak' WITH FILE=2, NORECOVERY GO RESTORE LOG AdventureWorks FROM DISK = 'C:\AdventureWorks.bak' WITH FILE=3, NORECOVERY GO
Pełny przykład konfigurowania odbicia lustrzanego bazy danych, obejmujący konfigurację zabezpieczeń, przygotowywanie bazy danych do odbicia lustrzanego, konfigurowanie partnerów oraz dodawanie świadka, można znaleźć w Konfigurowanie odbicia lustrzanego bazy danych (SQL Server).
Kontynuacja: Po przygotowaniu lustrzanej bazy danych
Jeśli od czasu ostatniej operacji PRZYWRACANIA dziennika zostały wykonane jakiekolwiek dodatkowe kopie zapasowe dziennika, należy ręcznie zastosować każdą dodatkową kopię zapasową dziennika przy użyciu polecenia RESTORE WITH NORECOVERY.
Uruchom sesję dublowania. Aby uzyskać więcej informacji, zobacz Ustanawianie sesji dublowania bazy danych przy użyciu uwierzytelniania systemu Windows (SQL Server Management Studio) lub Ustanawianie sesji dublowania bazy danych przy użyciu uwierzytelniania systemu Windows (Transact-SQL).
Jeśli zadanie tworzenia kopii zapasowej zostało wyłączone w głównej bazie danych, można ponownie włączyć zadanie.
Jeśli baza danych musi być godna zaufania po awaryjnym przełączeniu, po rozpoczęciu mirroringu konieczne są dodatkowe kroki konfiguracji. Aby uzyskać więcej informacji, zobacz Skonfiguruj bazę danych lustrzaną do używania właściwości Trustworthy (Transact-SQL).
Powiązane zadania
przywracanie kopii zapasowej dziennika transakcji (SQL Server)
Ustanów sesję dublowania bazy danych przy użyciu uwierzytelniania systemu Windows (Transact-SQL)
Konfigurowanie lustrzanej bazy danych do użycia zaufanej właściwości (Transact-SQL)
Zobacz też
dublowanie bazy danych (SQL Server)
Bezpieczeństwo transportu dla dublowania baz danych i grup wysokiej dostępności Always On (SQL Server)
Konfigurowanie Mirroringu Bazy Danych (SQL Server)
tworzenie kopii zapasowych i przywracanie katalogów i indeksów Full-Text
Mirroring bazy danych i Full-Text katalogi (SQL Server)
Dublowanie i replikacja bazy danych (SQL Server)
KOPIA ZAPASOWA (Transact-SQL)
PRZYWRÓĆ (Transact-SQL)
RESTORE Argumenty (Transact-SQL)