Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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 share File Transfer Protocol (FTP) sebagai pengganti share 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 Amankan folder snapshot.
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 Amankan folder snapshot.
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 Properti Publikasi <Publikasi>. Untuk informasi selengkapnya tentang mengakses kotak dialog ini, lihat Melihat 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 FTP Snapshot, untuk publikasi snapshot dan transaksional, serta publikasi gabungan untuk Publisher 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 snapshot FTP hanya digunakan pada langganan pull.
Untuk mengaktifkan pengiriman cuplikan melalui FTP untuk cuplikan atau publikasi transaksional
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_internetdan 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
Pada Subscriber di database subscription, jalankan sp_addpullsubscription. Tentukan
@publisherdan@publication.- Pada Subscriber, di database langganan, jalankan sp_addpullsubscription_agent. Tentukan
@publisher,@publisher_db,@publication, kredensial Microsoft Windows yang digunakan Agen Distribusi saat berjalan pada Pelanggan untuk@job_logindan@job_password, serta nilai true untuk@use_ftp.
- Pada Subscriber, di database langganan, jalankan sp_addpullsubscription_agent. Tentukan
Pada Publisher di database publikasi, jalankan sp_addsubscription untuk mendaftarkan langganan pull. Untuk informasi selengkapnya, lihat Membuat Langganan Pull.
Untuk membuat langganan penarikan ke publikasi gabungan yang menggunakan pengiriman rekam jepret FTP
Pada Subscriber di database langganan, jalankan sp_addmergepullsubscription. Tentukan
@publisherdan@publication.Pada Subscriber di database langganan, jalankan sp_addmergepullsubscription_agent. Tentukan
@publisher,@publisher_db,@publication, kredensial Windows yang digunakan Agen Distribusi pada Subscriber untuk berjalan untuk@job_logindan@job_password, serta nilaitrueuntuk@use_ftp.Pada Publisher, di database publikasi, jalankan sp_addmergesubscription untuk mendaftarkan langganan pull. 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
@propertydan 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_internetuntuk@propertydan nilaifalseuntuk@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
@propertydan 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_internetuntuk@propertydan nilaifalseuntuk@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