Freigeben über


Übermitteln einer Momentaufnahme über FTP

In diesem Thema wird beschrieben, wie in SQL Server 2012 mithilfe von SQL Server Management Studio oder Transact-SQL eine Momentaufnahme über FTP bereitgestellt wird.

In diesem Thema

  • Vorbereitungen:

    Einschränkungen

    Voraussetzungen

    Sicherheit

  • So übermitteln Sie eine Momentaufnahme über FTP mit:

    SQL Server Management Studio

    Transact-SQL

Vorbereitungen

Einschränkungen

  • Der Momentaufnahme-Agent muss Schreibberechtigungen für das angegebene Verzeichnis und der Verteilungs-Agent oder Merge-Agent muss Leseberechtigungen besitzen. Bei Verwendung von Pullabonnements müssen Sie ein freigegebenes Verzeichnis als UNC-Pfad angeben, wie z. B. \\ftpserver\home\snapshots. Weitere Informationen finden Sie unter Sichern des Momentaufnahmeordners.

Voraussetzungen

  • Zum Übertragen von Momentaufnahmedateien über FTP (File Transfer Protocol) müssen Sie zuerst einen FTP-Server konfigurieren. Weitere Informationen finden Sie in der Dokumentation zu den Microsoft Internetinformationsdiensten (IIS).

Sicherheit

Implementieren Sie ein virtuelles privates Netzwerk (VPN), wenn Sie FTP-Momentaufnahmeübermittlung über das Internet verwenden, um die Sicherheit zu verbessern. Weitere Informationen finden Sie unter Veröffentlichen von Daten über das Internet mithilfe von VPN.

Lassen Sie als bewährte Sicherheitsmethode keine anonymen Anmeldungen am FTP-Server zu. Der Momentaufnahme-Agent muss Schreibberechtigungen für das angegebene Verzeichnis und der Verteilungs-Agent oder Merge-Agent muss Leseberechtigungen besitzen. Bei Verwendung von Pullabonnements müssen Sie ein freigegebenes Verzeichnis als UNC-Pfad angeben, wie z. B. \\ftpserver\home\snapshots. Weitere Informationen finden Sie unter Sichern des Momentaufnahmeordners.

Die Benutzer sollten nach Möglichkeit während der Laufzeit zur Eingabe von Anmeldeinformationen aufgefordert werden. Wenn Anmeldeinformationen in einer Skriptdatei gespeichert werden, müssen Sie sicherstellen, dass die Datei geschützt ist.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Verwendung von SQL Server Management Studio

Geben Sie nach dem Konfigurieren des FTP-Servers im Dialogfeld Veröffentlichungseigenschaften <Veröffentlichung> ein Verzeichnis und Sicherheitsinformationen für diesen Server an. Weitere Informationen über das Zugreifen auf dieses Dialogfeld finden Sie unter Anzeigen und Ändern von Veröffentlichungseigenschaften.

So geben Sie FTP-Informationen an

  1. Aktivieren Sie im Dialogfeld Veröffentlichungseigenschaften - <Veröffentlichung> die Option Abonnenten das Herunterladen von Momentaufnahmedateien über FTP (File Transfer Protocol) ermöglichen auf einer der folgenden Seiten:

    • Der Seite FTP-Momentaufnahme, für Momentaufnahme- und Transaktionsveröffentlichungen und für Mergeveröffentlichungen bei Verlegern, auf denen niedrigere Versionen als Microsoft SQL Server 2005 ausgeführt werden.

    • Der Seite FTP-Momentaufnahme und Internet, für Mergeveröffentlichungen von Verlegern, auf denen SQL Server 2005 oder höher ausgeführt wird.

  2. Geben Sie Werte für FTP-Servername, Portnummer, Pfad des FTP-Stammordners, Anmeldename und Kennwort an.

    Wenn beispielsweise der FTP-Stammordner \\ftpserver\home lautet und Momentaufnahmen in \\ftpserver\home\snapshots gespeichert werden sollen, geben Sie \snapshots\ftp für die Eigenschaft Pfad des FTP-Stammordners an (von der Replikation wird 'ftp' beim Erstellen der Momentaufnahmedateien an den Pfad des Momentaufnahmeordners angehängt).

  3. Geben Sie an, dass der Momentaufnahme-Agent die Momentaufnahmedateien in das in Schritt 2 angegebene Verzeichnis schreiben soll. Wenn der Momentaufnahme-Agent beispielsweise die Momentaufnahmedateien in das Verzeichnis \\ftpserver\home\snapshots\ftp schreiben soll, müssen Sie den Pfad \\ftpserver\home\snapshots an einer von zwei Stellen angeben:

    • Dem Standardspeicherort für Momentaufnahmen für den Verteiler, dem diese Veröffentlichung zugeordnet ist.

      Weitere Informationen zum Angeben des Standardspeicherorts für Momentaufnahmen finden Sie unter Angeben des standardmäßigen Momentaufnahmespeicherorts (SQL Server Management Studio).

    • Einem alternativen Speicherort für den Momentaufnahmeordner für diese Veröffentlichung. Ein alternativer Speicherort ist erforderlich, wenn die Momentaufnahme komprimiert wird.

      Geben Sie den Pfad im Dialogfeld Veröffentlichungseigenschaften - <Veröffentlichung> auf der Seite Momentaufnahme in das Textfeld Dateien im folgenden Ordner speichern ein. Weitere Informationen zu alternativen Speicherorten für Momentaufnahmeordner finden Sie unter Alternative Speicherorte für Momentaufnahmeordner.

  4. Klicken Sie auf OK.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Verwendung von Transact-SQL

