Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Managed Instance
Verandert de eigenschappen van een publicatie. Deze opgeslagen procedure wordt uitgevoerd bij Publisher in de publicatiedatabase.
Transact-SQL syntaxis-conventies
Syntax
sys.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' ]
[ ; ]
Arguments
[ @publication = ] N'publicatie'
De naam van de publicatie.
@publication is een systeemnaam, met als standaard .NULL
[ @property = ] N'eigenschap'
De publicatie-eigenschap om te veranderen.
@property is nvarchar(255), met als standaard .NULL
[ @value = ] N'waarde'
De nieuwe eigenschapswaarde.
@value is nvarchar(255), met een standaardwaarde van NULL.
Deze tabel beschrijft de eigenschappen van de publicatie die kunnen worden gewijzigd en beperkingen op de waarden voor die eigenschappen.
| Property | Value | Description |
|---|---|---|
allow_anonymous |
true |
Anonieme abonnementen kunnen worden aangemaakt voor de betreffende publicatie, en immediate_sync moeten ook .true Kan niet worden aangepast voor peer-to-peer publicaties. |
false |
Anonieme abonnementen kunnen niet worden aangemaakt voor de betreffende publicatie. Kan niet worden aangepast voor peer-to-peer publicaties. | |
allow_initialize_from_backup |
true |
Abonnees kunnen een abonnement op deze publicatie initialiseren vanuit een back-up in plaats van een eerste snapshot. Deze eigenschap kan niet worden gewijzigd voor publicaties die niet over SQL Server gaan. |
false |
Abonnees moeten de eerste snapshot gebruiken. Deze eigenschap kan niet worden gewijzigd voor publicaties die niet over SQL Server gaan. | |
allow_partition_switch |
true |
ALTER TABLE...SWITCH statements kunnen worden uitgevoerd op basis van de gepubliceerde database. Zie Gepartitioneerde tabellen en indexen repliceren voor meer informatie. |
false |
ALTER TABLE...SWITCH Statements kunnen niet worden uitgevoerd op de gepubliceerde database. |
|
allow_pull |
true |
Trekabonnementen zijn toegestaan voor de betreffende publicatie. Deze eigenschap kan niet worden gewijzigd voor publicaties die niet over SQL Server gaan. |
false |
Pull-abonnementen zijn niet toegestaan voor de betreffende publicatie. Deze eigenschap kan niet worden gewijzigd voor publicaties die niet over SQL Server gaan. | |
allow_push |
true |
Push-abonnementen zijn toegestaan voor de betreffende publicatie. |
false |
Push-abonnementen zijn niet toegestaan voor de betreffende publicatie. | |
allow_subscription_copy |
true |
Maakt het mogelijk om databases te kopiëren die zich abonneren op deze publicatie. Deze eigenschap kan niet worden gewijzigd voor publicaties die niet over SQL Server gaan. |
false |
Schakelt de mogelijkheid uit om databases te kopiëren die zich abonneren op deze publicatie. Deze eigenschap kan niet worden gewijzigd voor publicaties die niet over SQL Server gaan. | |
alt_snapshot_folder |
Locatie van de alternatieve map voor de snapshot. | |
centralized_conflicts |
true |
Conflictgegevens worden opgeslagen bij de Publisher. Kan alleen worden gewijzigd als er geen actieve abonnementen zijn. Deze eigenschap kan niet worden gewijzigd voor publicaties die niet over SQL Server gaan. |
false |
Conflictregisters worden opgeslagen bij zowel de Publisher als bij de abonnee die het conflict heeft veroorzaakt. Kan alleen worden gewijzigd als er geen actieve abonnementen zijn. Deze eigenschap kan niet worden gewijzigd voor publicaties die niet over SQL Server gaan. | |
compress_snapshot |
true |
Snapshot in een alternatieve snapshotmap wordt gecomprimeerd in het .cab bestandsformaat. De snapshot in de standaard snapshotmap kan niet worden gecomprimeerd. |
false |
Snapshot is niet gecomprimeerd, wat het standaardgedrag is voor replicatie. | |
conflict_policy |
pub wins |
Beleid voor conflictoplossing voor het bijwerken van abonnees waar de Publisher het conflict wint. Deze eigenschap kan alleen worden gewijzigd als er geen actieve abonnementen zijn. Niet ondersteund door Oracle Publishers. |
sub reinit |
Voor het updaten van abonnees moet het abonnement opnieuw worden geïntinitieerd als er een conflict optreedt. Deze eigenschap kan alleen worden gewijzigd als er geen actieve abonnementen zijn. Niet ondersteund door Oracle Publishers. | |
sub wins |
Beleid voor conflictoplossing voor het bijwerken van abonnees waar de abonnee het conflict wint. Deze eigenschap kan alleen worden gewijzigd als er geen actieve abonnementen zijn. Niet ondersteund door Oracle Publishers. | |
conflict_retention |
Een int-waarde die de conflictretentieperiode aangeeft, in dagen. De standaard retentie is 14 dagen.
0 Dat betekent dat er geen conflictopruiming nodig is. Niet ondersteund door Oracle Publishers. |
|
description |
Optionele vermelding van de publicatie. | |
enabled_for_het_sub |
true |
Maakt het mogelijk dat de publicatie niet-SQL Server-abonnees ondersteunt.
enabled_for_het_sub Kan niet worden gewijzigd als er abonnementen op de publicatie zijn. Je moet mogelijk sp_changepublication uitvoeren om aan de volgende eisen te voldoen voordat je true zet enabled_for_het_sub :- allow_queued_tran moet wel zijn false.- allow_sync_tran moet wel zijn false.Wijzigen enabled_for_het_sub naar true kan de bestaande publicatie-instellingen veranderen. Zie Niet-SQL Server-abonnees voor meer informatie. Deze eigenschap kan niet worden gewijzigd voor publicaties die niet over SQL Server gaan. |
false |
De publicatie ondersteunt geen niet-SQL Server-abonnees. Deze eigenschap kan niet worden gewijzigd voor publicaties die niet over SQL Server gaan. | |
enabled_for_internet |
true |
Publicatie is ingeschakeld voor het internet, en File Transfer Protocol (FTP) kan worden gebruikt om de snapshotbestanden naar een abonnee over te dragen. De synchronisatiebestanden voor de publicatie worden in de volgende map geplaatst: C:\Program Files\Microsoft SQL Server\MSSQL\Repldata\ftp.
ftp_address Kan niet NULL. Deze eigenschap kan niet worden gewijzigd voor publicaties die niet over SQL Server gaan. |
false |
Publicatie is niet ingeschakeld op het internet. Deze eigenschap kan niet worden gewijzigd voor publicaties die niet over SQL Server gaan. | |
enabled_for_p2p |
true |
De publicatie ondersteunt peer-to-peer replicatie. Deze eigenschap kan niet worden gewijzigd voor publicaties die niet over SQL Server gaan. Om op truete stellen enabled_for_p2p gelden de volgende beperkingen:- allow_anonymous Moet wel false- allow_dts moet wel zijn false.- allow_initialize_from_backup Moet wel true- allow_queued_tran moet wel zijn false.- allow_sync_tran moet wel zijn false.- enabled_for_het_sub moet wel zijn false.- independent_agent moet wel zijn true.- repl_freq moet wel zijn continuous.- replicate_ddl moet wel zijn 1. |
false |
De publicatie ondersteunt geen peer-to-peer replicatie. Deze eigenschap kan niet worden gewijzigd voor publicaties die niet over SQL Server gaan. | |
ftp_address |
FTP-toegankelijke locatie van de publicatiesnapshotbestanden. Deze eigenschap kan niet worden gewijzigd voor publicaties die niet over SQL Server gaan. | |
ftp_login |
Gebruikersnaam gebruikt om verbinding te maken met de FTP-service, en de waarde anonymous is toegestaan. Deze eigenschap kan niet worden gewijzigd voor publicaties die niet over SQL Server gaan. |
|
ftp_password |
Wachtwoord voor de gebruikersnaam die wordt gebruikt om verbinding te maken met de FTP-dienst. Deze eigenschap kan niet worden gewijzigd voor publicaties die niet over SQL Server gaan. | |
ftp_port |
Poortnummer van de FTP-dienst voor de distributeur. Deze eigenschap kan niet worden gewijzigd voor publicaties die niet over SQL Server gaan. | |
ftp_subdirectory |
Geeft aan waar de snapshotbestanden worden aangemaakt als de publicatie het propageren van snapshots via FTP ondersteunt. Deze eigenschap kan niet worden gewijzigd voor publicaties die niet over SQL Server gaan. | |
immediate_sync |
true |
Synchronisatiebestanden voor de publicatie worden aangemaakt of opnieuw aangemaakt telkens wanneer de Snapshot Agent draait. Abonnees kunnen de synchronisatiebestanden direct na het abonnement ontvangen, als de Snapshot Agent één keer voltooid is vóór het abonnement. Nieuwe abonnementen ontvangen de nieuwste synchronisatiebestanden die worden gegenereerd door de meest recente uitvoering van de Snapshot Agent.
independent_agent moet ook zijn true. Voor meer informatie, zie Effect van onmiddellijke synchronisatie. |
false |
Synchronisatiebestanden worden alleen aangemaakt als er nieuwe abonnementen zijn gemaakt. Abonnees kunnen de synchronisatiebestanden pas ontvangen na het abonnement als de Snapshot Agent is gestart en voltooid. | |
independent_agent |
true |
De publicatie heeft een eigen speciale Distribution Agent. |
false |
Publicatie gebruikt een gedeelde Distribution Agent, en elk publicatie/abonnementsdatabasepaar heeft een gedeelde agent. | |
p2p_continue_onconflict |
true |
De Distribution Agent blijft wijzigingen verwerken wanneer een conflict wordt gedetecteerd. Voorzichtigheid: U wordt aangeraden de standaardwaarde van FALSE. Wanneer deze optie is ingesteld TRUEop, probeert de distributieagent gegevens in de topologie te convergeren door de conflicterende rij van het knooppunt toe te passen die de hoogste originator-id is. Deze methode garandeert geen convergentie. Zorg ervoor dat de topologie consistent is nadat een conflict is gedetecteerd. Zie 'Conflicten afhandelen' in Peer-to-Peer - Conflictdetectie in Peer-to-Peer-replicatie voor meer informatie. |
false |
De Distribution Agent stopt met het verwerken van wijzigingen wanneer een conflict wordt gedetecteerd. | |
post_snapshot_script |
Specificeert de locatie van een Transact-SQL scriptbestand dat de Distribution Agent uitvoert nadat alle andere gerepliceerde objectscripts en data zijn toegepast tijdens een initiële synchronisatie. | |
pre_snapshot_script |
Specificeert de locatie van een Transact-SQL scriptbestand dat de Distribution Agent uitvoert voordat alle andere gerepliceerde objectscripts en data worden toegepast tijdens een initiële synchronisatie. | |
publish_to_ActiveDirectory |
true |
Deze parameter is verouderd en wordt alleen ondersteund voor de achterwaartse compatibiliteit van scripts. Je kunt geen publicatie-informatie meer toevoegen aan de Microsoft Active Directory. |
false |
Verwijdert de publicatie-informatie uit Active Directory. | |
queue_type |
sql |
Gebruik SQL Server om transacties op te slaan. Deze eigenschap kan alleen worden gewijzigd als er geen actieve abonnementen zijn. Opmerking: Ondersteuning voor het gebruik van Microsoft Message Queuing is stopgezet. Het specificeren van een waarde van msmq voor @value resulteert in een fout. |
redirected_publisher |
De naam van de listener van de beschikbaarheidsgroep. Gebruikt bij peer-to-peer replicatie wanneer een peer in een beschikbaarheidsgroep zit. Deze eigenschap kan niet worden gewijzigd voor publicaties die niet over SQL Server gaan. Geïntroduceerd in SQL Server 2019 (15.x) CU 13. Voor meer informatie, zie Configureer één peer als onderdeel van de beschikbaarheidsgroep of Configureer beide peers in beschikbaarheidsgroepen. | |
repl_freq |
continuous |
Publiceert de output van alle log-gebaseerde transacties. |
snapshot |
Publiceert alleen geplande synchronisatiegebeurtenissen. | |
replicate_ddl |
1 |
Data definition language (DDL) statements die bij de uitgever worden uitgevoerd, worden gerepliceerd. Deze eigenschap kan niet worden gewijzigd voor publicaties die niet over SQL Server gaan. |
0 |
DDL-statements worden niet gerepliceerd. Deze eigenschap kan niet worden gewijzigd voor publicaties die niet over SQL Server gaan. Replicatie van schemawijzigingen kan niet worden uitgeschakeld bij peer-to-peer replicatie. | |
replicate_partition_switch |
true |
ALTER TABLE...SWITCH statements die worden uitgevoerd tegen de gepubliceerde database moeten worden gerepliceerd naar abonnees. Deze optie is alleen geldig als allow_partition_switch deze is ingesteld op true. Zie Gepartitioneerde tabellen en indexen repliceren voor meer informatie. |
false |
ALTER TABLE...SWITCH statements mogen niet worden gerepliceerd aan abonnees. |
|
retention |
INT die de retentieperiode in uren voor abonnementsactiviteiten vertegenwoordigt. Als een abonnement niet actief is binnen de retentieperiode, wordt het verwijderd. | |
snapshot_in_defaultfolder |
true |
Snapshotbestanden worden opgeslagen in de standaard snapshotmap. Als alt_snapshot_folder ook wordt gespecificeerd, worden snapshotbestanden opgeslagen op zowel de standaard- als alternatieve locatie. |
false |
Snapshotbestanden worden opgeslagen op de alternatieve locatie die door alt_snapshot_folderis gespecificeerd. |
|
status |
active |
Publicatiegegevens zijn direct beschikbaar voor abonnees zodra de publicatie is aangemaakt. Niet ondersteund door Oracle Publishers. |
inactive |
Publicatiegegevens zijn niet beschikbaar voor abonnees wanneer de publicatie wordt aangemaakt. Niet ondersteund door Oracle Publishers. | |
sync_method |
native |
Gebruikt native-mode bulkkopie-uitvoer van alle tabellen bij het synchroniseren van abonnementen. |
character |
Gebruikt bulkkopie-uitvoer van alle tabellen in tekenmodus bij het synchroniseren van abonnementen. | |
concurrent |
Gebruikt native-mode bulk-copy programma-uitvoer van alle tabellen, maar vergrendelt tabellen niet tijdens het snapshotgeneratieproces. Niet geldig voor snapshotreplicatie. | |
concurrent_c |
Gebruikt bulk-copy van de uitvoer van alle tabellen met karaktermodus, maar vergrendelt tabellen niet tijdens het snapshotgeneratieproces. Niet geldig voor snapshotreplicatie. | |
taskid |
Deze eigenschap is verouderd en wordt niet langer ondersteund. | |
allow_drop |
true |
Maakt DLL-ondersteuning mogelijk DROP TABLE voor artikelen die deel uitmaken van transactionele replicatie. Minimaal ondersteunde versie: SQL Server 2014 (12.x) Service Pack 2 of hoger en SQL Server 2016 (13.x) Service Pack 1 of hoger. Voor meer informatie, zie KB 3170123 |
false (standaard) |
Schakelt DROP TABLE DLL-ondersteuning uit voor artikelen die deel uitmaken van transactionele replicatie. |
|
NULL (standaard) |
Geeft de lijst met ondersteunde waarden voor @property terug. |
[ @force_invalidate_snapshot = ] force_invalidate_snapshot
Erkent dat de actie die door deze opgeslagen procedure wordt uitgevoerd, een bestaande snapshot ongeldig kan maken.
@force_invalidate_snapshot is bit, met een standaardwaarde van 0.
-
0geeft aan dat wijzigingen in het artikel niet ertoe leiden dat de momentopname ongeldig is. Als de opgeslagen procedure detecteert dat de wijziging een nieuwe snapshot vereist, ontstaat er een fout en worden er geen wijzigingen aangebracht. -
1specificeert dat wijzigingen in het artikel de snapshot ongeldig kunnen maken. Als er bestaande abonnementen zijn die een nieuwe snapshot vereisen, geeft deze waarde toestemming om de bestaande snapshot als verouderd te markeren en een nieuwe snapshot te genereren.
Zie de sectie Opmerkingen voor de eigenschappen die, wanneer gewijzigd, de aanmaak van een nieuwe snapshot vereisen.
[ @force_reinit_subscription = ] force_reinit_subscription
Erkent dat de actie die door deze opgeslagen procedure wordt ondernomen, mogelijk vereist dat bestaande abonnementen opnieuw worden geïntialiseerd.
@force_reinit_subscription is bit, met een standaardwaarde van 0.
-
0geeft aan dat wijzigingen in het artikel niet ertoe leiden dat het abonnement opnieuw wordt geïnitialiseerd. Als de opgeslagen procedure detecteert dat de wijziging vereist dat bestaande abonnementen opnieuw worden geïntialiseerd, treedt er een fout op en worden er geen wijzigingen aangebracht. -
1specificeert dat wijzigingen in het artikel ervoor zorgen dat het bestaande abonnement opnieuw wordt geïntinitialiseerd, en geeft toestemming voor de herinitialisatie van het abonnement.
[ @publisher = ] N'uitgever'
Specificeert een niet-SQL Server Publisher.
@publisher is sysname, met als standaard NULL.
@publisher mag niet gebruikt worden bij het wijzigen van artikeleigenschappen op een SQL Server Publisher.
Codewaarden retourneren
0 (geslaagd) of 1 (mislukt).
Remarks
sp_changepublication wordt gebruikt bij snapshotreplicatie en transactionele replicatie.
Na het wijzigen van een van de volgende eigenschappen moet je een nieuwe snapshot genereren en moet je een waarde van 1 specificeren voor de @force_invalidate_snapshot-parameter .
alt_snapshot_foldercompress_snapshotenabled_for_het_subftp_addressftp_loginftp_passwordftp_portftp_subdirectorypost_snapshot_scriptpre_snapshot_scriptsnapshot_in_defaultfoldersync_mode
Om publicatieobjecten in de Active Directory met de publish_to_active_directory parameter te vermelden, moet het SQL Server-object al in de Active Directory zijn aangemaakt.
Effect van onmiddellijke synchronisatie
Wanneer directe synchronisatie aanstaat, worden alle wijzigingen in het logboek direct na het genereren van de eerste snapshot gevolgd, zelfs als er geen abonnementen zijn. Gelogde wijzigingen worden gebruikt wanneer een klant back-up gebruikt om een nieuwe peer-node toe te voegen. Nadat de back-up is hersteld, wordt de peer gesynchroniseerd met alle andere wijzigingen die na het maken van de back-up zijn doorgevoerd. Omdat de commando's worden gevolgd in de distributiedatabase, kan de synchronisatielogica kijken naar het laatst geback-upte LSN en dit als uitgangspunt gebruiken, wetende dat het commando beschikbaar is als de back-up binnen de maximale retentieperiode is genomen. (De standaardwaarde voor de minimale retentieperiode is 0 uur, en de maximale retentieperiode is 24 uur.)
Wanneer directe synchronisatie niet is gegaan, worden wijzigingen minstens de minimale retentieperiode behouden en direct opgeschoond voor alle transacties die al zijn gerepliceerd. Als directe synchronisatie uit staat en is geconfigureerd met de standaard retentieperiode, is het waarschijnlijk dat de benodigde wijzigingen na het maken van de back-up zijn opgeschoond, en zal de nieuwe peer-node niet correct worden geïnitialiseerd. De enige optie die overblijft is om de topologie te quiesceren. Het instellen van directe synchronisatie op aan biedt meer flexibiliteit en is de aanbevolen instelling voor P2P-replicatie.
Examples
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
Permissions
Alleen leden van de sysadmin-vaste serverrol of db_owner vaste databaserol kunnen uitvoeren sp_changepublication.