Konfigurieren des Protokollversands in SharePoint Server

 

**Gilt für:**Microsoft Azure, SharePoint Server 2013, SharePoint Server 2016, SQL Server

**Letztes Änderungsdatum des Themas:**2018-02-21

**Zusammenfassung:**Informationen zur Implementierung des Protokollversands für SharePoint Server 2016 und SharePoint Server 2013 in einem Wiederherstellungsszenario.

Der Protokollversand dient zur Sicherung der Transaktionsprotokolle aus einer primären Datenbank in eine sekundäre Datenbank auf einer anderen SQL Server-Instanz. In dem hier beschriebenen Szenario wird der SQL Server-Protokollversand zusammen mit der DFS-Replikation (Distributed File System Replication) verwendet, um Datenbanken und Transaktionsprotokolle in die Wiederherstellungsfarm in Microsoft Azure zu kopieren, wie es weiter unten dargestellt ist.

In diesem Wiederherstellungsszenario ist die SharePoint Server-Produktionsfarm lokal, und die Wiederherstellungsfarm befindet sich in Azure. Sie können die Anleitungen in diesem Thema auch für andere Arten von Wiederherstellungsszenarien verwenden.

Elemente einer Standbylösung in Windows Azure

Elemente einer Standbylösung in Windows Azure

In der Darstellung sehen Sie Folgendes:

  • Es sind zwei Umgebungen nebeneinander dargestellt: die lokale SharePoint-Farm und die Wiederherstellungsfarm (oder Standbyfarm) in Azure.

  • Jede Umgebung umfasst eine Dateifreigabe.

  • Der Protokollversand dient zum Kopieren von Protokollen vom sekundären Datenbankserver, der sich in der lokale Umgebung befindet, in die Dateifreigabe.

  • DFS-Replikation kopiert Dateien aus der Dateifreigabe, die sich in der lokalen Umgebung befindet, in die Dateifreigabe in der Azure-Umgebung. In einem WAN-Szenario ist DFS-Replikation effizienter als der direkte Protokollversand zum sekundären Server in Azure.

  • Bei Protokollversand werden die Protokolle aus der Dateifreigabe der Azure-Umgebung im primären Replikat in der AlwaysOn-Verfügbarkeitsgruppe in SQL Server der Wiederherstellungsumgebung wiedergegeben.

  • Die per Protokollversand verschickten Datenbanken werden erst an die SharePoint Server-Farm gebunden, wenn eine Wiederherstellung ausgeführt wird.

Im folgenden Diagramm sehen Sie die sieben Phasen, aus denen die komplette SharePoint Server-Notfallwiederherstellung in der Azure-Lösung besteht. Die Phase 6: Das Einrichten des Protokollversands an die Wiederherstellungsfarm ist in diesem Diagramm hervorgehoben und wird anschließend erklärt.

Roadmap einer Notfallwiederherstellungslösung

Inhalt dieses Artikels:

  • Verwenden des Protokollversands bei der Notfallwiederherstellung

  • Überlegungen zur Leistung

  • Voraussetzungen für die Konfiguration des Protokollversands

  • Infrastruktur des Protokollversands

  • Schritte zum Konfigurieren und Überprüfen des Protokollversands

Verwenden des Protokollversands bei der Notfallwiederherstellung

Mit dem Protokollversand können Sie automatisch Transaktionsprotokolldateien für Datenbanken von einer primären Datenbankserverinstanz an eine sekundäre Datenbankserverinstanz senden. In der lokalen Testumgebung verwendet Microsoft AlwaysOn-Verfügbarkeitsgruppen mit zwei Replikaten für eine hohe Verfügbarkeit. Microsoft hat den Protokollversand auf beiden Replikaten konfiguriert. Jedes Replikat muss Transaktionsprotokolle versenden können. Nur das aktive Replikat, das Besitzer der Datenbank ist, kann Protokolle senden. Falls jedoch ein Failoverereignis einträte und das sekundäre Replikat aktiv werden würde, müsste es die Transaktionsprotokolle an der Stelle das fehlerhaften Replikats senden.