Die Option, Momentaufnahmedateien auf einem FTP-Server verfügbar zu machen, und die entsprechenden FTP-Einstellungen können mithilfe gespeicherter Replikationsprozeduren programmgesteuert festgelegt und geändert werden. Welche Prozedur verwendet wird, hängt vom Typ der Veröffentlichung ab. FTP-Momentaufnahmeübermittlung wird nur bei Pullabonnements verwendet.

So aktivieren Sie die FTP-Momentaufnahmeübermittlung für eine Momentaufnahme- oder Transaktionsveröffentlichung

  • Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_addpublication. Geben Sie @publication, den Wert true für @enabled_for_internet und entsprechende Werte für die folgenden Parameter an:

    • @ftp_address – die Adresse des FTP-Servers, der für die Übermittlung der Momentaufnahme verwendet wird.

    • (Optional) @ftp_port – der vom FTP-Server verwendete Port.

    • (Optional) @ftp_subdirectory – das Unterverzeichnis des einer FTP-Anmeldung zugewiesenen Standard-FTP-Verzeichnisses. Wenn beispielsweise der FTP-Stammordner \\ftpserver\home lautet und Momentaufnahmen in \\ftpserver\home\snapshots gespeichert werden sollen, geben Sie \snapshots\ftp für @ftp_subdirectory an (von der Replikation wird beim Erstellen der Momentaufnahmedateien 'ftp' an den Pfad des Momentaufnahmeordners angehängt).

    • (Optional) @ftp_login – das Anmeldekonto, das beim Herstellen einer Verbindung mit dem FTP-Server verwendet wird.

    • (Optional) @ftp_password – das Kennwort für die FTP-Anmeldung.

    Dadurch wird eine Veröffentlichung erstellt, die FTP verwendet. Weitere Informationen finden Sie unter Erstellen einer Veröffentlichung.

So aktivieren Sie die FTP-Momentaufnahmeübermittlung für eine Mergeveröffentlichung

  • Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_addmergepublication aus. Geben Sie @publication, den Wert true für @enabled_for_internet und entsprechende Werte für die folgenden Parameter an:

    • @ftp_address – die Adresse des FTP-Servers, der für die Übermittlung der Momentaufnahme verwendet wird.

    • (Optional) @ftp_port – der vom FTP-Server verwendete Port.

    • (Optional) @ftp_subdirectory – das Unterverzeichnis des einer FTP-Anmeldung zugewiesenen Standard-FTP-Verzeichnisses. Wenn beispielsweise der FTP-Stammordner \\ftpserver\home lautet und Momentaufnahmen in \\ftpserver\home\snapshots gespeichert werden sollen, geben Sie \snapshots\ftp für @ftp_subdirectory an (von der Replikation wird beim Erstellen der Momentaufnahmedateien 'ftp' an den Pfad des Momentaufnahmeordners angehängt).

    • (Optional) @ftp_login – das Anmeldekonto, das beim Herstellen einer Verbindung mit dem FTP-Server verwendet wird.

    • (Optional) @ftp_password – das Kennwort für die FTP-Anmeldung.

    Dadurch wird eine Veröffentlichung erstellt, die FTP verwendet. Weitere Informationen finden Sie unter Erstellen einer Veröffentlichung.

