Udostępnij za pośrednictwem


Jak Dostarczyć migawki za pośrednictwem FTP (Programowanie replikacji Transact-SQL)

Opcja migawka pliki dostępne na serwerze FTP zestaw i tych ustawień FTP można modyfikować programowo za pomocą procedur przechowywanych replikacja.Procedura stosowana zależy od typu publikacja.Dostawy migawka FTP jest używany tylko z ściągać subskrypcji.

Uwaga dotycząca zabezpieczeńUwaga dotycząca zabezpieczeń

Aby poprawić zabezpieczenia zaleca się wdrożenie wirtualnej sieci prywatnej (VPN), w przypadku używania FTP migawka dostawy za pośrednictwem Internetu.Aby uzyskać więcej informacji, zobacz Publikowanie danych w Internecie przy użyciu sieci VPN.

Aby włączyć FTP migawkę dostawy dla publikacja migawka lub transakcyjnych

  • Wydawca na baza danych publikacja, wykonanie sp_addpublication.Określ publikacja @, wartość true dla @ enabled_for_internetoraz właściwe wartości następujących parametrów:

    • @ ftp_address -adres serwera FTP, używane do dostarczania migawka.

    • (Opcjonalnie) @ ftp_port -port używany przez serwer FTP.

    • (Opcjonalnie) @ ftp_subdirectory -podkatalogu katalogu FTP domyślne przypisane logowania FTP.Na przykład określić główny serwer FTP jest \\ftpserver\home chcesz migawki mają być przechowywane w \\ftpserver\home\snapshots, \snapshots\ftp dla @ ftp_subdirectory (replikacja dołącza "ftp" do folderu migawka ścieżka podczas tworzenia migawkę plików).

    • (Opcjonalnie) @ ftp_login -konto logowania używane do łączenia z serwerem FTP.

    • (Opcjonalnie) @ ftp_password -hasło logowania FTP.

      Uwaga dotycząca zabezpieczeńUwaga dotycząca zabezpieczeń

      Jako zabezpieczeń względów, nie zezwalaj na anonimowe logowanie do serwera FTP.

    Ostrzeżenie

    Agent migawki musi mieć uprawnienia do zapisu dla katalogu, należy określić i dystrybucji agenta lub scalić Agent musi mieć uprawnienia do odczytu.Jeśli ściągać subskrypcji są używane, należy określić katalogu udostępnionego jako ścieżka uniwersalną konwencja nazewnictwa (UNC), takich jak \\ftpserver\home\snapshots.Aby uzyskać więcej informacji, zobacz Zabezpieczanie folderu Snapshot.

    Tworzy publikacja, która używa FTP.Aby uzyskać więcej informacji, zobacz Jak Tworzenie publikacji (Programowanie replikacji Transact-SQL).

Aby włączyć FTP migawka dostawy dla publikacja seryjnej

  • Wydawca na baza danych publikacja, wykonanie sp_addmergepublication.Określ publikacja @, wartość true dla @ enabled_for_internet i właściwe wartości następujących parametrów:

    • @ ftp_address -adres serwera FTP, używane do dostarczania migawka.

    • (Opcjonalnie) @ ftp_port -port używany przez serwer FTP.

    • (Opcjonalnie) @ ftp_subdirectory -podkatalogu katalogu FTP domyślne przypisane logowania FTP.Na przykład określić główny serwer FTP jest \\ftpserver\home chcesz migawki mają być przechowywane w \\ftpserver\home\snapshots, \snapshots\ftp dla @ ftp_subdirectory (replikacja dołącza "ftp" do folderu migawka ścieżka podczas tworzenia migawkę plików).

    • (Opcjonalnie) @ ftp_login -konto logowania używane do łączenia z serwerem FTP.

    • (Opcjonalnie) @ ftp_password -hasło logowania FTP.

      Uwaga dotycząca zabezpieczeńUwaga dotycząca zabezpieczeń

      Jako zabezpieczeń względów, nie zezwalaj na anonimowe logowanie do serwera FTP.

    Ostrzeżenie

    Agent migawki musi mieć uprawnienia do zapisu dla katalogu, należy określić i dystrybucji agenta lub scalić Agent musi mieć uprawnienia do odczytu.Jeśli ściągać subskrypcji są używane, należy określić katalogu udostępnionego jako ścieżka uniwersalną konwencja nazewnictwa (UNC), takich jak \\ftpserver\home\snapshots.Aby uzyskać więcej informacji, zobacz Zabezpieczanie folderu Snapshot.

    Tworzy publikacja, która używa FTP.Aby uzyskać więcej informacji, zobacz Jak Tworzenie publikacji (Programowanie replikacji Transact-SQL).

Aby utworzyć subskrypcja wciągana do migawka lub transakcyjnych publikacji używającej FTP migawkę dostawy

  1. Subskrybent na baza danych subskrypcja, wykonać sp_addpullsubscription.Określ programu publisher @ i publikacja @.

    • Subskrybent na baza danych subskrypcja, wykonać sp_addpullsubscription_agent.Określ programu publisher @, @ publisher_db, publikacja @, Microsoft poświadczenia systemu Windows, na jakich Agent dystrybucji subskrybent działa dla @ job_login i @ job_passwordi wartość true dla @ use_ftp.
  2. Wydawca bazy danych publikacja, należy wykonać sp_addsubscription zarejestrować subskrypcja wciągana.Aby uzyskać więcej informacji, zobacz Jak Tworzenie subskrypcji ściąganej (Programowanie replikacji Transact-SQL).