Nachdem die Transaktionsprotokolle in der Azure-Umgebung angekommen sind, werden sie nacheinander in die einzelnen SharePoint-Datenbanken auf dem sekundären Datenbankserver gespeichert. Weitere Informationen zur Microsoft-Testumgebungen finden Sie in der Microsoft-Umgebung für eine Machbarkeitsstudie.

Hinweis

Einige Organisationen verwenden einen dritten Datenbankserver als Überwachung, die Historie und Status der Sicherungs- und Wiederherstellungsvorgänge aufzeichnet. Diese optionale Überwachungsserver gibt Alarme aus, wenn der Sicherungsvorgang nicht erfolgreich ist.

Weitere Informationen zum Protokollversand finden Sie in den in der folgenden Tabelle aufgelisteten Artikeln.

Tabelle: Referenzartikel zum Protokollversand

URL Beschreibung

Informationen zum Protokollversand (SQL Server)

Beschreibt die Sicherung von Transaktionsprotokollen des Protokollversands und die verfügbaren Optionen.

Konfigurieren des Protokollversands (SQL Server)

Beschreibt das Konfigurieren des Protokollversands in SQL Server 2012 mithilfe von SQL Server Management Studio oder Transact-SQL.

Anzeigen des Protokollversandberichts (SQL Server Management Studio)

Erklärt das Anzeigen eines Statusberichts über den Transaktionsprotokollversand in SQL Server Management Studio. Sie können einen Statusbericht auf dem Überwachungsserver, dem primären oder dem sekundären Server ausführen.

Überlegungen zur Leistung

Der Protokollversand unterteilt sich in drei Aufträge. Jeder Auftrag führt einen der folgenden Vorgänge aus:

  1. Sichern des Transaktionsprotokolls auf der primärer Serverinstanz.

  2. Kopieren der Transaktionsprotokolldatei in die sekundäre Serverinstanz.

  3. Wiederherstellen der Protokollsicherung auf der sekundären Serverinstanz.

Jeder Auftrag wird auf Grundlage eines Zeitplans für ein bestimmtes Intervall ausgeführt, was erhebliche Auswirkungen auf den Datenbankserver haben kann und auch auf die Leistung der SharePoint-Farm.

Für eine korrekte Konfiguration der Sicherungs-, Kopiervorgangs- und Wiederherstellungsintervalle für den Protokollversand müssen Sie die Datenmenge analysieren. Die Menge der per Protokollversand verschickten Daten hängt vom täglichen Umfang der Änderungen in der Inhaltsdatenbank ab. Der prozentuale Anteil der Änderungen kann, je nach Inhalt, Datenbestandspflege und Spitzennutzungszeiten, stark schwanken.

Um eine genaue Schätzung des Prozentsatzes der Änderungen zu erhalten, berechnen Sie die Summe der Änderungen in den Transaktionsprotokoll-Sicherungskopien für jede Inhaltsdatenbank, die Sie in einem bestimmten Zeitraum per Protokollversand verschicken. Anhand dieser Daten berechnen Sie dann den Prozentsatz der Änderungen im Verhältnis zur primären Datenbank.

Die folgende Leitlinie wurde aus der Protokollversanderfahrung der Mitarbeiter bei Microsoft bei mehreren SharePoint Server-Versionen abgeleitet.

  • Vermeiden Sie eine Leistungsverschlechterung, indem Sie nicht auf Aufträge gleichzeitig starten, sondern stellen Sie sicher, dass die Protokollversandaufträge mit mindestens einer Minute Zeitunterschied gestartet werden.

  • Es ist vorteilhafter, viele kleine Transaktionsprotokolle zu sichern und zu kopieren, als wenige große.

  • Terminieren Sie Protokollsicherungen und -kopien in engen Intervallen. Sie können Transaktionsprotokolle in weniger häufigen Intervallen wiederherstellen. Beispiel: beginnen Sie mit Sicherungs- und Kopieintervallen von fünf Minuten und Wiederherstellungsintervallen von 15 Minuten.

Voraussetzungen für die Konfiguration des Protokollversands

