sql >> Databasteknik >  >> RDS >> Sqlserver

Konfigurera SQL Server Log Shipping

Den här artikeln förklarar steg för steg distributionsprocessen för SQL Server Log-frakt. Det är en katastrofåterställningslösning på databasnivå som är enkel att installera och underhålla.

Loggsändningen omfattar tre steg:

  1. Generera loggsäkerhetskopian på den primära databasen.
  2. Kopiera säkerhetskopian till nätverksplatsen eller den specifika katalogen på den sekundära servern.
  3. Återställ loggsäkerhetskopian på den sekundära servern.

Loggsändningstekniken utför stegen som beskrivs ovan genom att använda SQL Server-agentjobb. Under konfigurationsprocessen skapar guiden för loggsändning dessa jobb på primära och sekundära servrar.

Loggsändning kan ske i två driftslägen.

  • Återställningsläge . SQL-jobbet återställer säkerhetskopior av transaktionsloggar på den sekundära databasen. Databasens tillstånd är ÅTERSTÄLLER , och den är inte tillgänglig.
  • Vänteläge . SQL-jobbet återställer säkerhetskopior av transaktionsloggar på den sekundära databasen, men databasen kan förbli i skrivskyddat läge. Därför kan användare utföra läsoperationer på den. Med det här alternativet kan vi ladda ner rapporteringsapplikationen.

Obs:Vänteläget har en nackdel:databasen är inte tillgänglig under återställningsjobbet. Alla användare som är anslutna till databasen måste koppla från under den processen. Annars kan återställningsjobbet försenas .

Den största nackdelen med loggsändning är frånvaron av automatiskt failover-stöd. För att utföra en failover måste du utföra följande steg:

  1. Generera en säkerhetskopia av tail-log och kopiera den till en sekundär databasserver.
  2. Stoppa alla loggsändningsjobb på den primära servern.
  3. Återställ loggen på den sekundära servern.

Denna process kan fördröja tillgängligheten för den sekundära databasen.

Nu går vi vidare till den steg-för-steg undersökningen av distributionsprocessen. Först och främst har vi förberett arbetsstationen genom att ställa in den på följande sätt:

Servernamn Roll
SQL01 Primär server
SQL02 Sekundär server
iSCSI\SQL2017 Övervakningsserver
\\domän\Log Shipping Backups Nätverksdelning för att kopiera säkerhetskopiorna

Konfigurera den primära servern

SQL01 fungerar som en primär server och databasen. Vi kommer att ställa in loggsändning mellan AdventureWorks2017-databasen.

För att konfigurera loggsändningen, anslut till SQL01-instansen:

  1. Öppna SQL Server Management Studio
  2. Utöka databas
  3. Högerklicka på AdventureWorks2017
  4. Håll muspekaren över Tasks
  5. Klicka på Skicka transaktionsloggar.

Databasegenskaper dialogrutan öppnas.

För att aktivera loggsändning, klicka på Aktivera detta som en primär databas i en loggsändningskonfiguration alternativ.

För att konfigurera schemat för säkerhetskopiering av transaktionsloggen för loggleverans, klicka på Inställningar för säkerhetskopiering .

En dialogruta, "Inställning för säkerhetskopiering av transaktionslogg" öppnas.

I dialogrutan anger du den nätverksresurs dit du vill kopiera transaktionsloggens säkerhetskopior – Nätverkssökvägen till säkerhetskopieringsmappen textruta. Du kan bestämma lagringsperioden för säkerhetskopiering i Ta bort filer äldre än anges i textrutan. Om säkerhetskopieringsjobbet misslyckas eller säkerhetskopieringsfilen inte inträffar under den tid som anges i textrutan, avger SQL Server en varning.

Vid loggsändning kopierar SQL Server säkerhetskopiorna av loggfilen till nätverksresursen. Guiden skapar automatiskt ett säkerhetskopieringsjobb under distributionsprocessen. Det gör ett schema automatiskt också, men du kan ändra det genom att klicka på knappen Schema.

I mitt fall har jag ändrat namnet på backupjobbet för att identifiera det. Namnet på jobbet är LogShipping_Backup_AdventureWorks2017 .

Jag gjorde inga ändringar i jobbschemat och inställningarna för säkerhetskopiering.

Konfigurera den sekundära servern

För att lägga till den sekundära servern och databasen, klicka på "Lägg till" Databasegenskaper dialogrutan.

