Mengirimkan Rekam Jepret Melalui FTP
Berlaku untuk: SQL Server
Topik ini menjelaskan cara mengirimkan rekam jepret melalui FTP di SQL Server dengan menggunakan SQL Server Management Studio atau Transact-SQL.
Secara default, rekam jepret disimpan dalam folder yang didefinisikan sebagai berbagi Universal Naming Convention (UNC). Replikasi juga memungkinkan Anda menentukan berbagi File Transfer Protocol (FTP) alih-alih berbagi UNC. Untuk menggunakan FTP, Anda harus mengonfigurasi server FTP lalu mengonfigurasi publikasi dan satu atau beberapa langganan untuk menggunakan FTP. Untuk informasi tentang cara mengonfigurasi server FTP, lihat dokumentasi Layanan Informasi Internet (IIS). Jika Anda menentukan informasi FTP untuk publikasi, langganan publikasi tersebut menggunakan FTP secara default. FTP hanya digunakan dengan sinkronisasi Web ketika komputer yang menjalankan IIS dipisahkan dari Distributor oleh firewall. Dalam hal ini, FTP dapat digunakan untuk mentransfer rekam jepret dari Distributor dan komputer yang menjalankan IIS. (Rekam jepret selalu ditransfer ke Pelanggan dengan menggunakan HTTPS.)
Penting
Kami menyarankan agar Anda menggunakan Autentikasi Microsoft Windows dan berbagi UNC daripada berbagi FTP karena kata sandi FTP harus disimpan, dan kata sandi dikirim dari Pelanggan atau komputer yang menjalankan IIS saat menggunakan sinkronisasi Web ke server FTP dalam teks biasa. Selain itu, karena satu akun mengontrol akses ke berbagi rekam jepret, tidak dimungkinkan untuk memastikan bahwa Pelanggan ke publikasi gabungan yang difilter hanya memiliki akses ke file rekam jepret dari partisi data mereka.
Batasan dan Pembatasan
- Agen Rekam Jepret harus memiliki izin tulis untuk direktori yang Anda tentukan, dan Agen Distribusi atau Agen Penggabungan harus memiliki izin baca. Jika langganan pull digunakan, Anda harus menentukan direktori bersama sebagai jalur konvensi penamaan universal (UNC), seperti \\ftpserver\home\snapshots. Untuk informasi selengkapnya, lihat Mengamankan Folder Rekam Jepret.
Prasyarat
- Untuk mentransfer file rekam jepret menggunakan Protokol Transfer File (FTP), Anda harus terlebih dahulu mengonfigurasi server FTP. Untuk informasi selengkapnya, lihat dokumentasi Microsoft Layanan Informasi Internet (IIS).
Keamanan
Untuk membantu meningkatkan keamanan, kami sarankan Anda menerapkan jaringan privat virtual (VPN) saat menggunakan pengiriman rekam jepret FTP melalui Internet. Untuk informasi selengkapnya, lihat Menerbitkan Data melalui Internet Menggunakan VPN.
Sebagai praktik terbaik keamanan, jangan izinkan masuk anonim ke server FTP. Agen Rekam Jepret harus memiliki izin tulis untuk direktori yang Anda tentukan, dan Agen Distribusi atau Agen Penggabungan harus memiliki izin baca. Jika langganan pull digunakan, Anda harus menentukan direktori bersama sebagai jalur konvensi penamaan universal (UNC), seperti \\ftpserver\home\snapshots. Untuk informasi selengkapnya, lihat Mengamankan Folder Rekam Jepret.
Jika memungkinkan, minta pengguna untuk memasukkan kredensial mereka saat runtime. Jika Anda menyimpan kredensial dalam file skrip, Anda harus mengamankan file.
Menggunakan SQL Server Management Studio
Setelah server FTP dikonfigurasi, tentukan informasi direktori dan keamanan untuk server ini dalam kotak dialog Publikasi Properti <Publikasi> . Untuk informasi selengkapnya tentang mengakses kotak dialog ini, lihat Menampilkan dan Mengubah Properti Publikasi.
Untuk menentukan informasi FTP
Dalam kotak dialog Properti Publikasi - <Publikasi> , pilih Izinkan Pelanggan mengunduh file rekam jepret menggunakan FTP dari salah satu halaman berikut:
Halaman Rekam Jepret FTP, untuk rekam jepret dan publikasi transaksi, dan gabungkan publikasi untuk Penerbit yang menjalankan versi sebelum Microsoft SQL Server 2005 (9.x).
Halaman Rekam Jepret dan Internet FTP, untuk menggabungkan publikasi dari Penerbit yang menjalankan SQL Server 2005 (9.x) atau yang lebih baru.
Tentukan nilai untuk nama server FTP, Nomor port, Jalur dari folder akar FTP, Masuk, dan Kata Sandi.
Misalnya, jika akar server FTP adalah \\ftpserver\home dan Anda ingin rekam jepret disimpan di \\ftpserver\home\snapshots, tentukan \snapshots\ftp untuk jalur properti dari folder akar FTP (replikasi menambahkan 'ftp' ke jalur folder rekam jepret saat membuat file rekam jepret).
Tentukan bahwa Agen Rekam Jepret harus menulis file rekam jepret ke direktori yang ditentukan di langkah 2. Misalnya, agar Agen Rekam Jepret menulis file rekam jepret ke \\ftpserver\home\snapshots\ftp, Anda harus menentukan jalur \\ftpserver\home\snapshot di salah satu dari dua tempat:
- Lokasi rekam jepret default untuk Distributor yang terkait dengan publikasi ini.
- Lokasi folder rekam jepret alternatif untuk publikasi ini. Lokasi alternatif diperlukan jika rekam jepret dikompresi.
Untuk informasi selengkapnya tentang mengubah properti lokasi folder rekam jepret, lihat Opsi rekam jepret.
- Pilih OK.
Menggunakan T-SQL
Opsi untuk membuat file rekam jepret tersedia di server FTP dapat diatur dan pengaturan FTP ini dapat dimodifikasi secara terprogram menggunakan prosedur tersimpan replikasi. Prosedur yang digunakan tergantung pada jenis publikasi. Pengiriman rekam jepret FTP hanya digunakan dengan langganan penarikan.
Untuk mengaktifkan pengiriman rekam jepret FTP untuk rekam jepret atau publikasi transaksi
Di Publisher pada database publikasi, jalankan sp_addpublication. Tentukan
@publication
, nilai true untuk@enabled_for_internet
, dan nilai yang sesuai untuk parameter berikut:@ftp_address
- alamat server FTP yang digunakan untuk mengirimkan rekam jepret.(Opsional)
@ftp_port
- port yang digunakan oleh server FTP.(Opsional)
@ftp_subdirectory
- subdirektori direktori FTP default yang ditetapkan untuk login FTP. Misalnya, jika akar server FTP adalah \\ftpserver\home dan Anda ingin rekam jepret disimpan di \\ftpserver\home\snapshots, tentukan \snapshots\ftp untuk@ftp_subdirectory
(replikasi menambahkan 'ftp' ke jalur folder rekam jepret saat membuat file rekam jepret).(Opsional)
@ftp_login
- akun login yang digunakan saat menyambungkan ke server FTP.(Opsional)
@ftp_password
- kata sandi untuk login FTP.
Ini membuat publikasi yang menggunakan FTP. Untuk informasi selengkapnya, lihat Membuat Publikasi.
Untuk mengaktifkan pengiriman rekam jepret FTP untuk publikasi gabungan
Di Publisher pada database publikasi, jalankan sp_addmergepublication. Tentukan
@publication
, nilai true untuk@enabled_for_internet
dan nilai yang sesuai untuk parameter berikut:@ftp_address
- alamat server FTP yang digunakan untuk mengirimkan rekam jepret.(Opsional)
@ftp_port
- port yang digunakan oleh server FTP.(Opsional)
@ftp_subdirectory
- subdirektori direktori FTP default yang ditetapkan untuk login FTP. Misalnya, jika akar server FTP adalah \\ftpserver\home dan Anda ingin rekam jepret disimpan di \\ftpserver\home\snapshots, tentukan \snapshots\ftp untuk@ftp_subdirectory
(replikasi menambahkan 'ftp' ke jalur folder rekam jepret saat membuat file rekam jepret).(Opsional)
@ftp_login
- akun login yang digunakan saat menyambungkan ke server FTP.(Opsional)
@ftp_password
- kata sandi untuk login FTP.
Ini membuat publikasi yang menggunakan FTP. Untuk informasi selengkapnya, lihat Membuat Publikasi.
Untuk membuat langganan penarikan ke rekam jepret atau publikasi transaksi yang menggunakan pengiriman rekam jepret FTP
Di Pelanggan pada database langganan, jalankan sp_addpullsubscription. Tentukan
@publisher
dan@publication
.- Di Pelanggan pada database langganan, jalankan sp_addpullsubscription_agent. Tentukan , , , kredensial Microsoft Windows tempat Agen Distribusi di Pelanggan berjalan untuk
@job_login
dan@job_password
, dan nilai true untuk@use_ftp
.@publication
@publisher_db
@publisher
- Di Pelanggan pada database langganan, jalankan sp_addpullsubscription_agent. Tentukan , , , kredensial Microsoft Windows tempat Agen Distribusi di Pelanggan berjalan untuk
Di Publisher pada database publikasi, jalankan sp_addsubscription untuk mendaftarkan langganan penarikan. Untuk informasi selengkapnya, lihat Membuat Langganan Pull.
Untuk membuat langganan penarikan ke publikasi gabungan yang menggunakan pengiriman rekam jepret FTP
Di Pelanggan pada database langganan, jalankan sp_addmergepullsubscription. Tentukan
@publisher
dan@publication
.Di Pelanggan pada database langganan, jalankan sp_addmergepullsubscription_agent. Tentukan , , , kredensial Windows tempat Agen Distribusi di Pelanggan berjalan untuk
@job_login
dan@job_password
, dan nilaitrue
untuk@use_ftp
.@publication
@publisher_db
@publisher
Di Publisher pada database publikasi, jalankan sp_addmergesubscription untuk mendaftarkan langganan penarikan. Untuk informasi selengkapnya, lihat Membuat Langganan Pull.
Untuk mengubah satu atau beberapa pengaturan pengiriman rekam jepret FTP untuk rekam jepret atau publikasi transaksi
Di Publisher pada database publikasi, jalankan sp_changepublication. Tentukan salah satu nilai berikut untuk
@property
dan nilai baru pengaturan ini untuk@value
:ftp_address
- alamat server FTP yang digunakan untuk mengirimkan rekam jepret.ftp_port
- port yang digunakan oleh server FTP.ftp_subdirectory
- subdirektori direktori FTP default yang digunakan untuk rekam jepret FTP.ftp_login
- login yang digunakan untuk menyambungkan ke server FTP.ftp_password
- kata sandi untuk login FTP.
(Opsional) Ulangi langkah 1 untuk setiap pengaturan FTP yang diubah.
(Opsional) Untuk menonaktifkan pengiriman rekam jepret FTP, jalankan sp_changepublication di Publisher pada database publikasi. Tentukan nilai
enabled_for_internet
untuk@property
dan nilaifalse
untuk@value
.
Untuk mengubah pengaturan pengiriman rekam jepret FTP untuk publikasi gabungan
Di Publisher pada database publikasi, jalankan sp_changemergepublication. Tentukan salah satu nilai berikut untuk
@property
dan nilai baru pengaturan ini untuk@value
:ftp_address
- alamat server FTP yang digunakan untuk mengirimkan rekam jepret.ftp_port
- port yang digunakan oleh server FTP.ftp_subdirectory
- subdirektori direktori FTP default yang digunakan untuk rekam jepret FTP.ftp_login
- login yang digunakan untuk menyambungkan ke server FTP.ftp_password
- kata sandi untuk login FTP.
(Opsional) Ulangi langkah 1 untuk setiap pengaturan FTP yang diubah.
(Opsional) Untuk menonaktifkan pengiriman rekam jepret FTP, jalankan sp_changemergepublication di Publisher pada database publikasi. Tentukan nilai
enabled_for_internet
untuk@property
dan nilaifalse
untuk@value
.
Contoh (Transact-SQL)
Contoh berikut membuat publikasi gabungan yang memungkinkan Pelanggan mengakses data rekam jepret menggunakan FTP. Pelanggan harus menggunakan koneksi VPN yang aman saat mengakses berbagi FTP. variabel pembuatan skrip sqlcmd digunakan untuk menyediakan nilai masuk dan kata sandi. Untuk informasi selengkapnya, lihat Menggunakan sqlcmd dengan Variabel Pembuatan Skrip.
-- 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
Contoh berikut membuat langganan ke publikasi gabungan, di mana Pelanggan mendapatkan rekam jepret menggunakan FTP. Pelanggan harus menggunakan koneksi VPN yang aman saat mengakses berbagi FTP. variabel pembuatan skrip sqlcmd digunakan untuk menyediakan nilai masuk dan kata sandi. Untuk informasi selengkapnya, lihat Menggunakan sqlcmd dengan Variabel Pembuatan Skrip.
-- 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