Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Managed Instance
Zmienia właściwości publikacji. Ta procedura składowana jest wykonywana w programie Publisher w bazie danych publikacji.
Transact-SQL konwencje składni
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'publikacja'
Nazwa publikacji.
@publication jest nazwą systemu z domyślnym .NULL
[ @property = ] N'property'
Własność publikacji do zmiany.
@property to nvarchar(255), z domyślnym .NULL
[ @value = ] N'value'
Nowa wartość właściwości.
@value to nvarchar(255), z wartością domyślną NULL.
Ta tabela opisuje właściwości publikacji, które można zmienić, oraz ograniczenia dotyczące wartości tych właściwości.
| Property | Value | Description |
|---|---|---|
allow_anonymous |
true |
Anonimowe subskrypcje dla danej publikacji mogą być utworzone i immediate_sync muszą być również .true Nie da się tego zmienić w publikacjach peer-to-peer. |
false |
Nie można tworzyć anonimowych subskrypcji dla danej publikacji. Nie da się tego zmienić w publikacjach peer-to-peer. | |
allow_initialize_from_backup |
true |
Subskrybaci mogą inicjować subskrypcję tej publikacji z kopii zapasowej, a nie z początkowego migawki. Ta właściwość nie może być zmieniona dla publikacji spoza SQL Server. |
false |
Subskrybenci muszą korzystać z początkowego snapshota. Ta właściwość nie może być zmieniona dla publikacji spoza SQL Server. | |
allow_partition_switch |
true |
ALTER TABLE...SWITCH Instrukcje mogą być wykonywane na podstawie opublikowanej bazy danych. Aby uzyskać więcej informacji, zobacz Replikowanie partycjonowanych tabel i indeksów. |
false |
ALTER TABLE...SWITCH Oświadczenia nie mogą być wykonywane na opublikowanej bazie danych. |
|
allow_pull |
true |
Dla danego wydawnictwa dozwolone są subskrypcje pull. Ta właściwość nie może być zmieniona dla publikacji spoza SQL Server. |
false |
Subskrypcje pull nie są dozwolone dla danego wydawnictwa. Ta właściwość nie może być zmieniona dla publikacji spoza SQL Server. | |
allow_push |
true |
Subskrypcje push są dozwolone dla danego wydawnictwa. |
false |
Subskrypcje push nie są dozwolone dla danego wydawnictwa. | |
allow_subscription_copy |
true |
Umożliwia kopiowanie baz danych subskrybujących tę publikację. Ta właściwość nie może być zmieniona dla publikacji spoza SQL Server. |
false |
Wyłącza możliwość kopiowania baz danych subskrybujących tę publikację. Ta właściwość nie może być zmieniona dla publikacji spoza SQL Server. | |
alt_snapshot_folder |
Lokalizacja alternatywnego folderu dla snapshota. | |
centralized_conflicts |
true |
Akta konfliktów są przechowywane w Publisher. Można to zmienić tylko wtedy, gdy nie ma aktywnych subskrypcji. Ta właściwość nie może być zmieniona dla publikacji spoza SQL Server. |
false |
Zapisy konfliktów są przechowywane zarówno u Publisher, jak i u subskrybenta, który spowodował konflikt. Można to zmienić tylko wtedy, gdy nie ma aktywnych subskrypcji. Ta właściwość nie może być zmieniona dla publikacji spoza SQL Server. | |
compress_snapshot |
true |
Migawka w alternatywnym folderze snapshotów jest kompresowana do formatu .cab. Migawka w domyślnym folderze snapshotów nie może być skompresowana. |
false |
Snapshot nie jest kompresowany, co jest domyślnym zachowaniem replikacji. | |
conflict_policy |
pub wins |
Polityka rozwiązywania konfliktów dotyczących aktualizacji Subskrybentów tam, gdzie Publisher wygrywa konflikt. Ta własność może być zmieniona tylko wtedy, gdy nie ma aktywnych subskrypcji. Nie jest obsługiwane przez Oracle Publishers. |
sub reinit |
Aby aktualizować subskrypcje, jeśli wystąpi konflikt, subskrypcja musi zostać ponownie zainicjalizowana. Ta własność może być zmieniona tylko wtedy, gdy nie ma aktywnych subskrypcji. Nie jest obsługiwane przez Oracle Publishers. | |
sub wins |
Polityka rozwiązywania konfliktów dotycząca aktualizacji Subskrybentów tam, gdzie to Abonent wygrywa konflikt. Ta własność może być zmieniona tylko wtedy, gdy nie ma aktywnych subskrypcji. Nie jest obsługiwane przez Oracle Publishers. | |
conflict_retention |
Wartość int określająca okres utrzymania konfliktu, w dniach. Domyślne retencje to 14 dni.
0 Oznacza to, że nie jest potrzebne sprzątanie konfliktów. Nie jest obsługiwane przez Oracle Publishers. |
|
description |
Opcjonalny wpis opisujący publikację. | |
enabled_for_het_sub |
true |
Umożliwia publikacji wsparcie dla subskrybentów spoza SQL Server.
enabled_for_het_sub nie można tego zmienić, gdy istnieją subskrypcje publikacji. Może być konieczne wykonanie sp_changepublication , aby spełnić następujące wymagania, zanim ustalisz się enabled_for_het_sub w rzeczywistości:- allow_queued_tranmusi być .false- allow_sync_tranmusi być .falseZmiana enabled_for_het_sub na może true zmienić istniejące ustawienia publikacji. Aby uzyskać więcej informacji, zobacz Subskrybenci programu Non-SQL Server. Ta właściwość nie może być zmieniona dla publikacji spoza SQL Server. |
false |
Publikacja nie obsługuje subskrybentów spoza SQL Server. Ta właściwość nie może być zmieniona dla publikacji spoza SQL Server. | |
enabled_for_internet |
true |
Publikacja jest włączona w Internecie, a protokół przesyłania plików (FTP) może być używany do przesyłania plików migawek do abonenta. Pliki synchronizacyjne publikacji są umieszczane w następującym katalogu: C:\Program Files\Microsoft SQL Server\MSSQL\Repldata\ftp.
ftp_address nie może być NULL. Ta właściwość nie może być zmieniona dla publikacji spoza SQL Server. |
false |
Publikacja nie jest dostępna w Internecie. Ta właściwość nie może być zmieniona dla publikacji spoza SQL Server. | |
enabled_for_p2p |
true |
Publikacja wspiera replikację peer-to-peer. Ta właściwość nie może być zmieniona dla publikacji spoza SQL Server. Aby ustawić enabled_for_p2p na , trueobowiązują następujące ograniczenia:- allow_anonymous musi być false- allow_dtsmusi być .false- allow_initialize_from_backup musi być true- allow_queued_tranmusi być .false- allow_sync_tranmusi być .false- enabled_for_het_submusi być .false- independent_agentmusi być .true- repl_freqmusi być .continuous- replicate_ddlmusi być .1 |
false |
Publikacja nie obsługuje replikacji peer-to-peer. Ta właściwość nie może być zmieniona dla publikacji spoza SQL Server. | |
ftp_address |
Lokalizacja dostępna przez FTP plików snapshot publikacji. Ta właściwość nie może być zmieniona dla publikacji spoza SQL Server. | |
ftp_login |
Nazwa użytkownika używana do połączenia z usługą FTP, a wartość anonymous jest dozwolona. Ta właściwość nie może być zmieniona dla publikacji spoza SQL Server. |
|
ftp_password |
Hasło do nazwy użytkownika użytej do połączenia z usługą FTP. Ta właściwość nie może być zmieniona dla publikacji spoza SQL Server. | |
ftp_port |
Numer portu usługi FTP dla Dystrybutora. Ta właściwość nie może być zmieniona dla publikacji spoza SQL Server. | |
ftp_subdirectory |
Określa, gdzie tworzone są pliki migawki, jeśli publikacja obsługuje propagację migawek za pomocą FTP. Ta właściwość nie może być zmieniona dla publikacji spoza SQL Server. | |
immediate_sync |
true |
Pliki synchronizacyjne dla publikacji są tworzone lub odtwarzane za każdym razem, gdy uruchamia się Snapshot Agent. Subskrybaci mogą otrzymać pliki synchronizacyjne natychmiast po subskrypcji, jeśli Snapshot Agent zakończy subskrypcję raz przed subskrypcją. Nowe subskrypcje otrzymują najnowsze pliki synchronizacyjne wygenerowane przez najnowsze wykonanie Snapshot Agent.
independent_agentmusi być również .true Więcej informacji można znaleźć w artykule Efekt natychmiastowej synchronizacji. |
false |
Pliki synchronizacyjne są tworzone tylko wtedy, gdy pojawiają się nowe subskrypcje. Subskrybenci nie mogą otrzymać plików synchronizacyjnych po subskrypcji, dopóki Snapshot Agent nie zostanie uruchomiony i nie zostanie ukończony. | |
independent_agent |
true |
Publikacja posiada własnego dedykowanego Distribution Agent. |
false |
Publikacja korzysta ze wspólnego Distribution Agent, a każda para bazy danych publikacja/subskrypcja ma wspólnego agenta. | |
p2p_continue_onconflict |
true |
Distribution Agent nadal przetwarza zmiany, gdy wykryto konflikt. Ostrożność: Zalecamy użycie wartości domyślnej . FALSE Gdy ta opcja jest ustawiona na TRUEwartość , agent dystrybucji próbuje połączyć dane w topologii, stosując wiersz powodujący konflikt z węzła, który jest najwyższym identyfikatorem elementu źródłowego. Ta metoda nie gwarantuje zbieżności. Upewnij się, że topologia jest spójna po wykryciu konfliktu. Aby uzyskać więcej informacji, zobacz "Obsługa konfliktów" w obszarze Wykrywanie konfliktów między elementami równorzędnym w replikacji równorzędnej. |
false |
Distribution Agent przestaje przetwarzać zmiany, gdy wykryto konflikt. | |
post_snapshot_script |
Określa lokalizację pliku skryptu Transact-SQL, który Distribution Agent uruchamia po zastosowaniu wszystkich pozostałych replikowanych skryptów obiektowych i danych podczas początkowej synchronizacji. | |
pre_snapshot_script |
Określa lokalizację pliku skryptu Transact-SQL, który Distribution Agent uruchamia przed zastosowaniem wszystkich pozostałych replikowanych skryptów i danych obiektów podczas początkowej synchronizacji. | |
publish_to_ActiveDirectory |
true |
Ten parametr jest przestarzały i obsługiwany tylko dla kompatybilności wstecznej skryptów. Nie można już dodawać informacji o publikacji do Microsoft Active Directory. |
false |
Usuwa informacje o publikacji z Active Directory. | |
queue_type |
sql |
Używaj SQL Server do przechowywania transakcji. Ta własność może być zmieniona tylko wtedy, gdy nie ma aktywnych subskrypcji. Uwaga: Wsparcie dla korzystania z Microsoft Message Queuing zostało zakończone. Określenie wartości dla msmq@value skutkuje błędem. |
redirected_publisher |
Nazwa odbiornika grupy dostępności. Stosowane w replikacji peer-to-peer, gdy peer znajduje się w grupie dostępności. Ta właściwość nie może być zmieniona dla publikacji spoza SQL Server. Wprowadzony w SQL Server 2019 (15.x) CU 13. Więcej informacji można znaleźć w artykule Konfiguruj jednego partnera jako część grupy dostępności lub Konfiguruj oba partnery w grupach dostępności. | |
repl_freq |
continuous |
Publikuje wyniki wszystkich transakcji opartych na logach. |
snapshot |
Publikuje tylko zaplanowane zdarzenia synchronizacyjne. | |
replicate_ddl |
1 |
Instrukcje języka definicji danych (DDL) wykonywane w wydawcy są replikowane. Ta właściwość nie może być zmieniona dla publikacji spoza SQL Server. |
0 |
Instrukcje DDL nie są replikowane. Ta właściwość nie może być zmieniona dla publikacji spoza SQL Server. Replikacja zmian schematu nie może być wyłączona podczas używania replikacji peer-to-peer. | |
replicate_partition_switch |
true |
ALTER TABLE...SWITCH oświadczenia wykonywane na opublikowanej bazie danych powinny być replikowane do subskrybentów. Ta opcja jest prawidłowa tylko wtedy, gdy allow_partition_switch jest ustawiona wartość true. Aby uzyskać więcej informacji, zobacz Replikowanie partycjonowanych tabel i indeksów. |
false |
ALTER TABLE...SWITCH oświadczenia nie powinny być replikowane do Subskrybentów. |
|
retention |
int oznacza okres retencji w godzinach dla aktywności subskrypcyjnej. Jeśli subskrypcja nie jest aktywna w okresie retencyjnym, zostaje usunięta. | |
snapshot_in_defaultfolder |
true |
Pliki snapshotów są przechowywane w domyślnym folderze snapshotów. Jeśli alt_snapshot_folder również jest to określone, pliki snapshotów są przechowywane zarówno w domyślnych, jak i alternatywnych lokalizacjach. |
false |
Pliki migawkowe są przechowywane w alternatywnym miejscu określonym przez alt_snapshot_folder. |
|
status |
active |
Dane publikacji są dostępne dla Subskrybentów natychmiast po utworzeniu publikacji. Nie jest obsługiwane przez Oracle Publishers. |
inactive |
Dane o publikacji nie są dostępne dla Subskrybentów w momencie tworzenia publikacji. Nie jest obsługiwane przez Oracle Publishers. | |
sync_method |
native |
Używa natywnego trybu kopiowania zbiorowego ze wszystkich tabel podczas synchronizacji subskrypcji. |
character |
Używa trybu znakowego kopiowania zbiorczego wyjścia wszystkich tabel podczas synchronizacji subskrypcji. | |
concurrent |
Wykorzystuje natywne kopiowanie programów w trybie natywnym, kopiowanie wszystkich tabel, ale nie blokuje tabel podczas generowania snapshotów. Nie dotyczy replikacji snapshotów. | |
concurrent_c |
Używa kodowania programów w trybie znakowym do kopiowania wszystkich tabel, ale nie blokuje tabel podczas generowania snapshotów. Nie dotyczy replikacji snapshotów. | |
taskid |
Ta własność jest przestarzała i nie jest już wspierana. | |
allow_drop |
true |
Umożliwia DROP TABLE wsparcie DLL dla artykułów będących częścią replikacji transakcyjnej. Minimalna obsługiwana wersja: SQL Server 2014 (12.x) Service Pack 2 lub nowszy oraz SQL Server 2016 (13.x) Service Pack 1 lub nowszy. Więcej informacji można znaleźć w KB 3170123 |
false (ustawienie domyślne) |
Wyłącza DROP TABLE wsparcie DLL dla artykułów będących częścią replikacji transakcyjnej. |
|
NULL (ustawienie domyślne) |
Zwraca listę wspieranych wartości dla @property. |
[ @force_invalidate_snapshot = ] force_invalidate_snapshot
Uznaje, że działanie podjęte przez tę procedurę przechowywaną może unieważnić istniejący migawkę.
@force_invalidate_snapshot jest bitowa z wartością domyślną 0.
-
0określa, że zmiany w artykule nie powodują, że migawka jest nieprawidłowa. Jeśli procedura przechowywana wykryje, że zmiana wymaga nowego snapshota, wystąpi błąd i nie zostaną wprowadzone żadne zmiany. -
1Określa, że zmiany w artykule mogą sprawić, że migawka będzie nieważna. Jeśli istnieją istniejące subskrypcje wymagające nowego snapshota, ta wartość daje pozwolenie na oznaczenie istniejącego snapshota jako przestarzałego i wygenerowanie nowego.
Zobacz sekcję Uwagi dotyczące właściwości, które po zmianie wymagają wygenerowania nowego snapshota.
[ @force_reinit_subscription = ] force_reinit_subscription
Potwierdza, że działanie podjęte przez tę procedurę przechowywaną może wymagać ponownej inicjalizacji istniejących subskrypcji.
@force_reinit_subscription jest bitowa z wartością domyślną 0.
-
0określa, że zmiany w artykule nie powodują ponownego zainicjowania subskrypcji. Jeśli procedura przechowywana wykryje, że zmiana wymagałaby ponownej inicjalizacji istniejących subskrypcji, pojawia się błąd i nie wprowadza się żadnych zmian. -
1Określa, że zmiany w artykule powodują ponowną inicjalizację istniejącej subskrypcji oraz dają zgodę na ponowną inicjałację subskrypcji.
[ @publisher = ] N'publisher'
Określa wydawcę niebędącego SQL Serverem.
@publisher to nazwa systemu, z domyślnym .NULL
@publisher nie powinno być używane przy zmianie właściwości artykułu na SQL Server Publisher.
Zwracanie wartości kodu
0 (powodzenie) lub 1 (niepowodzenie).
Remarks
sp_changepublication jest wykorzystywany w replikacji snapshotów oraz replikacji transakcyjnej.
Po zmianie dowolnej z poniższych właściwości musisz wygenerować nowy migawkę i określić wartość 1 parametru @force_invalidate_snapshot .
alt_snapshot_foldercompress_snapshotenabled_for_het_subftp_addressftp_loginftp_passwordftp_portftp_subdirectorypost_snapshot_scriptpre_snapshot_scriptsnapshot_in_defaultfoldersync_mode
Aby wypisać obiekty publikacji w Active Directory za pomocą parametrupublish_to_active_directory, obiekt SQL Server musi być już utworzony w Active Directory.
Efekt natychmiastowej synchronizacji
Gdy synchronizacja natychmiastowa jest włączona, wszystkie zmiany w logu są śledzone natychmiast po wygenerowaniu początkowego snapshota, nawet jeśli nie ma subskrypcji. Zarejestrowane zmiany są używane, gdy klient korzysta z kopii zapasowej do dodania nowego węzła partnerskiego. Po przywróceniu kopii zapasowej peer jest synchronizowany z innymi zmianami zachodzącymi po wykonaniu kopii zapasowej. Ponieważ polecenia są śledzone w bazie dystrybucji, logika synchronizacji może spojrzeć na ostatni zgromadzony LSN i wykorzystać go jako punkt wyjścia, wiedząc, że polecenie jest dostępne, jeśli kopia zapasowa została wykonana w ramach maksymalnego okresu retencji. (Domyślna wartość minimalnego okresu retencji to 0 godzin, a maksymalny 24 godziny.)
Gdy natychmiastowa synchronizacja jest wyłączona, zmiany są przechowywane co najmniej przez minimalny okres retencji i natychmiast czyszczone dla wszystkich już powielonych transakcji. Jeśli synchronizacja natychmiastowa jest wyłączona i skonfigurowana z domyślnym okresem retencyjnym, prawdopodobnie wymagane zmiany po wykonaniu kopii zapasowej zostały usunięte i nowy węzeł partnerski nie zostanie poprawnie zainicjalizowany. Jedyną opcją jest zawieszenie topologii. Ustawienie natychmiastowej synchronizacji na włączone zapewnia większą elastyczność i jest zalecanym wyborem do replikacji P2P.
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
Tylko członkowie roli stałego serwera systemowego lub stałej db_owner stałej bazy danych mogą wykonywać sp_changepublication.