Do utworzenia subskrypcja ściąganej do publikacja korespondencji seryjnej, która używa FTP migawka dostawy

  1. Subskrybent na baza danych subskrypcja, wykonać sp_addmergepullsubscription.Określ programu publisher @ i publikacja @.

  2. Subskrybent na baza danych subskrypcja, wykonać sp_addmergepullsubscription_agent.Określ programu publisher @, @ publisher_db, publikacja @, poświadczenia systemu Windows, na jakich Agent dystrybucji subskrybent działa dla @ job_login i @ job_passwordi wartość true dla @ use_ftp.

  3. Wydawca bazy danych publikacja, należy wykonać sp_addmergesubscription zarejestrować subskrypcja wciągana.Aby uzyskać więcej informacji, zobacz Jak Tworzenie subskrypcji ściąganej (Programowanie replikacji Transact-SQL).

Aby zmienić jeden lub więcej FTP migawkę ustawień dostarczania dla publikacja migawka lub transakcyjnych

  1. Wydawca na baza danych publikacja, wykonanie sp_changepublication.Określ jedną z następujących wartości @ Właściwość i nową wartość tego ustawienia dla wartość @:

    • ftp_address -adres serwera FTP, używane do dostarczania migawka.

    • ftp_port -port używany przez serwer FTP.

    • ftp_subdirectory -podkatalogu domyślny katalog FTP używany do migawka FTP.

    • ftp_login -logowania używane do łączenia z serwerem FTP.

    • ftp_password -hasło logowania FTP.

    Uwaga dotycząca zabezpieczeńUwaga dotycząca zabezpieczeń

    Jeśli to możliwe, monitują użytkowników o wprowadzenie poświadczenia w czasie wykonywania.Jeśli poświadczenia są przechowywane w pliku skryptu, należy zabezpieczyć plik.

  2. (Opcjonalnie) Powtórz krok 1 dla każdego ustawienia FTP zmianie.

  3. (Opcjonalnie) Aby wyłączyć dostawy migawka FTP, wykonać sp_changepublication Wydawca na baza danych publikacja.Określ wartość enabled_for_internet dla @ Właściwość i wartości false dla wartość @.

Aby zmienić ustawienia dostarczania migawka FTP publikacja seryjnej

  1. Wydawca na baza danych publikacja, wykonanie sp_changemergepublication.Określ jedną z następujących wartości @ Właściwość i nową wartość tego ustawienia dla wartość @:

    • ftp_address -adres serwera FTP, używane do dostarczania migawka.

    • ftp_port -port używany przez serwer FTP.

    • ftp_subdirectory -podkatalogu domyślny katalog FTP używany do migawka FTP.

    • ftp_login -logowania używane do łączenia z serwerem FTP.

    • ftp_password -hasło logowania FTP.

    Uwaga dotycząca zabezpieczeńUwaga dotycząca zabezpieczeń

    Jeśli to możliwe, monitują użytkowników o wprowadzenie poświadczenia w czasie wykonywania.Jeśli poświadczenia są przechowywane w pliku skryptu, należy zabezpieczyć plik.

  2. (Opcjonalnie) Powtórz krok 1 dla każdego ustawienia FTP zmianie.

  3. (Opcjonalnie) Aby wyłączyć dostawy migawka FTP, wykonać sp_changemergepublication Wydawca na baza danych publikacja.Określ wartość enabled_for_internet dla @ Właściwość i wartości false dla wartość @.

Przykład

Poniższy przykład tworzy publikacja korespondencji seryjnej, która umożliwia abonentów dostępu do danych migawka za pomocą protokołu FTP.The Subscriber should use a secure VPN connection when accessing the FTP share.sqlcmd scripting variables are used to supply login and password values.Aby uzyskać więcej informacji, zobacz Polecenie sqlcmd przy użyciu skryptów zmiennych.

-- 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'AdventureWorks2008R2'; 
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 [AdventureWorks2008R2]
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

Poniższy przykład tworzy subskrypcja do publikacja korespondencji seryjnej, gdzie subskrybenta uzyskuje migawka za pomocą protokołu FTP.The Subscriber should use a secure VPN connection when accessing the FTP share.sqlcmd scripting variables are used to supply login and password values.Aby uzyskać więcej informacji, zobacz Polecenie sqlcmd przy użyciu skryptów zmiennych.

-- 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'AdventureWorks2008R2Replica';

-- 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'AdventureWorks2008R2'; 
SET @publication = N'AdvWorksSalesOfferMergeFtp'; 
SET @publisher = $(PubServer);
SET @login = $(Login);
SET @password = $(Password);
SET @subscriber = $(SubServer);
SET @subscriptionDB = N'AdventureWorks2008R2Replica';

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