So erstellen Sie ein Pullabonnement für eine Momentaufnahme- oder Transaktionsveröffentlichung, die FTP-Snapshotübermittlung verwendet

  1. Führen Sie auf dem Abonnenten für die Abonnementdatenbank sp_addpullsubscription aus. Geben Sie @publisher und @publication an.

    • Führen Sie auf dem Abonnenten für die Abonnementdatenbank sp_addpullsubscription_agent aus. Geben Sie @publisher, @publisher_db, @publication, die Microsoft Windows-Anmeldeinformationen, unter denen der Verteilungs-Agent auf dem Abonnenten ausgeführt wird, für @job_login und @job_password sowie den Wert true für @use_ftp an.
  2. Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_addsubscription aus, um das Pullabonnement zu registrieren. Weitere Informationen finden Sie unter Erstellen eines Pullabonnements.

So erstellen Sie ein Pullabonnement für eine Mergeveröffentlichung, die FTP-Momentaufnahmeübermittlung verwendet

  1. Führen Sie auf dem Abonnenten für die Abonnementdatenbank sp_addmergepullsubscription aus. Geben Sie @publisher und @publication an.

  2. Führen Sie auf dem Abonnenten für die Abonnementdatenbank sp_addmergepullsubscription_agent aus. Geben Sie @publisher, @publisher_db, @publication, die Windows-Anmeldeinformationen, unter denen der Verteilungs-Agent auf dem Abonnenten ausgeführt wird, für @job_login und @job_password sowie den Wert true für @use_ftp an.

  3. Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_addmergesubscription aus, um das Pullabonnement zu registrieren. Weitere Informationen finden Sie unter Erstellen eines Pullabonnements.

So ändern Sie eine oder mehrere Einstellungen der FTP-Momentaufnahmeübermittlung für eine Momentaufnahme- oder Transaktionsveröffentlichung

  1. Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_changepublication aus. Geben Sie einen der folgenden Werte für @property und einen neuen Wert für diese Einstellung für @value an:

    • ftp_address – die Adresse des FTP-Servers, der für die Übermittlung der Momentaufnahme verwendet wird.

    • ftp_port – der vom FTP-Server verwendete Port.

    • ftp_subdirectory – das Unterverzeichnis des einer FTP-Anmeldung zugewiesenen Standard-FTP-Verzeichnisses.

    • ftp_login – der Anmeldenamen, der zum Herstellen einer Verbindung mit dem FTP-Server verwendet wird.

    • ftp_password – das Kennwort für die FTP-Anmeldung.

  2. (Optional) Wiederholen Sie Schritt 1 für jede zu ändernde FTP-Einstellung.

  3. (Optional) Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_changepublication aus, um die FTP-Momentaufnahmeübermittlung zu deaktivieren. Geben Sie den Wert enabled_for_internet für @property und den Wert false für @value an.

So ändern Sie die Einstellungen der FTP-Momentaufnahmeübermittlung für eine Mergeveröffentlichung

  1. Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_changemergepublication aus. Geben Sie einen der folgenden Werte für @property und einen neuen Wert für diese Einstellung für @value an:

    • ftp_address – die Adresse des FTP-Servers, der für die Übermittlung der Momentaufnahme verwendet wird.

    • ftp_port – der vom FTP-Server verwendete Port.

    • ftp_subdirectory – das Unterverzeichnis des einer FTP-Momentaufnahme zugewiesenen Standard-FTP-Verzeichnisses.

    • ftp_login – der Anmeldename, der zum Herstellen einer Verbindung mit dem FTP-Server verwendet wird.

    • ftp_password – das Kennwort für die FTP-Anmeldung.

  2. (Optional) Wiederholen Sie Schritt 1 für jede zu ändernde FTP-Einstellung.

  3. (Optional) Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_changemergepublication aus, um die FTP-Momentaufnahmeübermittlung zu deaktivieren. Geben Sie den Wert enabled_for_internet für @property und den Wert false für @value an.

Beispiele (Transact-SQL)

Im folgenden Beispiel wird eine Mergeveröffentlichung erstellt, die Abonnenten ermöglicht, über FTP auf die Momentaufnahmedaten zuzugreifen. Beim Zugreifen auf die FTP-Freigabe sollte der Abonnent eine sichere VPN-Verbindung verwenden. sqlcmd-Skriptvariablen werden verwendet, um Anmelde- und Kennwortwerte anzugeben. Weitere Informationen finden Sie unter Verwenden von sqlcmd mit Skriptvariablen.

-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables  
-- on the command line and in SQL Server Management Studio, see the 
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".

