Aracılığıyla paylaş


Nasıl yapılır: ftp (çoğaltma Transact-SQL programlama) üzerinden anında teslim

Anlık görüntü dosyaları ftp sunucusu üzerinde kullanılabilir hale getirmek için bir seçenek olabilir küme ve bu ftp kümetings çoğaltma depolanmış yordamları kullanarak programsal yoldan değiştirilebilir.Kullanılan yordam yayın türüne bağlıdır.Anlık görüntü teslim ftp yalnızca çekme abonelikleri ile kullanılır.

Güvenlik notuGüvenlik Notu

Güvenliği artırmak üzere teslim Internet üzerinden anlık görüntü görüntüsünü ftp kullanarak, sanal özel ağ (vpn) uygulamak öneririz.Daha fazla bilgi için bkz: vpn kullanarak Internet üzerinden veri yayımlama.

Anlık görüntüsünü teslim bir anlık görüntü veya işlem yayın için ftp etkinleştirmek için

  • yayın veritabanı üzerinde Yayımcı tarafında yürütmek sp_addpublication.Belirtmek @ yayın, değeri true için @ enabled_for_internetve uygun değerleri aşağıdaki parametreleri:

    • @ ftp_address -anlık görüntü görüntüsünü teslim etmek için kullanılan ftp sunucusunun adresi.

    • (İsteğe bağlı) @ ftp_port -ftp sunucusu tarafından kullanılan bağlantı noktası.

    • (İsteğe bağlı) @ ftp_subdirectory -bir ftp oturum açma için atanmış varsayılan ftp dizininin alt dizini.Örneğin, \\ftpserver\home ve \\ftpserver\home\snapshots depolanması için anlık görüntüleri istediğiniz ftp sunucusunun kök, belirtmek \snapshots\ftp için @ ftp_subdirectory (çoğaltma ekler 'ftp' Anlık anlık görüntü klasörü oluşturur, yol dosyaların görüntüsünü).

    • (İsteğe bağlı) @ ftp_login -ftp sunucusuna bağlanırken kullanılan oturum açma hesabı.

    • (İsteğe bağlı) @ ftp_password -ftp oturum açma için parola.

      Güvenlik notuGüvenlik Notu

      Bir güvenlik en iyi yöntemi, ftp sunucusunda adsız oturum açmalara izin vermiyor.

    Not

    Anlık Görüntü Aracısı için belirttiğiniz dizine yazma izninizin olması gerekir ve dağıtım aracısını veya Birleştirme Aracısı okuma iznine sahip olmalıdır.Çekme abonelikleri kullanılan gibi bir Evrensel Adlandırma Kuralı (unc) yol, \\ftpserver\home\snapshots gibi paylaşılan bir dizin belirtmelisiniz.Daha fazla bilgi için bkz: Anlık görüntü klasörü güvenli hale getirme.

    Bu ftp kullanan bir yayın oluşturur.Daha fazla bilgi için bkz: Nasıl yapılır: Bir yayını (çoğaltma Transact-SQL programlama) oluştur.

Bir birleştirme yayın için anlık görüntü teslim ftp etkinleştirmek için

  • yayın veritabanı üzerinde Yayımcı tarafında yürütmek sp_addmergepublication.Belirtmek @ yayın, değeri true için @ enabled_for_internet ve uygun değerleri aşağıdaki parametreleri:

    • @ ftp_address -anlık görüntü görüntüsünü teslim etmek için kullanılan ftp sunucusunun adresi.

    • (İsteğe bağlı) @ ftp_port -ftp sunucusu tarafından kullanılan bağlantı noktası.

    • (İsteğe bağlı) @ ftp_subdirectory -bir ftp oturum açma için atanmış varsayılan ftp dizininin alt dizini.Örneğin, \\ftpserver\home ve \\ftpserver\home\snapshots depolanması için anlık görüntüleri istediğiniz ftp sunucusunun kök, belirtmek \snapshots\ftp için @ ftp_subdirectory (çoğaltma ekler 'ftp' Anlık anlık görüntü klasörü oluşturur, yol dosyaların görüntüsünü).

    • (İsteğe bağlı) @ ftp_login -ftp sunucusuna bağlanırken kullanılan oturum açma hesabı.

    • (İsteğe bağlı) @ ftp_password -ftp oturum açma için parola.

      Güvenlik notuGüvenlik Notu

      Bir güvenlik en iyi yöntemi, ftp sunucusunda adsız oturum açmalara izin vermiyor.

    Not

    Anlık Görüntü Aracısı için belirttiğiniz dizine yazma izninizin olması gerekir ve dağıtım aracısını veya Birleştirme Aracısı okuma iznine sahip olmalıdır.Çekme abonelikleri kullanılan gibi bir Evrensel Adlandırma Kuralı (unc) yol, \\ftpserver\home\snapshots gibi paylaşılan bir dizin belirtmelisiniz.Daha fazla bilgi için bkz: Anlık görüntü klasörü güvenli hale getirme.

    Bu ftp kullanan bir yayın oluşturur.Daha fazla bilgi için bkz: Nasıl yapılır: Bir yayını (çoğaltma Transact-SQL programlama) oluştur.