Stellen Sie sicher, dass die folgenden Voraussetzungen für eine Verwendung des Protokollversands für eine Notfallwiederherstellungslösung gegeben sind.

  • Die SQL Server-Anmeldungen sind Domänenkonten mit den entsprechenden Berechtigungsstufen für den Protokollversand. Die gespeicherten Protokollversandverfahren erfordern eine Mitgliedschaft bei der festen sysadmin-Serverrolle.

  • Die primäre Datenbank muss das vollständige oder das massenprotokollierte Wiederherstellungsmodell verwenden.

    Warnung

    Wenn Sie die Datenbank auf eine einfache Wiederherstellung einstellen, funktioniert der Protokollversand nicht mehr.

  • Bevor Sie den Protokollversand konfigurieren, müssen Sie zunächst eine Dateifreigabe erstellen, damit der sekundäre Server auf die Sicherungskopien der Transaktionsprotokolle zugreifen kann. Es handelt sich dabei um eine Dateifreigabe des Verzeichnisses, in dem die Transaktionsprotokollsicherungen generiert werden.

Stellen Sie, neben den Wiederherstellungspunktzielsetzungen (RPO), auch sicher, dass die wiederhergestellten Farmdaten möglichst vollständig und beschädigt sind. Um diese Zielsetzungen zu erfüllen, müssen Sie jeden Aspekt des Protokollversands sorgfältig planen und terminieren.

Infrastruktur des Protokollversands

Die für die Notfallwiederherstellungslösung verwendete Protokollversandinfrastruktur wird im folgenden Diagramm dargestellt.

Infrastruktur und Datenfluss des Protokollversands

Zeigt die Protokollversandinfrastruktur und den direktionalen Fluss zwischen den lokalen und Windows Azure-Farmen.

Das vorherige Diagramm zeigt die Protokollversandinfrastruktur und den Datenfluss. Das Diagramm zeigt die SQL Server-Datenbankserver und die Dateiserver in der Produktionsfarm und in der Azure-Wiederherstellungsfarm. Diese Farmen sind fast gleich, und jede hat primäre und sekundäre Replikate für jede AlwaysOn-Verfügbarkeitsgruppe. Die Dateiserver, FIL1 und AZ-FIL1, haben die gleiche Konfiguration, einschließlich der Anzahl der Festplatten und der Datenträgergröße. Alle weiteren Server der Farm sind nicht dargestellt.

Um eine hohe Verfügbarkeit bereitzustellen, speichert jedes Replikat in einer Verfügbarkeitsgruppe eine Sicherungskopie (vollständige, differenzielle und Transaktionsprotokolle) des jeweils anderen Replikats.

Das primäre und das sekundäre Replikat (SQL-HA1 bzw. SQL-HA2) stellen Sicherungsdateien her, die auf dem jeweiligen Partnerreplikat in der Verfügbarkeitsgruppe gespeichert werden.

Der versand von Transaktionsprotokollen wird auf dem sekundären Replikat konfiguriert, um die Auswirkungen auf die Produktionsdatenbank zu minimieren. Die Transaktionsprotokolle werden in einen freigegebenen Ordner auf dem lokalen Dateiserver (FIL1) geschrieben. Der Windows Server DFS-Replikationsdienst (Distributed File System) kopiert die Transaktionsprotokolle von FIL1 nach AZ-FIL1. Die Transaktionsprotokolle auf AZ-FIL1 werden auf AZ-SQL-HA1, dem primären Replikat für die Verfügbarkeitsgruppe in der Wiederherstellungsfarm, wiederhergestellt.

Schritte zum Konfigurieren und Überprüfen des Protokollversands

