sp_addpullsubscription_agent (T-SQL)
Berlaku untuk: SQL Server Azure SQL Managed Instance
Menambahkan pekerjaan agen terjadwal baru yang digunakan untuk menyinkronkan langganan penarikan ke publikasi transaksional. Prosedur tersimpan ini dijalankan di Pelanggan pada database langganan.
Sintaks
sp_addpullsubscription_agent
[ @publisher = ] N'publisher'
[ , [ @publisher_db = ] N'publisher_db' ]
, [ @publication = ] N'publication'
[ , [ @subscriber = ] N'subscriber' ]
[ , [ @subscriber_db = ] N'subscriber_db' ]
[ , [ @subscriber_security_mode = ] subscriber_security_mode ]
[ , [ @subscriber_login = ] N'subscriber_login' ]
[ , [ @subscriber_password = ] N'subscriber_password' ]
[ , [ @distributor = ] N'distributor' ]
[ , [ @distribution_db = ] N'distribution_db' ]
[ , [ @distributor_security_mode = ] distributor_security_mode ]
[ , [ @distributor_login = ] N'distributor_login' ]
[ , [ @distributor_password = ] N'distributor_password' ]
[ , [ @optional_command_line = ] N'optional_command_line' ]
[ , [ @frequency_type = ] frequency_type ]
[ , [ @frequency_interval = ] frequency_interval ]
[ , [ @frequency_relative_interval = ] frequency_relative_interval ]
[ , [ @frequency_recurrence_factor = ] frequency_recurrence_factor ]
[ , [ @frequency_subday = ] frequency_subday ]
[ , [ @frequency_subday_interval = ] frequency_subday_interval ]
[ , [ @active_start_time_of_day = ] active_start_time_of_day ]
[ , [ @active_end_time_of_day = ] active_end_time_of_day ]
[ , [ @active_start_date = ] active_start_date ]
[ , [ @active_end_date = ] active_end_date ]
[ , [ @distribution_jobid = ] distribution_jobid OUTPUT ]
[ , [ @encrypted_distributor_password = ] encrypted_distributor_password ]
[ , [ @enabled_for_syncmgr = ] N'enabled_for_syncmgr' ]
[ , [ @ftp_address = ] N'ftp_address' ]
[ , [ @ftp_port = ] ftp_port ]
[ , [ @ftp_login = ] N'ftp_login' ]
[ , [ @ftp_password = ] N'ftp_password' ]
[ , [ @alt_snapshot_folder = ] N'alt_snapshot_folder' ]
[ , [ @working_directory = ] N'working_directory' ]
[ , [ @use_ftp = ] N'use_ftp' ]
[ , [ @publication_type = ] publication_type ]
[ , [ @dts_package_name = ] N'dts_package_name' ]
[ , [ @dts_package_password = ] N'dts_package_password' ]
[ , [ @dts_package_location = ] N'dts_package_location' ]
[ , [ @reserved = ] N'reserved' ]
[ , [ @offloadagent = ] N'offloadagent' ]
[ , [ @offloadserver = ] N'offloadserver' ]
[ , [ @job_name = ] N'job_name' ]
[ , [ @job_login = ] N'job_login' ]
[ , [ @job_password = ] N'job_password' ]
[ ; ]
Argumen
[ @publisher = ] N'publisher'
Nama Publisher. @publisher adalah sysname, tanpa default.
Catatan
Nama server dapat ditentukan sebagai <Hostname>,<PortNumber>
. Tentukan nomor port untuk koneksi Anda saat SQL Server disebarkan di Linux atau Windows dengan port kustom, dan layanan browser dinonaktifkan. Penggunaan nomor port kustom untuk distributor jarak jauh berlaku untuk SQL Server 2019 (15.x) dan versi yang lebih baru.
[ @publisher_db = ] N'publisher_db'
Nama database Publisher. @publisher_db adalah sysname, dengan default NULL
. @publisher_db diabaikan oleh Oracle Publishers.
[ @publication = ] N'publikasi'
Nama publikasi. @publication adalah sysname, tanpa default.
[ @subscriber = ] N'pelanggan'
Nama instans Pelanggan atau nama pendengar AG jika database pelanggan berada dalam grup ketersediaan.
@subscriber adalah sysname, dengan default NULL
.
Catatan
Parameter ini tidak digunakan lagi dan dipertahankan untuk kompatibilitas skrip mundur.
Saat menjalankan sp_addpullsubscription_agent
pelanggan yang merupakan bagian dari AG, atur @subscriber ke nama pendengar AG. Jika Anda menjalankan SQL Server 2016 (13.x) dan versi yang lebih lama, atau SQL Server 2017 (14.x) sebelum CU 16, prosedur tersimpan dijalankan tanpa mengembalikan kesalahan, tetapi parameter @subscriber pada Agen Distribusi Replikasi tidak mereferensikan nama pendengar AG; parameter dibuat dengan nama server pelanggan tempat perintah dijalankan. Untuk mengubah masalah ini, perbarui pekerjaan Agen Distribusi secara manual @subscriber parameter dengan nilai nama pendengar AG.
[ @subscriber_db = ] N'subscriber_db'
Nama database langganan. @subscriber_db adalah sysname, dengan default NULL
.
Catatan
Parameter ini tidak digunakan lagi dan dipertahankan untuk kompatibilitas skrip mundur.
[ @subscriber_security_mode = ] subscriber_security_mode
Mode keamanan yang digunakan saat menyambungkan ke Pelanggan saat menyinkronkan. @subscriber_security_mode int, dengan default NULL
.
0
menentukan autentikasi SQL Server1
menentukan autentikasi Windows
Catatan
Parameter ini tidak digunakan lagi dan dipertahankan untuk kompatibilitas skrip mundur. Agen Distribusi selalu tersambung ke Pelanggan lokal menggunakan Autentikasi Windows. Jika nilai selain NULL
atau 1
ditentukan untuk parameter ini, pesan peringatan akan dikembalikan.
[ @subscriber_login = ] N'subscriber_login'
Login Pelanggan untuk digunakan saat menyambungkan ke Pelanggan saat menyinkronkan. @subscriber_login adalah sysname, dengan default NULL
.
Catatan
Parameter ini tidak digunakan lagi dan dipertahankan untuk kompatibilitas skrip mundur. Jika nilai ditentukan untuk parameter ini, pesan peringatan dikembalikan, tetapi nilainya diabaikan.
[ @subscriber_password = ] N'subscriber_password'
Kata sandi Pelanggan. subscriber_password diperlukan jika subscriber_security_mode diatur ke 0
. @subscriber_password adalah sysname, dengan default NULL
. Jika kata sandi pelanggan digunakan, kata sandi tersebut akan dienkripsi secara otomatis.
Catatan
Parameter ini tidak digunakan lagi dan dipertahankan untuk kompatibilitas skrip mundur. Jika nilai ditentukan untuk parameter ini, pesan peringatan dikembalikan, tetapi nilainya diabaikan.
[ @distributor = ] N'distributor'
Nama Distributor. @distributor adalah sysname, dengan default nilai yang ditentukan oleh @publisher.
[ @distribution_db = ] N'distribution_db'
Nama database distribusi. @distribution_db adalah sysname, dengan default NULL
.
[ @distributor_security_mode = ] distributor_security_mode
Catatan
ID Microsoft Entra sebelumnya dikenal sebagai Azure Active Directory (Azure AD).
Mode keamanan yang digunakan saat menyambungkan ke Distributor saat menyinkronkan. @distributor_security_mode int, dengan default 1
. Nilai berikut menentukan mode keamanan:
0
menentukan autentikasi SQL Server.1
menentukan autentikasi Windows.2
menentukan autentikasi kata sandi Microsoft Entra yang dimulai dengan SQL Server 2022 (16.x) CU 6.3
menentukan autentikasi terintegrasi Microsoft Entra yang dimulai dengan SQL Server 2022 (16.x) CU 6.4
menentukan autentikasi token Microsoft Entra yang dimulai dengan SQL Server 2022 (16.x) CU 6.
Penting
Jika memungkinkan, gunakan autentikasi Windows.
[ @distributor_login = ] N'distributor_login'
Login Distributor untuk digunakan saat menyambungkan ke Distributor saat menyinkronkan. @distributor_login adalah sysname, dengan default NULL
. @distributor_login diperlukan jika @distributor_security_mode diatur ke 0
.
[ @distributor_password = ] N'distributor_password'
Kata sandi Distributor. distributor_password diperlukan jika distributor_security_mode diatur ke 0
. @distributor_password adalah sysname, dengan default NULL
.
Penting
Jangan gunakan kata sandi kosong. Gunakan kata sandi yang kuat. Jika memungkinkan, minta pengguna untuk memasukkan kredensial keamanan saat runtime. Jika Anda harus menyimpan kredensial dalam file skrip, Anda harus mengamankan file untuk mencegah akses yang tidak sah.
[ @optional_command_line = ] N'optional_command_line'
Prompt perintah opsional yang diberikan ke Agen Distribusi. Misalnya, -DefinitionFile C:\Distdef.txt
atau -CommitBatchSize 10
. @optional_command_line adalah nvarchar(4000), dengan default string kosong.
[ @frequency_type = ] frequency_type
Frekuensi untuk menjadwalkan Agen Distribusi. @frequency_type int, dan bisa menjadi salah satu nilai berikut.
Nilai | Deskripsi |
---|---|
1 |
Satu kali |
2 (default) |
Sesuai permintaan |
4 |
Harian |
8 |
Mingguan |
16 |
Bulanan |
32 |
Relatif bulanan |
64 |
Mulai Otomatis |
128 |
Berulang |
Catatan
Menentukan nilai 64
menyebabkan Agen Distribusi berjalan dalam mode berkelanjutan. Ini sesuai dengan pengaturan -Continuous
parameter untuk agen. Untuk informasi selengkapnya, lihat Agen Distribusi Replikasi.
[ @frequency_interval = ] frequency_interval
Nilai yang akan diterapkan ke frekuensi yang ditetapkan oleh @frequency_type. @frequency_interval int, dengan default 1
.
[ @frequency_relative_interval = ] frequency_relative_interval
Tanggal Agen Distribusi. Parameter ini digunakan ketika @frequency_type diatur ke 32
(relatif bulanan). @frequency_relative_interval int, dan bisa menjadi salah satu nilai berikut.
Nilai | Deskripsi |
---|---|
1 (default) |
First |
2 |
Detik |
4 |
Ketiga |
8 |
Keempat |
16 |
Last |
[ @frequency_recurrence_factor = ] frequency_recurrence_factor
Faktor pengulangan yang digunakan oleh @frequency_type. @frequency_recurrence_factor int, dengan default 1
.
[ @frequency_subday = ] frequency_subday
Menentukan seberapa sering untuk menjadwalkan ulang selama periode yang ditentukan. @frequency_subday int, dan bisa menjadi salah satu nilai berikut.
Nilai | Deskripsi |
---|---|
1 (default) |
Satu kali |
2 |
Detik |
4 |
Menit |
8 |
Jam |
[ @frequency_subday_interval = ] frequency_subday_interval
Interval untuk @frequency_subday. @frequency_subday_interval int, dengan default 1
.
[ @active_start_time_of_day = ] active_start_time_of_day
Waktu hari ketika Agen Distribusi pertama kali dijadwalkan, diformat sebagai HHmmss
. @active_start_time_of_day int, dengan default 0
.
[ @active_end_time_of_day = ] active_end_time_of_day
Waktu hari ketika Agen Distribusi berhenti dijadwalkan, diformat sebagai HHmmss
. @active_end_time_of_day int, dengan default 0
.
[ @active_start_date = ] active_start_date
Tanggal ketika Agen Distribusi pertama kali dijadwalkan, diformat sebagai yyyyMMdd
. @active_start_date int, dengan default 0
.
[ @active_end_date = ] active_end_date
Tanggal ketika Agen Distribusi berhenti dijadwalkan, diformat sebagai yyyyMMdd
. @active_end_date int, dengan default 0
.
[ @distribution_jobid = ] distribution_jobid OUTPUT
ID Agen Distribusi untuk pekerjaan ini. @distribution_jobid adalah parameter OUTPUT jenis biner(16), dengan default NULL
.
[ @encrypted_distributor_password = ] encrypted_distributor_password
@encrypted_distributor_password adalah bit, dengan default 0
.
Catatan
Pengaturan @encrypted_distributor_password tidak lagi didukung. Mencoba mengatur parameter bit ini ke 1
akan mengakibatkan kesalahan.
[ @enabled_for_syncmgr = ] N'enabled_for_syncmgr'
Menentukan apakah langganan dapat disinkronkan melalui Microsoft Synchronization Manager. @enabled_for_syncmgr adalah nvarchar(5), dengan default false
.
- Jika
false
, langganan tidak terdaftar di Synchronization Manager. - Jika
true
, langganan terdaftar di Synchronization Manager dan dapat disinkronkan tanpa memulai SQL Server Management Studio.
[ @ftp_address = ] N'ftp_address'
Parameter ini tidak digunakan lagi dan dipertahankan untuk kompatibilitas skrip mundur.
[ @ftp_port = ] ftp_port
Parameter ini tidak digunakan lagi dan dipertahankan untuk kompatibilitas skrip mundur.
[ @ftp_login = ] N'ftp_login'
Parameter ini tidak digunakan lagi dan dipertahankan untuk kompatibilitas skrip mundur.
[ @ftp_password = ] N'ftp_password'
Parameter ini tidak digunakan lagi dan dipertahankan untuk kompatibilitas skrip mundur.
[ @alt_snapshot_folder = ] N'alt_snapshot_folder'
Menentukan lokasi folder alternatif untuk rekam jepret. @alt_snapshot_folder adalah nvarchar(255), dengan default NULL
.
[ @working_directory = ] N'working_directory'
Nama direktori kerja yang digunakan untuk menyimpan data dan file skema untuk publikasi. @working_directory adalah nvarchar(255), dengan default NULL
. Nama harus ditentukan dalam format UNC.
[ @use_ftp = ] N'use_ftp'
Menentukan penggunaan FTP alih-alih protokol reguler untuk mengambil rekam jepret. @use_ftp adalah nvarchar(5), dengan default false
.
[ @publication_type = ] publication_type
Menentukan jenis replikasi publikasi. @publication_type kecil, dengan default 0
.
- Jika
0
, publikasi adalah jenis transaksi. - Jika
1
, publikasi adalah jenis rekam jepret. - Jika
2
, publikasi adalah jenis penggabungan.
[ @dts_package_name = ] N'dts_package_name'
Menentukan nama paket DTS. @dts_package_name adalah sysname, dengan default NULL
. Misalnya, untuk menentukan paket DTSPub_Package
, parameternya adalah @dts_package_name = N'DTSPub_Package'
.
[ @dts_package_password = ] N'dts_package_password'
Menentukan kata sandi pada paket, jika ada. @dts_package_password adalah sysname, dengan default NULL
, yang berarti kata sandi tidak ada di paket.
Catatan
Anda harus menentukan kata sandi jika @dts_package_name ditentukan.
[ @dts_package_location = ] N'dts_package_location'
Menentukan lokasi paket. @dts_package_location adalah nvarchar(12), dengan default subscriber
. Lokasi paket bisa atau distributor
subscriber
.
[ @reserved = ] N'reserved'
Diidentifikasi hanya untuk tujuan informasi. Tidak didukung. Kompatibilitas di masa mendatang tidak dijamin.
[ @offloadagent = ] N'offloadagent'
Parameter ini tidak digunakan lagi dan dipertahankan untuk kompatibilitas skrip mundur. Jika nilai ditentukan untuk parameter ini, pesan peringatan dikembalikan, tetapi nilainya diabaikan. Mengatur @offloadagent ke nilai selain false
menghasilkan kesalahan.
[ @offloadserver = ] N'offloadserver'
Parameter ini tidak digunakan lagi dan dipertahankan untuk kompatibilitas skrip mundur. Jika nilai ditentukan untuk parameter ini, pesan peringatan dikembalikan, tetapi nilainya diabaikan. Mengatur @offloadserver ke nilai selain false
menghasilkan kesalahan.
[ @job_name = ] N'job_name'
Nama pekerjaan agen yang ada. @job_name adalah sysname, dengan default NULL
. Parameter ini hanya ditentukan ketika langganan disinkronkan menggunakan pekerjaan yang ada alih-alih pekerjaan yang baru dibuat (default). Jika Anda bukan anggota peran server tetap sysadmin , Anda harus menentukan @job_login dan @job_password saat menentukan @job_name.
[ @job_login = ] N'job_login'
Login untuk akun Windows tempat agen berjalan. @job_login adalah nvarchar(257), tanpa default. Akun Windows ini selalu digunakan untuk koneksi agen ke Pelanggan.
[ @job_password = ] N'job_password'
Kata sandi untuk akun Windows tempat agen berjalan. @job_password adalah sysname, tanpa default.
Penting
Jangan gunakan kata sandi kosong. Gunakan kata sandi yang kuat. Jika memungkinkan, minta pengguna untuk memasukkan kredensial keamanan saat runtime. Jika Anda harus menyimpan kredensial dalam file skrip, Anda harus mengamankan file untuk mencegah akses yang tidak sah.
Mengembalikan nilai kode
0
(berhasil) atau 1
(kegagalan).
Keterangan
sp_addpullsubscription_agent
digunakan dalam replikasi rekam jepret dan replikasi transaksional.
Contoh
-- 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 @publication AS sysname;
DECLARE @publisher AS sysname;
DECLARE @publicationDB AS sysname;
SET @publication = N'AdvWorksProductTran';
SET @publisher = $(PubServer);
SET @publicationDB = N'AdventureWorks2022';
-- At the subscription database, create a pull subscription
-- to a transactional publication.
USE [AdventureWorks2022Replica]
EXEC sp_addpullsubscription
@publisher = @publisher,
@publication = @publication,
@publisher_db = @publicationDB;
-- Add an agent job to synchronize the pull subscription.
EXEC sp_addpullsubscription_agent
@publisher = @publisher,
@publisher_db = @publicationDB,
@publication = @publication,
@distributor = @publisher,
@job_login = $(Login),
@job_password = $(Password);
GO
Izin
Hanya anggota peran server tetap sysadmin atau peran database tetap db_owner yang dapat menjalankan sp_addpullsubscription_agent
.
Konten terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk