Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Skonfiguruj wysyłanie dzienników programu SQL Server

W tym artykule wyjaśniono krok po kroku proces wdrażania wysyłki dziennika programu SQL Server. Jest to rozwiązanie do odzyskiwania po awarii na poziomie bazy danych, które jest łatwe w konfiguracji i utrzymaniu.

Wysyłka dziennika obejmuje trzy kroki:

  1. Wygeneruj kopię zapasową dziennika w podstawowej bazie danych.
  2. Skopiuj kopię zapasową do lokalizacji sieciowej lub określonego katalogu na serwerze pomocniczym.
  3. Przywróć kopię zapasową dziennika na serwerze pomocniczym.

Technologia przesyłania dziennika wykonuje czynności opisane powyżej przy użyciu zadań agenta programu SQL Server. Podczas procesu konfiguracji kreator przesyłania dziennika tworzy te zadania na serwerach podstawowych i pomocniczych.

Wysyłka dziennika może odbywać się w dwóch trybach operacyjnych.

  • Tryb przywracania . Zadanie SQL przywraca kopie zapasowe dziennika transakcji w pomocniczej bazie danych. Stan bazy danych to PRZYWRACANIE i nie jest dostępny.
  • Tryb gotowości . Zadanie SQL przywraca kopie zapasowe dziennika transakcji w pomocniczej bazie danych, ale baza danych może pozostać w trybie tylko do odczytu. Dzięki temu użytkownicy mogą wykonywać na nim operacje odczytu. Dzięki tej opcji możemy odciążyć aplikację raportującą.

Uwaga:tryb gotowości ma wadę:baza danych jest niedostępna podczas wykonywania zadania przywracania. Wszyscy użytkownicy połączeni z bazą danych muszą się rozłączyć podczas tego procesu. W przeciwnym razie zadanie przywracania może się opóźnić .

Główną wadą przesyłania dziennika jest brak obsługi automatycznego przełączania awaryjnego. Aby wykonać przełączanie awaryjne, musisz wykonać następujące kroki:

  1. Wygeneruj kopię zapasową końcowego dziennika i skopiuj ją na pomocniczy serwer bazy danych.
  2. Zatrzymaj wszystkie zadania wysyłania dzienników na serwerze głównym.
  3. Przywróć dziennik na serwerze pomocniczym.

Ten proces może opóźnić dostępność dodatkowej bazy danych.

Teraz przystępujemy do badania procesu wdrażania krok po kroku. Przede wszystkim przygotowaliśmy stację roboczą ustawiając ją w następujący sposób:

Nazwa serwera Rola
SQL01 Serwer główny
SQL02 Serwer dodatkowy
iSCSI\SQL2017 Serwer monitorowania
\\domena\Kopie zapasowe dziennika Udział sieciowy do kopiowania kopii zapasowych

Skonfiguruj serwer główny

SQL01 działa jako Serwer Główny i baza danych. Zamierzamy skonfigurować wysyłanie dzienników między bazą danych AdventureWorks2017.

Aby skonfigurować wysyłanie dziennika, połącz się z instancją SQL01:

  1. Otwórz SQL Server Management Studio
  2. Rozwiń bazę danych
  3. Kliknij prawym przyciskiem myszy AdventureWorks2017
  4. Najedź na zadania
  5. Kliknij Dzienniki transakcji wysyłki.

Właściwości bazy danych otworzy się okno dialogowe.

Aby włączyć wysyłanie logów, kliknij Włącz to jako podstawową bazę danych w konfiguracji wysyłania logów opcja.

Aby skonfigurować harmonogram tworzenia kopii zapasowych dziennika transakcji na potrzeby wysyłki dziennika, kliknij Ustawienia kopii zapasowej .

Otworzy się okno dialogowe „Ustawienie kopii zapasowej dziennika transakcji”.

W oknie dialogowym określ udział sieciowy, do którego chcesz skopiować kopie zapasowe dziennika transakcji — Ścieżka sieciowa do folderu kopii zapasowej pole tekstowe. Możesz określić okres przechowywania kopii zapasowej w Usuń pliki starsze niż podane w polu tekstowym. Jeśli zadanie kopii zapasowej nie powiedzie się lub plik kopii zapasowej nie zostanie utworzony przez czas określony w polu tekstowym, SQL Server zgłosi alert.