Die erforderlichen Schritte zum Konfigurieren, Ausführen und Bestätigen des Protokollversands sind in der folgenden Liste zusammengefasst:

  1. Sichern der Datenbank.

    1. Konfigurieren der vollständigen und differentiellen Sicherungen in einem lokalen Ordner und in einem freigegebenen Ordner auf dem Dateiserver.

    2. Überprüfen, ob Sicherungsdateien in lokalen und im freigegebenen Ordner erstellt wurden.

  2. Einrichten und Testen der DFS-Replikation (Distributed File System).

    1. Erstellen von Namespace und Replikation für eine Übertragung der Transaktionsprotokolle und Sicherungsdateien zwischen den lokalen Farmen und den Azure-Farmen im freigegebenen Ordner auf dem Dateiserver.

    2. Überprüfen aller Übertragungen nachdem der Protokollversand gestartet wurde.

  3. Einrichten und Testen des Protokollversands.

    1. Einrichten des Protokollversands auf dem primären Datenbankserver mithilfe des folgenden Skripts: Primary-Logshippingsetupparameter. Dieses Skript erstellt Sicherungsaufträge, terminiert diese für den Protokollversand und initialisiert dann diese Aufträge.

      SET NOCOUNT ON
      USE MSDB
      GO
      
      --@PrimServer : Primary Server name
      --@SecServer  : DR/Secondary Server Name
      --@SecInstance : DR/Secondary FQDN
      --@Domain  : Domain Name
      --@BkpDrive : Production Backup server Name
      --@DBName : DatabaseName
      
      DECLARE @LS_BackupJobIdAS uniqueidentifier,  @LS_PrimaryIdAS uniqueidentifier , @SP_Add_RetCode As int 
      DECLARE @Time as nvarchar(10),@SecInstance as nvarchar(250), @PrimServer as nvarchar(50),@SecServer as nvarchar(50),
      @Domain as nvarchar(50),@DBName as nvarchar(max),@BkpDrive as nvarchar(250),@CMD as nvarchar(max),@Counter int
      ----------------------------------------------------------------------------
      IF OBJECT_ID ('tempdb.DBO.#LogShipping','U') IS NOT NULL DROP TABLE #LogShipping
      Create table #LogShipping ( LSDBs nvarchar(max))
      
      Set @PrimServer ='SQL1'
      Set @SecServer ='SQL2'
      Set @SecInstance ='SQL2.corp.adventureworks.com'
      Set @Domain ='corp.adventureworks.com'
      Set @BkpDrive ='FS1.corp.adventureworks.com'
      Set @DBName = 'Social_DB'
      Set @Time = '0130'
      
      SET @DBName = UPPER(REPLACE(@DBName, ' ', ''))
      SET @DBName = '''' + REPLACE(@DBName, ',', ''', ''') + ''''
      
      Set @CMD =   ' Select ' +
      '''DECLARE  @SP_Add_RetCode As int, @LS_BackupJobIdAS uniqueidentifier,  @LS_PrimaryIdAS uniqueidentifier
      EXEC @SP_Add_RetCode = master.dbo.sp_add_log_shipping_primary_database ' + CHAR(10) +
      '@database = ''''''  + db.Name + ''''''' + CHAR(10) +
      ',@backup_directory = ''''\\' + @BkpDrive + '\LS\' + ''' + db.Name + ''''' + '''' + CHAR(10) +
      ',@backup_share = ' + '''''\\' + @BkpDrive + '\LS\' + ''' + db.Name + ''''' + ''''  + CHAR(10) +
      ',@backup_job_name = ''''' + 'LSBackup_' + ''' + db.Name + ''''' + '''' + CHAR(10) +
      ',@backup_retention_period = 4320
      ,@backup_compression = 1
      ,@backup_threshold = 180 
      ,@threshold_alert_enabled = 1
      ,@history_retention_period = 5760 
      ,@backup_job_id = @LS_BackupJobId OUTPUT 
      ,@primary_id = @LS_PrimaryId OUTPUT 
      ,@overwrite = 1 ' +
      
      'IF (@@ERROR = 0 AND @SP_Add_RetCode = 0) 
      BEGIN 
      DECLARE @LS_BackUpScheduleUIDAs uniqueidentifier ,@LS_BackUpScheduleIDAS int 
      EXEC msdb.dbo.sp_add_schedule 
      @schedule_name = ''''' + 'LSBackupSchedule_'+ @PrimServer + '_' + ''' + db.Name + ''''' + ''''  + CHAR(10) +
      ',@enabled = 1 
      ,@freq_type = 4 
      ,@freq_interval = 1 
      ,@freq_subday_type = 4 
      ,@freq_subday_interval = 13 
      ,@freq_recurrence_factor = 0 
      ,@active_start_date = 20090506 
      ,@active_end_date = 99991231 
      ,@active_start_time = ' + @Time  + CHAR(10) +
      ',@active_end_time = 235900 
      ,@schedule_uid = @LS_BackUpScheduleUID OUTPUT 
      ,@schedule_id = @LS_BackUpScheduleID OUTPUT 
      
      EXEC msdb.dbo.sp_attach_schedule @job_id = @LS_BackupJobId ,@schedule_id = @LS_BackUpScheduleID  
      EXEC msdb.dbo.sp_update_job @job_id = @LS_BackupJobId ,@enabled = 1 
      END 
      
      EXEC master.dbo.sp_add_log_shipping_alert_job 
      EXEC master.dbo.sp_add_log_shipping_primary_secondary 
      @primary_database = '''  + ''''' + db.Name + ''''' + ''''  + CHAR(10) + 
      ',@secondary_server = ''''' + @SecInstance + ''''''  + CHAR(10) +
      ',@secondary_database = ''' + ''''' + db.Name + ''''' + ''''  + CHAR(10) +
      ',@overwrite = 1 ''' +
      ' [LSDBs] FROM sys.databases db  where name in (' + @DBName + ')' +
      
      'and    db.name  not in (''master'',''model'',''msdb'',''tempdb'',''metricsops'',''periscope'' )
      and   Not (exists (select lss.Secondary_database from msdb.dbo.log_shipping_Secondary_databases lss where  db.Name = lss.Secondary_database)
      or exists (select lsp.primary_database from msdb.dbo.log_shipping_primary_databases lsp where  db.Name = lsp.primary_database)
         )'
      
      Insert #LogShipping (LSDBs)
      Exec ( @CMD)
      
      Set @Counter = @@rowcount
      
      While (@counter > 0)
        Begin
        select top 1  @CMD = LSDBs from #LogShipping
        exec sp_executesql @CMD
        set @counter = @counter - 1
        delete top (1) from #LogShipping
      
        End
      
      IF OBJECT_ID ('tempdb.DBO.#LogShipping','U') IS NOT NULL DROP TABLE #LogShipping
      -- ****** End: Script to be run at Primary: [DB1-PSMSQL-01]  ******
      
    2. Einrichten des Protokollversands auf dem sekundären Datenbankserver mithilfe des folgenden Skripts: Secondary-Logshippingsetupparameter scripts. In der Microsoft-Testumgebung befindet sich der sekundäre Datenbankserver in der Wiederherstellungsfarm in Azure.

      -- ****** Begin: Script to be run at Secondary:  9.3 BUILD******
      SET NOCOUNT ON
      USE MSDB
      GO
      --@PrimServer : Primary Server name
      --@SecServer  : DR/Secondary Server Name
      --@SecInstance : DR/Secondary FQDN
      --@Domain  : Domain Name
      --@PrimaryBkpDrive : Production Backup server Name
      --@BkpDrive : Secondary Backup server Name
      --@DBName : DatabaseName
      
      DECLARE @LS_BackupJobIdAS uniqueidentifier,  @LS_PrimaryIdAS uniqueidentifier , @SP_Add_RetCode As int 
      DECLARE @Time as nvarchar(10),@SecInstance as nvarchar(250), @PrimServer as nvarchar(50),@SecServer as nvarchar(50),
      @Domain as nvarchar(50),@DBName as nvarchar(max),@PrimaryBkpDrive as nvarchar(250),@BkpDrive as nvarchar(250),@CMD as nvarchar(max),@CMD2 as nvarchar(max),@Counter int
      DECLARE  @Delimeter char(1),@DB nvarchar(200), @StartPos int, @Length int
      
      IF OBJECT_ID ('tempdb.DBO.#LogShipping','U') IS NOT NULL DROP TABLE #LogShipping
      Create table #LogShipping ( LSDBs nvarchar(max))
      
      IF OBJECT_ID ('tempdb.DBO.#DBs','U') IS NOT NULL DROP TABLE #DBs
      Create TABLE #DBs (Name nvarchar(200))
      
      Set @PrimServer ='az-sql-ha1'
      Set @SecServer =' az-sql-ha2'
      Set @SecInstance ='SQL1.corp.adventureworks.com'
      Set @Domain =' corp.adventureworks.com '
      SET @PrimaryBkpDrive = 'fs1.corp.adventureworks.com'
      Set @BkpDrive =' az-sp-fs.corp.adventureworks.com '
      Set @DBName = 'Social_DB'
      Set @Time = '0130'
      
      --Parsing Function
      
      SET @Delimeter = ','
      
      WHILE LEN(@DBName) > 0
        BEGIN
          SET @StartPos = CHARINDEX(@Delimeter, @DBName)
          IF @StartPos < 0 SET @StartPos = 0
          SET @Length = LEN(@DBName) - @StartPos - 1
          IF @Length < 0 SET @Length = 0
          IF @StartPos > 0
            BEGIN
              SET @DB = Rtrim(Ltrim(SUBSTRING(@DBName, 1, @StartPos - 1)))
              SET @DBName = SUBSTRING(@DBName, @StartPos + 1, LEN(@DBName) - @StartPos)
            END
          ELSE
            BEGIN
              SET @DB = Rtrim(Ltrim(@DBName))
              SET @DBName = ''
            END
          INSERT #DBs (Name) VALUES(@DB)
      END
      
      --SET @DBName = UPPER(REPLACE(@DBName, ' ', ''))
      --SET @DBName = '''' + REPLACE(@DBName, ',', ''', ''') + ''''
      
      Set @CMD = 'Select ' +
      ''' DECLARE @LS_Secondary__CopyJobId AS uniqueidentifier, @LS_Secondary__RestoreJobId AS uniqueidentifier ,@LS_Secondary__SecondaryId AS uniqueidentifier , @LS_Add_RetCode As int ,@LS_Add_RetCode2 As int 
        DECLARE @LS_SecondaryCopyJobScheduleUIDAs uniqueidentifier ,@LS_SecondaryCopyJobScheduleIDAS int, @LS_SecondaryRestoreJobScheduleUIDAs uniqueidentifier ,@LS_SecondaryRestoreJobScheduleIDAS int 
        EXEC @LS_Add_RetCode = master.dbo.sp_add_log_shipping_secondary_primary 
      @primary_server = ''''' + @PrimServer + ''''''+  CHAR(10) +
      ',@primary_database = '' + ' +  ''''''''' + db.Name + ''''''''' +  CHAR(10) +
      ' + '',@backup_source_directory = ' + '''''\\' + @PrimaryBkpDrive + '\LS\'' + db.Name + ''''''' +  CHAR(10) +
      ' ,@backup_destination_directory =  ' + '''''\\' + @BkpDrive + '\LS\'' + db.Name + ''''''' +  CHAR(10) +
      ',@copy_job_name = ''''LSCopy_DB1-PSMSQL-01_'' + db.Name + ''''''' +  CHAR(10) +
      ',@restore_job_name = ''''LSRestore_'+ @PrimServer + '_'' + db.Name + ''''''' +  CHAR(10) +
      ',@file_retention_period = 4320 
      ,@overwrite = 1 
      ,@copy_job_id = @LS_Secondary__CopyJobId OUTPUT 
      ,@restore_job_id = @LS_Secondary__RestoreJobId OUTPUT 
      ,@secondary_id = @LS_Secondary__SecondaryId OUTPUT 
      IF (@@ERROR = 0 AND @LS_Add_RetCode = 0) 
      BEGIN 
      EXEC msdb.dbo.sp_add_schedule 
      @schedule_name =''''DefaultCopyJobSchedule'''' 
      ,@enabled = 1 
      ,@freq_type = 4 
      ,@freq_interval = 1 
      ,@freq_subday_type = 4 
      ,@freq_subday_interval = 15 
      ,@freq_recurrence_factor = 0 
      ,@active_start_date = 20090506 
      ,@active_end_date = 99991231 
      ,@active_start_time = ' + @Time + ' 
      ,@active_end_time = 235900 
      ,@schedule_uid = @LS_SecondaryCopyJobScheduleUID OUTPUT 
      ,@schedule_id = @LS_SecondaryCopyJobScheduleID OUTPUT 
      
      EXEC msdb.dbo.sp_attach_schedule 
      @job_id = @LS_Secondary__CopyJobId 
      ,@schedule_id = @LS_SecondaryCopyJobScheduleID  
      
      EXEC msdb.dbo.sp_add_schedule 
      @schedule_name =''''DefaultRestoreJobSchedule'''' 
      ,@enabled = 1 
      ,@freq_type = 4 
      ,@freq_interval = 1 
      ,@freq_subday_type = 4 
      ,@freq_subday_interval = 15 
      ,@freq_recurrence_factor = 0 
      ,@active_start_date = 20090506 
      ,@active_end_date = 99991231 
      ,@active_start_time = ' + @Time + '
      ,@active_end_time = 235900 
      ,@schedule_uid = @LS_SecondaryRestoreJobScheduleUID OUTPUT 
      ,@schedule_id = @LS_SecondaryRestoreJobScheduleID OUTPUT 
      
      EXEC msdb.dbo.sp_attach_schedule 
      @job_id = @LS_Secondary__RestoreJobId 
      ,@schedule_id = @LS_SecondaryRestoreJobScheduleID  
      END 
      
      IF (@@ERROR = 0 AND @LS_Add_RetCode = 0) 
      BEGIN 
      EXEC @LS_Add_RetCode2 = master.dbo.sp_add_log_shipping_secondary_database 
      @secondary_database = ' +  ''''''' + db.Name + ''''''' +  CHAR(10) + '
      ,@primary_server = ''''' + @PrimServer + '''''
      ,@primary_database = '+  ''''''' + db.Name + ''''''' +  CHAR(10) +
      ',@restore_delay = 0 
      ,@restore_mode = 1 
      ,@disconnect_users= 1 
      ,@restore_threshold = 180   
      ,@threshold_alert_enabled = 1 
      ,@history_retention_period= 5760 
      ,@overwrite = 1 
      END 
      IF (@@error = 0 AND @LS_Add_RetCode = 0) 
      BEGIN 
      EXEC msdb.dbo.sp_update_job @job_id = @LS_Secondary__CopyJobId ,@enabled = 0 
      EXEC msdb.dbo.sp_update_job @job_id = @LS_Secondary__RestoreJobId ,@enabled = 1 
      END '''  + '[LSDBs] FROM #DBs db'
      
      --Print @CMD
      Insert #LogShipping (LSDBs)
      Exec ( @CMD)
      
      Set @Counter = @@rowcount
      
      While (@counter > 0)
        Begin
        select top 1  @CMD = LSDBs from #LogShipping
        exec sp_executesql @CMD
        set @counter = @counter - 1
        delete top (1) from #LogShipping
      
        End
      
      IF OBJECT_ID ('tempdb.DBO.#LogShipping','U') IS NOT NULL DROP TABLE #LogShipping
      IF OBJECT_ID ('tempdb.DBO.#DBs','U') IS NOT NULL DROP TABLE #DBs
      
      -- ****** End: Script to be run at Secondary:  9.3 Build ******
      
    3. Überprüfen, dass die Transaktionsprotokolle in die Dateifreigabe gesendet werden, und dass DFS diese Protokolle in der Dateifreigabe auf dem Azure-Dateiserver repliziert. Öffnen Sie den Auftragsaktivitätsmonitor in SQL Server, um zu überprüfen, ob die Transaktionsprotokolle erfolgreich versendet wurden. Öffnen Sie die freigegebenen Ordner auf den Dateiservern in der Produktionsfarm und in der Azure-Farm, um sicherzustellen, dass DFS die Transaktionsprotokolle überträgt.

See also

Konfigurieren von SQL Server AlwaysOn-Verfügbarkeitsgruppen für SharePoint Server

Informationen zum Protokollversand
Lernprogramme zum Thema Replikation