En dialogruta med namnet Sekundära databasinställningar kommer öppna. Vi måste ansluta till den sekundära databasservern. För att göra det, klicka på "Lägg till."

En dialogruta öppnas. Ange servernamnet och klicka på Anslut :

Konfiguration av sekundära databasinställningar

Initiera sekundär databas

På fliken initiera sekundär databas kan du ställa in något av följande tre alternativ för att återställa databasen:

  1. Om databasen inte finns på den sekundära servern kan du skapa en fullständig säkerhetskopia och återställa den på den sekundära servern. I det här scenariot kan du använda det första alternativet.
  2. Om det finns en fullständig säkerhetskopia för en databas som genereras av andra säkerhetskopieringsjobb, eller om du redan har en, kan du återställa den på den sekundära servern. I det här scenariot kan du välja det andra alternativet.
  3. Om du har återställt den sekundära databasen med NORECOVERY-tillståndet kan du välja det tredje alternativet.

Kopiera filer

Kopiera filer fliken kan du ange destinationskatalogen för kopierade säkerhetskopior. Lagringsperioden definieras också där.

Guiden skapar ett SQL-jobb för att kopiera filer till målkatalogen. Målmappen för backup är \\domain\Log Shipping Backups. Namnet på kopieringsjobbet är LogShipping_Copy_SQL01_AdventureWorks2017 .

Återställ transaktionslogg

I Återställ transaktionslogg fliken kan du ange databasläge. Om du vill behålla databasen i skrivskyddat läge, välj Vänteläge eller välj Ingen återställning .

I den här demon behåller vi databastillståndet som NORECOVERY. Du kan ange fördröjningen för återställning av säkerhetskopior och konfigurera varningar för säkerhetskopior som inte återställs inom ett angivet intervall. I vårt fall använder vi inte standardinställningar.

Namnet på återställningsjobbet är LogShipping_Restore_SQL01_AdventureWorks2017.

När konfigurationen är klar, klicka på OK för att spara ändringarna.

Som du ser har den sekundära servern och databasen lagts till i "Sekundära serverinstanser och databaser rutnät ” på Databasegenskaper skärmen.

Konfigurera övervakningsinstans

Om du vill konfigurera Monitor-serverinstansen, sätta en bock för Använd en monitorserverinstans . För att lägga till monitorinstansen klickar du på Inställningar .

Vi kommer att använda iscsi\SQL2017-instansen som en övervakningsserver för loggsändning.

I Logg Shipping Monitor Setting dialogrutan, ange namnet i Övervakningsserverinstansen textruta.

Vi använder sa konto för att övervaka stocksändningen. Därför måste du ange sa som användarnamn och lösenord. Du kan också ange lagringsperioden för övervakningsvarningarna och historiken.

Här använder vi standardinställningar. Namnet på varningsjobbet är LogShipping_Alert_iscsi\sql2017 .

Klicka på OK för att spara konfigurationen och stänga dialogrutan.

Du kan skapa ett T-SQL-skript för hela konfigurationen genom att klicka på Skriptkonfiguration knapp. Kopiera antingen konfigurationsskriptet till urklipp eller filen eller öppna det i ett nytt frågeredigeringsfönster.

Vi vill inte skriva ut handlingen. Du kan ignorera detta steg.

Klicka på OK för att spara konfigurationen av loggleveransen, så startar processen:

När logfrakt är konfigurerat kan du se framgångsdialogrutan:

Testa failover-scenario

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

Kör följande fråga för att infoga demodata:

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

För att utföra failover, ta en tail-log backup av adventureworks2017-databasen. Kör följande fråga:

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

Anslut till SQL02 (sekundär server) och återställ säkerhetskopian av slutloggen med RESTORE WITH RECOVERY. Kör följande kod:

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

När säkerhetskopieringen av tail-log har återställts framgångsrikt, kör du frågan för att verifiera att data har kopierats till den sekundära servern:

Select * from person

Frågeutdata:

Som du ser återställs data på den sekundära servern.

Slutsats

I den här artikeln har vi förklarat SQL Server-loggsändningsprocessen och hur man konfigurerar den. Vi demonstrerade också steg för steg failover-processen för loggsändningen.


  1. generera dagar från datumintervall

  2. DateTime2 vs DateTime i SQL Server

  3. Skapa parametriserad vy i SQL Server 2008

  4. Hur kan jag använda en PostgreSQL-utlösare för att lagra ändringar (SQL-satser och radändringar)