Podczas wysyłania dziennika SQL Server kopiuje kopie zapasowe plików dziennika do udziału sieciowego. Kreator automatycznie tworzy zadanie kopii zapasowej podczas procesu wdrażania. Tworzy harmonogram również automatycznie, ale możesz go zmienić, klikając przycisk Harmonogram.

W moim przypadku zmieniłem nazwę zadania kopii zapasowej, aby je zidentyfikować. Nazwa pracy to LogShipping_Backup_AdventureWorks2017 .

Nie wprowadziłem żadnych zmian w harmonogramie zadań i ustawieniach kompresji kopii zapasowej.

Skonfiguruj serwer pomocniczy

Aby dodać serwer pomocniczy i bazę danych, kliknij „Dodaj” w Właściwościach bazy danych okno dialogowe.

Okno dialogowe o nazwie Ustawienia dodatkowej bazy danych będzie otwarte. Musimy połączyć się z pomocniczym serwerem bazy danych. Aby to zrobić, kliknij „Dodaj”.

Otworzy się okno dialogowe. Wpisz nazwę serwera i kliknij Połącz :

Konfiguracja ustawień dodatkowej bazy danych

Zainicjuj dodatkową bazę danych

W zakładce inicjalizacji dodatkowej bazy danych możesz ustawić jedną z trzech następujących opcji przywracania bazy danych:

  1. Jeśli baza danych nie istnieje na serwerze pomocniczym, można wygenerować pełną kopię zapasową i przywrócić ją na serwerze pomocniczym. W tym scenariuszu możesz użyć pierwszej opcji.
  2. Jeśli istnieje pełna kopia zapasowa bazy danych wygenerowana przez inne zadania tworzenia kopii zapasowej lub jeśli już ją masz, możesz ją przywrócić na serwerze pomocniczym. W tym scenariuszu możesz wybrać drugą opcję.
  3. Jeśli przywróciłeś dodatkową bazę danych ze stanem NORECOVERY, możesz wybrać trzecią opcję.

Kopiuj pliki

Na Kopiuj pliki można określić katalog docelowy dla lokalizacji skopiowanych plików kopii zapasowej. Okres przechowywania jest tam również zdefiniowany.

Kreator tworzy zadanie SQL w celu skopiowania plików do katalogu docelowego. Folder docelowy kopii zapasowej to \\domain\Log Shipping Backups. Nazwa zadania kopiowania to LogShipping_Copy_SQL01_AdventureWorks2017 .

Przywróć dziennik transakcji

W Przywróć dziennik transakcji można określić tryb bazy danych. Jeśli chcesz zachować bazę danych w trybie tylko do odczytu, wybierz Tryb gotowości lub wybierz Bez trybu odzyskiwania .

W tym demo zachowujemy stan bazy danych jako NORECOVERY. Możesz określić opóźnienie przywracania kopii zapasowej i skonfigurować alerty dla kopii zapasowych, które nie zostały przywrócone w określonym przedziale czasu. W naszym przypadku nie używamy ustawień domyślnych.

Nazwa zadania przywracania to LogShipping_Restore_SQL01_AdventureWorks2017.

Gdy konfiguracja jest gotowa, kliknij OK, aby zapisać zmiany.

Jak widać, serwer pomocniczy i baza danych zostały dodane do „Instancje serwera pomocniczego i siatka baz danych ” w Właściwościach bazy danych ekran.

Konfiguruj instancję monitorowania

Jeśli chcesz skonfigurować instancję serwera Monitor, umieść znacznik wyboru Użyj instancji serwera monitora . Aby dodać instancję monitora, kliknij Ustawienia .

Zamierzamy użyć instancji iscsi\SQL2017 jako serwera monitorującego przesyłanie logów.

W Ustawieniu monitora wysyłki dziennika w oknie dialogowym określ nazwę w instancji serwera monitorowania pole tekstowe.

