sp_changepublication (Transact-SQL)
Gilt für: SQL Server Azure SQL Managed Instance
Ändert die Eigenschaften einer Veröffentlichung. Diese gespeicherte Prozedur wird im Publisher in der Publikationsdatenbank ausgeführt.
Transact-SQL-Syntaxkonventionen
Syntax
sp_changepublication
[ [ @publication = ] N'publication' ]
[ , [ @property = ] N'property' ]
[ , [ @value = ] N'value' ]
[ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
[ , [ @force_reinit_subscription = ] force_reinit_subscription ]
[ , [ @publisher = ] N'publisher' ]
[ ; ]
Argumente
[ @publication = ] N'Publikation'
Der Name der Veröffentlichung. @publication ist "sysname" mit der Standardeinstellung "NULL
.
[ @property = ] N'property'
Die zu ändernde Publikationseigenschaft. @property ist "nvarchar(255)" mit der Standardeinstellung "NULL
.
[ @value = ] N'value'
Der neue -Eigenschaftswert. @value ist nvarchar(255), mit einem Standardwert von NULL
.
Diese Tabelle beschreibt die änderbaren Eigenschaften der Veröffentlichung sowie die Einschränkungen für die Werte dieser Eigenschaften.
Eigenschaft | Wert | Beschreibung |
---|---|---|
allow_anonymous |
true |
Anonyme Abonnements können für die angegebene Publikation erstellt werden und immediate_sync müssen ebenfalls sein true . Kann für Peer-to-Peer-Publikationen nicht geändert werden. |
false |
Anonyme Abonnements können für die angegebene Publikation nicht erstellt werden. Kann für Peer-to-Peer-Publikationen nicht geändert werden. | |
allow_initialize_from_backup |
true |
Abonnenten können ein Abonnement für diese Veröffentlichung aus einer Sicherung statt aus einer Anfangsmomentaufnahme initialisieren. Diese Eigenschaft kann für Nicht-SQL Server-Publikationen nicht geändert werden. |
false |
Abonnenten müssen die Anfangsmomentaufnahme verwenden. Diese Eigenschaft kann für Nicht-SQL Server-Publikationen nicht geändert werden. | |
allow_partition_switch |
true |
ALTER TABLE...SWITCH Anweisungen können für die veröffentlichte Datenbank ausgeführt werden. Weitere Informationen finden Sie unter Replicate Partitioned Tables and Indexes. |
false |
ALTER TABLE...SWITCH Anweisungen können nicht für die veröffentlichte Datenbank ausgeführt werden. |
|
allow_pull |
true |
Pullabonnements sind für die angegebene Veröffentlichung zulässig. Diese Eigenschaft kann für Nicht-SQL Server-Publikationen nicht geändert werden. |
false |
Pullabonnements sind für die angegebene Publikation nicht zulässig. Diese Eigenschaft kann für Nicht-SQL Server-Publikationen nicht geändert werden. | |
allow_push |
true |
Pushabonnements sind für die angegebene Veröffentlichung zulässig. |
false |
Pushabonnements sind für die angegebene Publikation nicht zulässig. | |
allow_subscription_copy |
true |
Aktiviert die Möglichkeit zum Kopieren von Datenbanken, die diese Veröffentlichung abonnieren. Diese Eigenschaft kann für Nicht-SQL Server-Publikationen nicht geändert werden. |
false |
Deaktiviert die Möglichkeit zum Kopieren von Datenbanken, die diese Veröffentlichung abonnieren. Diese Eigenschaft kann für Nicht-SQL Server-Publikationen nicht geändert werden. | |
alt_snapshot_folder |
Der Speicherort des alternativen Ordners für die Momentaufnahme. | |
centralized_conflicts |
true |
Die Konfliktdatensätze werden auf dem Verleger gespeichert. Kann nur geändert werden, wenn keine aktiven Abonnements vorhanden sind. Diese Eigenschaft kann für Nicht-SQL Server-Publikationen nicht geändert werden. |
false |
Die Konfliktdatensätze werden auf dem Verleger und auf dem Abonnenten gespeichert, der den Konflikt verursacht hat. Kann nur geändert werden, wenn keine aktiven Abonnements vorhanden sind. Diese Eigenschaft kann für Nicht-SQL Server-Publikationen nicht geändert werden. | |
compress_snapshot |
true |
Die Momentaufnahme in einem alternativen Momentaufnahmeordner wird in das CAB-Dateiformat komprimiert. Die Momentaufnahme im Standardmomentaufnahmeordner kann nicht komprimiert werden. |
false |
Momentaufnahmen werden nicht komprimiert, was das Standardverhalten für die Replikation ist. | |
conflict_policy |
pub wins |
Richtlinie zur Konfliktlösung für Updateabonnenten, bei der der Verleger den Konflikt gewinnt. Diese Eigenschaft kann nur geändert werden, wenn keine aktiven Abonnements vorhanden sind. Diese Option wird für Oracle-Verleger nicht unterstützt. |
sub reinit |
Wenn für Updateabonnenten ein Konflikt auftritt, muss das Abonnement erneut initialisiert werden. Diese Eigenschaft kann nur geändert werden, wenn keine aktiven Abonnements vorhanden sind. Diese Option wird für Oracle-Verleger nicht unterstützt. | |
sub wins |
Richtlinie zur Konfliktlösung für Updateabonnenten, bei der der Abonnent den Konflikt gewinnt. Diese Eigenschaft kann nur geändert werden, wenn keine aktiven Abonnements vorhanden sind. Diese Option wird für Oracle-Verleger nicht unterstützt. | |
conflict_retention |
Ein Int-Wert , der den Aufbewahrungszeitraum für Konflikte in Tagen angibt. Die Standardaufbewahrungsdauer beträgt 14 Tage. 0 bedeutet, dass keine Konfliktbereinigung erforderlich ist. Diese Option wird für Oracle-Verleger nicht unterstützt. |
|
description |
Eine optionale Beschreibung der Veröffentlichung. | |
enabled_for_het_sub |
true |
Ermöglicht der Publikation die Unterstützung von Nicht-SQL Server-Abonnenten. enabled_for_het_sub kann nicht geändert werden, wenn abonnements für die Publikation vorhanden sind. Möglicherweise müssen Sie sp_changepublication ausführen, um die folgenden Anforderungen einzuhalten, bevor Sie auf "true" festlegenenabled_for_het_sub :- allow_queued_tran muss den Wert false haben.- allow_sync_tran muss den Wert false haben.Änderungen enabled_for_het_sub an true vorhandenen Publikationseinstellungen können geändert werden. Weitere Informationen finden Sie unter Non-SQL Server Subscribers. Diese Eigenschaft kann für Nicht-SQL Server-Publikationen nicht geändert werden. |
false |
Die Publikation unterstützt keine Nicht-SQL Server-Abonnenten. Diese Eigenschaft kann für Nicht-SQL Server-Publikationen nicht geändert werden. | |
enabled_for_internet |
true |
Die Veröffentlichung ist für das Internet aktiviert. FTP (File Transfer Protocol) kann dazu verwendet werden, die Momentaufnahmedateien an einen Abonnenten zu übermitteln. Die Synchronisierungsdateien für die Publikation werden in das folgende Verzeichnis eingefügt: C:\Program Files\Microsoft SQL Server\MSSQL\Repldata\ftp ftp_address kann nicht sein NULL . Diese Eigenschaft kann für Nicht-SQL Server-Publikationen nicht geändert werden. |
false |
Die Publikation ist für das Internet nicht aktiviert. Diese Eigenschaft kann für Nicht-SQL Server-Publikationen nicht geändert werden. | |
enabled_for_p2p |
true |
Die Veröffentlichung unterstützt die Peer-zu-Peer-Replikation. Diese Eigenschaft kann für Nicht-SQL Server-Publikationen nicht geändert werden. Zum Festlegen enabled_for_p2p true auf , gelten die folgenden Einschränkungen:- allow_anonymous muss sein false - allow_dts muss den Wert false haben.- allow_initialize_from_backup muss sein true - allow_queued_tran muss den Wert false haben.- allow_sync_tran muss den Wert false haben.- enabled_for_het_sub muss den Wert false haben.- independent_agent muss den Wert true haben.- repl_freq muss den Wert continuous haben.- replicate_ddl muss den Wert 1 haben. |
false |
Die Publikation unterstützt keine Peer-zu-Peer-Replikation. Diese Eigenschaft kann für Nicht-SQL Server-Publikationen nicht geändert werden. | |
ftp_address |
Der Speicherort der Veröffentlichungsmomentaufnahmedateien, auf den über FTP zugegriffen werden kann. Diese Eigenschaft kann für Nicht-SQL Server-Publikationen nicht geändert werden. | |
ftp_login |
Benutzername, der zum Herstellen einer Verbindung mit dem FTP-Dienst verwendet wird, und der Wert anonymous ist zulässig. Diese Eigenschaft kann für Nicht-SQL Server-Publikationen nicht geändert werden. |
|
ftp_password |
Das Kennwort für den Benutzernamen, mit dem eine Verbindung mit dem FTP-Dienst hergestellt wird. Diese Eigenschaft kann für Nicht-SQL Server-Publikationen nicht geändert werden. | |
ftp_port |
Die Nummer des Anschlusses für den FTP-Dienst des Verteilers. Diese Eigenschaft kann für Nicht-SQL Server-Publikationen nicht geändert werden. | |
ftp_subdirectory |
Gibt an, wo die Snapshotdateien erstellt werden, wenn die Publikation das Verteilen von Momentaufnahmen mithilfe von FTP unterstützt. Diese Eigenschaft kann für Nicht-SQL Server-Publikationen nicht geändert werden. | |
immediate_sync |
true |
Die Synchronisierungsdateien für die Veröffentlichung werden bei jeder Ausführung des Momentaufnahme-Agents erstellt oder neu erstellt. Abonnenten können die Synchronisierungsdateien unmittelbar nach dem Abonnement empfangen, wenn die Momentaufnahmen-Agent einmal vor dem Abonnement abgeschlossen ist. Neue Abonnements rufen die neuesten Synchronisierungsdateien ab, die von der letzten Ausführung des Momentaufnahmeagents generiert wurden. independent_agent muss auch sein true . Weitere Informationen finden Sie unter "Auswirkungen der sofortigen Synchronisierung". |
false |
Synchronisierungsdateien werden nur erstellt, wenn neue Abonnements vorhanden sind. Abonnenten können die Synchronisierungsdateien nach dem Abonnement erst empfangen, wenn die Momentaufnahmen-Agent gestartet und abgeschlossen ist. | |
independent_agent |
true |
Die Veröffentlichung verfügt über ihren eigenen dedizierten Verteilungs-Agent. |
false |
Die Veröffentlichung verwendet einen freigegebenen Verteilungs-Agent, und jedes Paar aus Veröffentlichungsdatenbank und Abonnementdatenbank verfügt über einen freigegebenen Agent. | |
p2p_continue_onconflict |
true |
Der Verteilungs-Agent setzt bei Erkennung eines Konflikts die Verarbeitung von Änderungen fort. Achtung: Es wird empfohlen, den Standardwert von FALSE . Wenn diese Option auf TRUE festgelegt ist, versucht die Verteilungs-Agent, Daten in der Topologie zu konvergenieren, indem die konfliktierende Zeile vom Knoten angewendet wird, der die höchste Absender-ID ist. Diese Methode garantiert keine Konvergenz. Sie sollten sicherstellen, dass die Topologie nach der Erkennung eines Konflikts konsistent ist. Weitere Informationen finden Sie unter "Handling Conflicts" in Peer-to-Peer – Conflict Detection in Peer-to-Peer-Replikation. |
false |
Der Verteilungs-Agent beendet bei Erkennung eines Konflikts die Verarbeitung von Änderungen. | |
post_snapshot_script |
Gibt den Speicherort einer Transact-SQL-Skriptdatei an, die vom Verteilungs-Agent ausgeführt wird, nachdem alle anderen replizierten Objektskripts und Daten während einer anfänglichen Synchronisierung angewendet wurden. | |
pre_snapshot_script |
Gibt den Speicherort einer Transact-SQL-Skriptdatei an, die vom Verteilungs-Agent ausgeführt wird, bevor alle anderen replizierten Objektskripts und Daten während einer anfänglichen Synchronisierung angewendet werden. | |
publish_to_ActiveDirectory |
true |
Dieser Parameter ist veraltet und wird nur für die Abwärtskompatibilität von Skripts unterstützt. Sie können dem Microsoft Active Directory keine Publikationsinformationen mehr hinzufügen. |
false |
Entfernt die Veröffentlichungsinformationen aus Active Directory. | |
queue_type |
sql |
Verwenden Sie SQL Server, um Transaktionen zu speichern. Diese Eigenschaft kann nur geändert werden, wenn keine aktiven Abonnements vorhanden sind. Hinweis: Der Support für die Verwendung von Microsoft Message Queuing wird nicht mehr unterstützt. Das Angeben eines Werts für msmq @value führt zu einem Fehler. |
redirected_publisher |
Der Name des Verfügbarkeitsgruppenlisteners. Wird in der Peer-to-Peer-Replikation verwendet, wenn sich ein Peer in einer Verfügbarkeitsgruppe befindet. Diese Eigenschaft kann für Nicht-SQL Server-Publikationen nicht geändert werden. In SQL Server 2019 (15.x) CU 13 eingeführt. Weitere Informationen finden Sie unter Konfigurieren eines Peers als Teil der Verfügbarkeitsgruppe oder Konfigurieren beider Peers in Verfügbarkeitsgruppen. | |
repl_freq |
continuous |
Veröffentlicht die Ausgabe aller protokollbasierten Transaktionen. |
snapshot |
Veröffentlicht nur geplante Synchronisierungsereignisse. | |
replicate_ddl |
1 |
Auf dem Verleger ausgeführte Anweisungen der Datendefinitionssprache (DDL, Data Definition Language) werden repliziert. Diese Eigenschaft kann für Nicht-SQL Server-Publikationen nicht geändert werden. |
0 |
DDL-Anweisungen werden nicht repliziert. Diese Eigenschaft kann für Nicht-SQL Server-Publikationen nicht geändert werden. Die Replikation von Schemaänderungen kann bei Verwendung der Peer-to-Peer-Replikation nicht deaktiviert werden. | |
replicate_partition_switch |
true |
ALTER TABLE...SWITCH Anweisungen, die für die veröffentlichte Datenbank ausgeführt werden, sollten auf Abonnenten repliziert werden. Diese Option ist nur gültig, wenn allow_partition_switch sie auf true . Weitere Informationen finden Sie unter Replicate Partitioned Tables and Indexes. |
false |
ALTER TABLE...SWITCH Anweisungen sollten nicht in Abonnenten repliziert werden. |
|
retention |
int , der den Aufbewahrungszeitraum in Stunden für Abonnementaktivitäten darstellt. Wenn ein Abonnement nicht innerhalb des Aufbewahrungszeitraums aktiv ist, wird es entfernt. | |
snapshot_in_defaultfolder |
true |
Momentaufnahmedateien werden im Standardmomentaufnahmeordner gespeichert. Wenn alt_snapshot_folder auch angegeben, werden Momentaufnahmedateien sowohl an den Standardspeicherorten als auch an alternativen Speicherorten gespeichert. |
false |
Momentaufnahmendateien werden an dem alternativen Speicherort gespeichert, der durch alt_snapshot_folder . |
|
status |
active |
Veröffentlichungsdaten sind für Abonnenten sofort beim Erstellen der Veröffentlichung verfügbar. Diese Option wird für Oracle-Verleger nicht unterstützt. |
inactive |
Publikationsdaten sind für Abonnenten nicht verfügbar, wenn die Publikation erstellt wird. Diese Option wird für Oracle-Verleger nicht unterstützt. | |
sync_method |
native |
Verwendet beim Synchronisieren von Abonnements eine Massenkopierausgabe aller Tabellen im einheitlichen Modus. |
character |
Verwendet beim Synchronisieren von Abonnements eine Massenkopierausgabe aller Tabellen im Zeichenmodus. | |
concurrent |
Verwendet die Programmausgabe im nativen Modus für Massenkopien aller Tabellen, sperrt jedoch keine Tabellen während des Erstellungsprozesses der Momentaufnahme. Nicht für die Momentaufnahmereplikation gültig. | |
concurrent_c |
Verwendet die Ausgabe des Massenkopieprogramms aller Tabellen im Zeichenmodus, sperrt jedoch keine Tabellen während des Erstellungsprozesses der Momentaufnahme. Nicht für die Momentaufnahmereplikation gültig. | |
taskid |
Diese Eigenschaft ist veraltet und wird nicht mehr unterstützt. | |
allow_drop |
true |
Aktiviert DROP TABLE die DLL-Unterstützung für Artikel, die Teil der Transaktionsreplikation sind. Mindestens unterstützte Version: SQL Server 2014 (12.x) Service Pack 2 oder höher und SQL Server 2016 (13.x) Service Pack 1 oder höher. Weitere Informationen finden Sie unter KB 3170123 |
false (Standard) |
Deaktiviert die DROP TABLE DLL-Unterstützung für Artikel, die Teil der Transaktionsreplikation sind. |
|
NULL (Standard) |
Gibt die Liste der unterstützten Werte für @property zurück. |
[ @force_invalidate_snapshot = ] force_invalidate_snapshot
Bestätigt, dass die von dieser gespeicherten Prozedur ausgeführte Aktion möglicherweise eine vorhandene Momentaufnahme ungültig macht. @force_invalidate_snapshot ist bit, mit einem Standardwert von 0
.
0
Gibt an, dass Änderungen am Artikel nicht dazu führen, dass die Momentaufnahme ungültig ist. Wenn die gespeicherte Prozedur erkennt, dass die Änderungen eine neue Momentaufnahme erfordern, tritt ein Fehler auf und es werden keine Änderungen vorgenommen.1
Gibt an, dass Änderungen am Artikel dazu führen können, dass die Momentaufnahme ungültig ist. Wenn Abonnements vorhanden sind, die eine neue Momentaufnahme erfordern würden, wird mit diesem Wert die Berechtigung erteilt, die vorhandene Momentaufnahme als veraltet zu markieren und eine neue Momentaufnahme zu generieren.
Im Abschnitt "Hinweise" finden Sie die Eigenschaften, die beim Ändern die Generierung einer neuen Momentaufnahme erfordern.
[ @force_reinit_subscription = ] force_reinit_subscription
Bestätigt, dass die von dieser gespeicherten Prozedur ausgeführte Aktion möglicherweise das erneute Initialisieren von vorhandenen Abonnements erfordert. @force_reinit_subscription ist bit, mit einem Standardwert von 0
.
0
Gibt an, dass Änderungen am Artikel nicht dazu führen, dass das Abonnement erneut initialisiert wird. Wenn die gespeicherte Prozedur erkennt, dass die Änderung die Neuinitialisierung vorhandener Abonnements erfordert, tritt ein Fehler auf, und es werden keine Änderungen durchgeführt.1
Gibt an, dass Änderungen am Artikel dazu führen, dass das vorhandene Abonnement erneut initialisiert wird, und erteilt die Berechtigung für die Erneute Initialisierung des Abonnements.
[ @publisher = ] N'publisher'
Gibt einen Nicht-SQL Server-Herausgeber an. @publisher ist "sysname" mit der Standardeinstellung "NULL
.
@publisher sollte nicht verwendet werden, wenn Artikeleigenschaften in einem SQL Server-Publisher geändert werden.
Rückgabecodewerte
0
(erfolgreich) oder 1
Fehler.
Hinweise
sp_changepublication
wird in der Momentaufnahmereplikation und Transaktionsreplikation verwendet.
Nachdem Sie eine der folgenden Eigenschaften geändert haben, müssen Sie eine neue Momentaufnahme generieren, und Sie müssen einen Wert 1
für den parameter @force_invalidate_snapshot angeben.
alt_snapshot_folder
compress_snapshot
enabled_for_het_sub
ftp_address
ftp_login
ftp_password
ftp_port
ftp_subdirectory
post_snapshot_script
pre_snapshot_script
snapshot_in_defaultfolder
sync_mode
Zum Auflisten von Publikationsobjekten in Active Directory mithilfe des publish_to_active_directory
Parameters muss das SQL Server-Objekt bereits im Active Directory erstellt werden.
Auswirkung der sofortigen Synchronisierung
Wenn die sofortige Synchronisierung aktiviert ist, werden alle Änderungen im Protokoll unmittelbar nach dem Generieren der ersten Momentaufnahme nachverfolgt, auch wenn keine Abonnements vorhanden sind. Protokollierte Änderungen werden verwendet, wenn ein Kunde eine Sicherung verwendet, um einen neuen Peerknoten hinzuzufügen. Nachdem die Sicherung wiederhergestellt wurde, wird der Peer mit allen anderen Änderungen synchronisiert, die nach dem Erstellen der Sicherung auftreten. Da die Befehle in der Verteilungsdatenbank nachverfolgt werden, kann die Synchronisierungslogik den letzten gesicherten LSN betrachten und diese als Ausgangspunkt verwenden, da sie wissen, dass der Befehl verfügbar ist, wenn die Sicherung innerhalb des maximalen Aufbewahrungszeitraums ausgeführt wurde. (Der Standardwert für den mindesten Aufbewahrungszeitraum beträgt 0 Stunden, und der maximale Aufbewahrungszeitraum beträgt 24 Stunden.)
Wenn die sofortige Synchronisierung deaktiviert ist, werden Die Änderungen mindestens den Aufbewahrungszeitraum für min. beibehalten und sofort für alle Transaktionen bereinigt, die bereits repliziert wurden. Wenn die sofortige Synchronisierung deaktiviert und mit dem Standardaufbewahrungszeitraum konfiguriert ist, ist es wahrscheinlich, dass die erforderlichen Änderungen, nachdem die Sicherung bereinigt wurde, und der neue Peerknoten nicht ordnungsgemäß initialisiert wird. Die einzige Option besteht darin, die Topologie in einen inaktiven Zustand zu versetzen. Wenn Sie immediate_synch aktivieren, erhöht sich die Flexibilität. Darüber hinaus ist dies die empfohlene Einstellung für P2P-Replikationen.
Beispiele
DECLARE @publication AS sysname
SET @publication = N'AdvWorksProductTran'
-- Turn off DDL replication for the transactional publication.
USE [AdventureWorks2022]
EXEC sp_changepublication
@publication = @publication,
@property = N'replicate_ddl',
@value = 0
GO
Berechtigungen
Nur Mitglieder der festen Serverrolle sysadmin oder db_owner feste Datenbankrolle können ausgeführt werden sp_changepublication
.