Oluşturmak için bir istek temelli abonelik bir anlık görüntü veya işlem yayını ftp kullanan teslim anlık görüntüsünü

  1. Üzerinde abone adresindeki abonelik veritabanı, execute sp_addpullabonelik.Belirtmek @ publisher ve @ yayın.

    • Üzerinde abone adresindeki abonelik veritabanı, execute sp_addpullabonelik_agent.Belirtmek @ publisher, @ publisher_db, @ yayın, Microsoft abone adresindeki dağıtım aracı çalıştığı için Windows kimlik bilgileri @ job_login ve @ job_passwordve değeri, true için @ use_ftp.
  2. yayın veritabanı üzerinde Yayımcı tarafında yürütmek sp_addsubscription istek temelli abonelik kaydetmek için.Daha fazla bilgi için bkz: Nasıl yapılır: Çekme abonelik (çoğaltma Transact-SQL programlama) oluştur.

Bir mektup birleştirme istek temelli abonelik oluşturmak için yayın , anlık görüntü teslim ftp kullanır

  1. Üzerinde abone adresindeki abonelik veritabanı, execute sp_addmergepullabonelik.Belirtmek @ publisher ve @ yayın.

  2. Üzerinde abone adresindeki abonelik veritabanı, execute sp_addmergepullabonelik_agent.Belirtmek @ publisher, @ publisher_db, @ yayın, abone adresindeki dağıtım aracı çalıştığı için Windows kimlik bilgileri bilgilerini @ job_login ve @ job_passwordve değeri, true için @ use_ftp.

  3. yayın veritabanı üzerinde Yayımcı tarafında yürütmek sp_addmergesubscription istek temelli abonelik kaydetmek için.Daha fazla bilgi için bkz: Nasıl yapılır: Çekme abonelik (çoğaltma Transact-SQL programlama) oluştur.

Anlık görüntüsünü teslim ayarlarını bir anlık görüntü veya işlem yayın için bir veya daha fazla ftp değiştirmek için

  1. yayın veritabanı üzerinde Yayımcı tarafında yürütmek sp_changepublication.Belirtmek için aşağıdaki değerlerden birini @ özellik ve bu ayar için yeni bir değer @ değeri:

    • ftp_address -anlık görüntü görüntüsünü teslim etmek için kullanılan ftp sunucusunun adresi.

    • ftp_port -ftp sunucusu tarafından kullanılan bağlantı noktası.

    • ftp_subdirectory -ftp anlık görüntü için kullanılan varsayılan ftp dizininin alt dizini.

    • ftp_login -ftp sunucusuna bağlanmak için kullanılan oturum açma.

    • ftp_password -ftp oturum açma için parola.

    Güvenlik notuGüvenlik Notu

    Mümkün olduğunda, zamanında kendi kimlik bilgileri bilgilerini girmesini ister.Bir komut dosyasında kimlik bilgileri bilgilerini depolamak, dosyanın güvenli gerekir.

  2. (İsteğe bağlı) 1 Değiştirilmesini her ftp ayarı için yineleyin.

  3. (İsteğe bağlı) ftp devre dışı bırakmak için anlık görüntü teslimi, yürütmek sp_changepublication yayın veritabanı üzerinde yayımcı adresindeki.Değeri belirtmek enabled_for_internet için @ özellik değeri false için @ değeri.

ftp değiştirmek için anlık görüntü bir birleştirme yayın için teslim ayarları

  1. yayın veritabanı üzerinde Yayımcı tarafında yürütmek sp_changemergepublication.Belirtmek için aşağıdaki değerlerden birini @ özellik ve bu ayar için yeni bir değer @ değeri:

    • ftp_address -anlık görüntü görüntüsünü teslim etmek için kullanılan ftp sunucusunun adresi.

    • ftp_port -ftp sunucusu tarafından kullanılan bağlantı noktası.

    • ftp_subdirectory -ftp anlık görüntü için kullanılan varsayılan ftp dizininin alt dizini.

    • ftp_login -ftp sunucusuna bağlanmak için kullanılan oturum açma.

    • ftp_password -ftp oturum açma için parola.

    Güvenlik notuGüvenlik Notu

    Mümkün olduğunda, zamanında kendi kimlik bilgileri bilgilerini girmesini ister.Bir komut dosyasında kimlik bilgileri bilgilerini depolamak, dosyanın güvenli gerekir.

  2. (İsteğe bağlı) 1 Değiştirilmesini her ftp ayarı için yineleyin.

  3. (İsteğe bağlı) ftp devre dışı bırakmak için anlık görüntü teslimi, yürütmek sp_changemergepublication yayın veritabanı üzerinde yayımcı adresindeki.Değeri belirtmek enabled_for_internet için @ özellik değeri false için @ değeri.

Örnek

Aşağıdaki örnek, abonelerin ftp kullanarak anlık görüntü verilerine erişmek izin veren bir birleştirme yayın oluşturur.The Subscriber should use a secure VPN connection when accessing the FTP share.sqlcmd scripting variables are used to supply login and password values.Daha fazla bilgi için bkz: SQLCMD Scripting değişkenleri ile kullanma.

-- 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

Aşağıdaki örnek, bir mektup birleştirme abonelik oluşturur yayın, ftp kullanarak anlık görüntü abone edindiği.The Subscriber should use a secure VPN connection when accessing the FTP share.sqlcmd scripting variables are used to supply login and password values.Daha fazla bilgi için bkz: SQLCMD Scripting değişkenleri ile kullanma.

-- 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