Używamy sa konto do monitorowania wysyłki dziennika. Dlatego musisz podać sa jako nazwę użytkownika i hasło. Możesz także określić okres przechowywania alertów monitorowania i historii.

Tutaj używamy ustawień domyślnych. Nazwa zadania alertu to LogShipping_Alert_iscsi\sql2017 .

Kliknij OK, aby zapisać konfigurację i zamknąć okno dialogowe.

Możesz wygenerować skrypt T-SQL dla całej konfiguracji, klikając Konfiguracja skryptu przycisk. Skopiuj skrypt konfiguracyjny do schowka lub pliku albo otwórz go w nowym oknie edytora zapytań.

Nie chcemy rozpisywać akcji. Możesz zignorować ten krok.

Kliknij OK, aby zapisać konfigurację wysyłki dziennika, a proces się rozpocznie:

Po skonfigurowaniu wysyłki dziennika zobaczysz okno dialogowe sukcesu:

Testowy scenariusz przełączania awaryjnego

USE [AdventureWorks2017]
GO
CREATE TABLE [Person](
	[BusinessEntityID] [int] NOT NULL,
	[PersonType] [nchar](2) NOT NULL,
	[NameStyle] [dbo].[NameStyle] NOT NULL,
	[Title] [nvarchar](8) NULL,
	[FirstName] [dbo].[Name] NOT NULL,
	[MiddleName] [dbo].[Name] NULL,
	[LastName] [dbo].[Name] NOT NULL,
	[Suffix] [nvarchar](10) NULL,
	[EmailPromotion] [int] NOT NULL,
	[ModifiedDate] [datetime] NOT NULL,
 CONSTRAINT [PK_Person_BusinessEntityID] PRIMARY KEY CLUSTERED 
(
	[BusinessEntityID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

Wykonaj następujące zapytanie, aby wstawić dane demonstracyjne:

insert into [Person]([BusinessEntityID],[PersonType],[NameStyle],[Title],[FirstName] ,[MiddleName],[LastName] ,[Suffix] ,[EmailPromotion],[ModifiedDate]) 
select top 10 [BusinessEntityID],[PersonType],[NameStyle],[Title],[FirstName] ,[MiddleName],[LastName] ,[Suffix] ,[EmailPromotion],[ModifiedDate] 
from Person.Person

Aby wykonać przełączanie awaryjne, wykonaj kopię zapasową dziennika końcowego bazy danych adventureworks2017. Wykonaj następujące zapytanie:

Backup Log adventureworks2017 to disk='\\domain\LogShippingBackups\Tail_Log_Backup.trn' with norecovery

Połącz się z serwerem SQL02 (serwer pomocniczy) i przywróć kopię zapasową dziennika końcowego przy użyciu funkcji PRZYWRACANIE Z ODZYSKIWANIEM. Wykonaj następujący kod:

RESTORE LOG [AdventureWorks2017] FROM  DISK = N'\\domain\LogShippingBackups\Tail_Log_Backup.trn' WITH  RECOVERY

Po pomyślnym przywróceniu kopii zapasowej dziennika końcowego wykonaj zapytanie, aby sprawdzić, czy dane są kopiowane na serwer pomocniczy:

Select * from person

Wyjście zapytania:

Jak widzisz, dane zostaną przywrócone na serwerze pomocniczym.

Wniosek

W tym artykule wyjaśniliśmy proces wysyłania dziennika SQL Server i sposób jego konfiguracji. Zademonstrowaliśmy również krok po kroku proces przełączania awaryjnego przesyłania dziennika.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Konwertuj „datetimeoffset” na „time” w SQL Server (przykłady T-SQL)

  2. Zapytanie SQL „LIKE” przy użyciu „%”, gdzie kryteria wyszukiwania zawierają „%”

  3. Zwróć listę wszystkich wyzwalaczy serwera w SQL Server

  4. Baza danych + uwierzytelnianie Windows + nazwa użytkownika/hasło?

  5. Funkcja partycji COUNT() OVER możliwa przy użyciu DISTINCT