Tento článek vysvětluje krok za krokem proces nasazení dodávky protokolu SQL Server. Je to řešení pro obnovu po havárii na úrovni databáze, které se snadno nastavuje a udržuje.
Odeslání protokolu zahrnuje tři kroky:
- Vygenerujte zálohu protokolu v primární databázi.
- Zkopírujte zálohu do umístění v síti nebo do konkrétního adresáře na sekundárním serveru.
- Obnovte zálohu protokolu na sekundárním serveru.
Technologie dopravy protokolu provádí výše popsané kroky pomocí úloh agenta SQL Server. Během procesu konfigurace vytvoří průvodce odesláním protokolu tyto úlohy na primárních a sekundárních serverech.
Odesílání protokolů může být ve dvou provozních režimech.
- Režim obnovení . Úloha SQL obnoví zálohy protokolu transakcí v sekundární databázi. Stav databáze je OBNOVOVÁNÍ a není přístupný.
- Pohotovostní režim . Úloha SQL obnoví zálohy protokolu transakcí v sekundární databázi, ale databáze může zůstat v režimu pouze pro čtení. Uživatelé na něm tedy mohou provádět operace čtení. Touto volbou můžeme stáhnout reportovací aplikaci.
Poznámka:Pohotovostní režim má nevýhodu:databáze není během provádění úlohy obnovy dostupná. Všichni uživatelé připojení k databázi se musí během tohoto procesu odpojit. V opačném případě může být úloha obnovení odložena .
Hlavní nevýhodou odesílání protokolů je absence automatické podpory převzetí služeb při selhání. Chcete-li provést převzetí služeb při selhání, musíte provést následující kroky:
- Vygenerujte zálohu tail-log a zkopírujte ji na sekundární databázový server.
- Zastavte všechny úlohy odesílání protokolu na primárním serveru.
- Obnovte protokol na sekundárním serveru.
Tento proces může zpozdit dostupnost sekundární databáze.
Nyní přistoupíme ke zkoumání procesu nasazení krok za krokem. Nejprve jsme připravili pracovní stanici jejím nastavením následujícím způsobem:
Název serveru | Role |
SQL01 | Primární server |
SQL02 | Sekundární server |
iSCSI\SQL2017 | Monitorovací server |
\\domain\Log Shipping Backups | Network Share pro kopírování záloh |
Nakonfigurujte primární server
SQL01 funguje jako primární server a databáze. Chystáme se nastavit odesílání protokolu mezi databází AdventureWorks2017.
Chcete-li nakonfigurovat dodávku protokolu, připojte se k instanci SQL01:
- Otevřete SQL Server Management Studio
- Rozbalte databázi
- Klikněte pravým tlačítkem na AdventureWorks2017
- Umístěte kurzor myši na Úkoly
- Klikněte na protokoly transakcí odeslání.
Vlastnosti databáze otevře se dialogové okno.
Chcete-li povolit odesílání protokolů, klikněte na Povolit toto jako primární databázi v konfiguraci odesílání protokolu možnost.
Chcete-li nakonfigurovat plán zálohování protokolu transakcí pro odesílání protokolu, klikněte na Nastavení zálohování .
Otevře se dialogové okno „Nastavení zálohy protokolu transakcí“.
V dialogovém okně zadejte sdílenou síť, kam chcete zkopírovat zálohy protokolu transakcí – Síťová cesta ke složce zálohy Textové pole. Dobu uchování zálohy můžete určit v části Smazat soubory starší než uvedeno v textovém poli. Pokud se úloha zálohování nezdaří nebo se záložní soubor nevyskytne po dobu zadanou v textovém poli, SQL Server vyvolá výstrahu.
V protokolu expedice SQL Server zkopíruje zálohy souboru protokolu do sdílené síťové položky. Průvodce automaticky vytvoří úlohu zálohování během procesu nasazení. Plán vytváří také automaticky, ale můžete jej změnit kliknutím na tlačítko Plán.
V mém případě jsem změnil název úlohy zálohování, abych ji identifikoval. Název zakázky je LogShipping_Backup_AdventureWorks2017 .
Neprovedl jsem žádné změny v nastavení plánu úloh a komprese zálohy.
Nakonfigurujte sekundární server
Chcete-li přidat sekundární server a databázi, klikněte na „Přidat“ na stránce Vlastnosti databáze dialogové okno.
Dialogové okno s názvem Nastavení sekundární databáze otevře. Musíme se připojit k sekundárnímu databázovému serveru. Chcete-li to provést, klikněte na „Přidat.“
Otevře se dialogové okno. Zadejte název serveru a klikněte na Připojit :
Konfigurace nastavení sekundární databáze
Inicializovat sekundární databázi
Na kartě Inicializace sekundární databáze můžete nastavit kteroukoli z následujících tří možností obnovení databáze:
- Pokud databáze na sekundárním serveru neexistuje, můžete vygenerovat úplnou zálohu a obnovit ji na sekundárním serveru. V tomto scénáři můžete použít první možnost.
- Pokud existuje úplná záloha databáze generovaná jinými úlohami zálohování nebo pokud již nějakou máte, můžete ji obnovit na sekundárním serveru. V tomto scénáři můžete zvolit druhou možnost.
- Pokud jste obnovili sekundární databázi se stavem NORECOVERY, můžete zvolit třetí možnost.
Kopírovat soubory
Na stránce Kopírovat soubory můžete zadat cílový adresář pro umístění zkopírovaných záložních souborů. Je zde také definována doba uchování.
Průvodce vytvoří úlohu SQL pro zkopírování souborů do cílového adresáře. Cílová složka zálohy je \\domain\Log Shipping Backups. Název úlohy kopírování je LogShipping_Copy_SQL01_AdventureWorks2017 .
Obnovení protokolu transakcí
V Obnovení protokolu transakcí můžete určit režim databáze. Pokud chcete databázi ponechat v režimu pouze pro čtení, vyberte Pohotovostní režim nebo zvolte Žádný režim obnovení .
V tomto demu udržujeme stav databáze jako NORECOVERY. Můžete určit zpoždění obnovení zálohy a nakonfigurovat výstrahy pro zálohy, které nebyly obnoveny v určeném intervalu. V našem případě nepoužíváme výchozí nastavení.
Název úlohy obnovení je LogShipping_Restore_SQL01_AdventureWorks2017.
Jakmile je konfigurace připravena, kliknutím na OK uložte změny.
Jak vidíte, sekundární server a databáze byly přidány do „Mřížka instancí sekundárních serverů a databází ” na stránce Vlastnosti databáze obrazovka.
Konfigurace instance monitorování
Pokud chcete konfigurovat instanci monitorovacího serveru, zaškrtněte políčko Použít instanci monitorovacího serveru . Chcete-li přidat instanci monitoru, klikněte na Nastavení .
Budeme používat instanci iscsi\SQL2017 jako server pro monitorování odesílání protokolů.
V Nastavení sledování odesílání protokolu dialogovém okně zadejte název v instanci serveru Monitor textové pole.
Používáme sa účet pro sledování zásilky protokolu. Proto musíte poskytnout sa jako uživatelské jméno a heslo. Můžete také určit dobu uchování výstrah a historie sledování.
Zde používáme výchozí nastavení. Název úlohy upozornění je LogShipping_Alert_iscsi\sql2017 .
Klepnutím na OK uložte konfiguraci a zavřete dialogové okno.
Kliknutím na Konfigurace skriptu můžete vygenerovat T-SQL skript pro celou konfiguraci knoflík. Buď zkopírujte konfigurační skript do schránky nebo souboru, nebo jej otevřete v novém okně editoru dotazů.
Nechceme akci skriptovat. Tento krok můžete ignorovat.
Kliknutím na OK uložíte konfiguraci odeslání protokolu a proces se spustí:
Jakmile je nakonfigurováno odeslání protokolu, můžete vidět dialogové okno úspěchu:
Testovat scénář převzetí služeb při selhání
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
Chcete-li vložit ukázková data, proveďte následující dotaz:
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
Chcete-li provést převzetí služeb při selhání, proveďte zálohu tail-log databáze adventureworks2017. Proveďte následující dotaz:
Backup Log adventureworks2017 to disk='\\domain\LogShippingBackups\Tail_Log_Backup.trn' with norecovery
Připojte se k SQL02 (sekundárnímu serveru) a obnovte zálohu tail log pomocí RESTORE WITH RECOVERY. Spusťte následující kód:
RESTORE LOG [AdventureWorks2017] FROM DISK = N'\\domain\LogShippingBackups\Tail_Log_Backup.trn' WITH RECOVERY
Jakmile se záloha tail-log úspěšně obnoví, spusťte dotaz, abyste ověřili, že jsou data zkopírována na sekundární server:
Select * from person
Výstup dotazu:
Jak vidíte, data jsou obnovena na sekundárním serveru.
Závěr
V tomto článku jsme vysvětlili proces odesílání protokolu SQL Server a jak jej nakonfigurovat. Také jsme ukázali krok za krokem proces převzetí služeb při selhání při odesílání protokolu.