-- Declarations for adding a merge publication.
DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @ftp_server AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
DECLARE @ftp_login AS sysname;
DECLARE @ftp_password AS sysname;
DECLARE @ftp_directory AS sysname;
DECLARE @snapshot_folder AS sysname;
DECLARE @article AS sysname;
DECLARE @owner AS sysname;
SET @publicationDB = N'AdventureWorks'; 
SET @publication = N'AdvWorksSalesOfferMergeFtp'; 
SET @ftp_server = $(Server);
SET @login = $(Login);
SET @password = $(Password);
SET @ftp_login = $(FtpLogin);
SET @ftp_password = $(FtpPassword);
SET @ftp_directory = N'\snapshots\ftp';
-- The snapshot folder is the root FTP folder on the server 
-- with the \snapshot subdirectory.
SET @snapshot_folder = $(AlternateFolder);
SET @article = N'SpecialOffer'; 
SET @owner = N'Sales' 

-- Enable merge replication on the publication database.
USE master
EXEC sp_replicationdboption 
    @dbname = @publicationDB, 
    @optname=N'merge publish',
    @value = N'true' ;

-- Create a new merge publication, enabling FTP snapshot delivery. 
-- Specify the publication compatibility level or it will default to 
-- SQL Server 2000.
USE [AdventureWorks]
EXEC sp_addmergepublication 
-- Specify the required parameters.
    @publication = @publication,
    @publication_compatibility_level = N'90RTM',
    @enabled_for_internet = N'true',
    @snapshot_in_defaultfolder = N'true',
    @alt_snapshot_folder = @snapshot_folder,
    @ftp_address = @ftp_server,
    @ftp_subdirectory = @ftp_directory,
    @ftp_login = @ftp_login,
    @ftp_password = @ftp_password;

-- Create the snapshot job for the publication, using the defaults.
EXEC sp_addpublication_snapshot 
    @publication = @publication, 
    @job_login = @login, 
    @job_password = @password;

-- Add an unfiltered article for the Customer table.
EXEC sp_addmergearticle 
    @publication = @publication, 
    @article = @article, 
    @source_object = @article, 
    @type = N'table', 
    @source_owner = @owner, 
    @destination_owner = @owner, 
    @column_tracking = N'true'; 

-- Start the snapshot job for the publication.
EXEC sp_startpublication_snapshot 
    @publication = @publication;
GO

Im folgenden Beispiel wird ein Abonnement für eine Mergeveröffentlichung erstellt, bei dem der Abonnent die Momentaufnahme über FTP abruft. Beim Zugreifen auf die FTP-Freigabe sollte der Abonnent eine sichere VPN-Verbindung verwenden. sqlcmd-Skriptvariablen werden verwendet, um Anmelde- und Kennwortwerte anzugeben. Weitere Informationen finden Sie unter Verwenden von sqlcmd mit Skriptvariablen.

-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables  
-- on the command line and in SQL Server Management Studio, see the 
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".

-- Execute this batch at the Publisher.
DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
SET @publication = N'AdvWorksSalesOfferMergeFtp';
SET @subscriber = $(SubServer);
SET @subscriptionDB = N'AdventureWorksReplica';

-- At the Publisher, register the subscription, using the defaults.
EXEC sp_addmergesubscription 
    @publication = @publication, 
    @subscriber = @subscriber, 
    @subscriber_db = @subscriptionDB, 
    @subscription_type = N'pull', 
    @subscriber_type = N'local', 
    @subscription_priority = 0, 
    @sync_type = N'Automatic';
GO

-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables  
-- on the command line and in SQL Server Management Studio, see the 
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".

-- Execute this batch at the Subscriber.
DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @publisher AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
SET @publicationDB = N'AdventureWorks'; 
SET @publication = N'AdvWorksSalesOfferMergeFtp'; 
SET @publisher = $(PubServer);
SET @login = $(Login);
SET @password = $(Password);
SET @subscriber = $(SubServer);
SET @subscriptionDB = N'AdventureWorksReplica';

EXEC sp_addmergepullsubscription 
    @publisher = @publisher, 
    @publication = @publication, 
    @publisher_db = @publicationDB, 
    @subscriber_type = N'Local', 
    @subscription_priority = 0, 
    @sync_type = N'Automatic';

exec sp_addmergepullsubscription_agent 
    @publisher = @publisher, 
    @publisher_db = @publicationDB, 
    @publication = @publication, 
    @distributor = @publisher, 
    @distributor_security_mode = 1, 
    @use_ftp = N'true', 
    @job_login = @login, 
    @job_password = @password, 
    @publisher_security_mode = 1, 
    @use_web_sync = 0;
GO

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Siehe auch

Konzepte

Konzepte für gespeicherte Systemprozeduren für die Replikation

Übertragen von Momentaufnahmen über FTP

Ändern von Veröffentlichungs- und Artikeleigenschaften

Initialisieren eines Abonnements mit einer Momentaufnahme