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
Ten temat opisuje, jak przeglądać i modyfikować właściwości publikacji w SQL Server za pomocą SQL Server Management Studio, Transact-SQL lub Replication Management Objects (RMO).
Ograniczenia i ograniczenia
- Niektóre własności nie mogą być modyfikowane po utworzeniu publikacji, a inne nie mogą być modyfikowane, jeśli istnieją subskrypcje publikacji. Właściwości, których nie można zmienić, są wyświetlane jako tylko do odczytu.
Zalecenia
- Po utworzeniu publikacji niektóre zmiany właściwości wymagają nowej migawki. Jeśli publikacja ma subskrypcje, niektóre zmiany wymagają również ponownego zainicjowania wszystkich subskrypcji. Aby uzyskać więcej informacji, zobacz Zmienianie publikacji i właściwości artykułu oraz Dodawanie artykułów do istniejących publikacji i usuwanie ich z istniejących publikacji.
Korzystanie z programu SQL Server Management Studio
Zobacz i modyfikuj właściwości publikacji w oknie dialogowym Właściwości Publikacji – <Publikacja>, które jest dostępne w SQL Server Management Studio i Monitorze replikacji. Aby uzyskać informacje na temat uruchamiania monitora replikacji, zobacz Uruchamianie monitora replikacji.
Okno dialogowe Właściwości Publikacji - <Publikacja> zawiera następujące strony:
Strona ogólna zawiera nazwę i opis publikacji, nazwę bazy danych, typ publikacji oraz ustawienia wygaśnięcia subskrypcji.
Strona Artykuły odpowiada stronie Artykuły w Kreatorze nowej publikacji. Użyj tej strony do dodawania i usuwania artykułów oraz zmiany właściwości i filtrowania kolumn dla artykułów.
Strona Filtruj wiersze odpowiada stronie Filtruj wiersze tabeli w kreatorze nowej publikacji. Użyj tej strony do dodawania, edytowania i usuwania statycznych filtrów wierszy dla wszystkich typów publikacji oraz do dodawania, edytowania i usuwania parametryzowanych filtrów wierszowych oraz filtrów łączenia dla publikacji scalanych.
Strona Snapshot pozwala określić format i lokalizację snapshota, czy migawka powinna być skompresowana oraz skrypty uruchamiane przed i po jej zastosowaniu.
Strona FTP Snapshot (dla publikacji migawkowych i transakcyjnych oraz publikacji typu merge dla wydawców korzystających z wersji wcześniejszych niż SQL Server 2005) umożliwia określenie, czy subskrybenci mogą pobierać pliki migawki za pośrednictwem protokołu FTP (File Transfer Protocol).
Strona FTP Snapshot i Internet (do łączenia publikacji od wydawców działających na SQL Server 2005 lub nowszych) pozwala określić, czy subskrybenci mogą pobierać pliki snapshot przez FTP oraz czy subskrybenci mogą synchronizować subskrypcje przez HTTPS.
Strona Opcje subskrypcji pozwala ustawić szereg opcji obowiązujących dla wszystkich subskrypcji. Opcje różnią się w zależności od rodzaju publikacji.
Strona Listy Dostępu do Publikacji pozwala określić, które logowania i grupy mają dostęp do publikacji.
Strona Agent Security pozwala uzyskać dostęp do ustawień kont, pod którymi działają poniżsi agenci, oraz nawiązywać połączenia z komputerami w topologii replikacji: Snapshot Agent dla wszystkich publikacji; Log Reader Agent dla wszystkich publikacji transakcyjnych; oraz Queue Reader Agent dla publikacji transakcyjnych umożliwiających kolejkowe aktualizacje subskrypcji.
Strona Data Partitions (w przypadku publikacji scalanych od wydawców korzystających z programu SQL Server 2005 lub nowszego) umożliwia określenie, czy subskrybenci publikacji z filtrami sparametryzowanymi mogą żądać migawki, jeśli nie jest ona dostępna. Umożliwia także generowanie migawek dla jednej bądź wielu partycji, jednorazowo albo zgodnie z harmonogramem cyklicznym.
Aby przeglądać i modyfikować właściwości publikacji w Management Studio
Połącz się z programem Publisher w programie Management Studio, a następnie rozwiń węzeł serwera.
Rozwiń folder Replikacja , a następnie rozwiń folder Publikacje lokalne .
Kliknij prawym przyciskiem myszy na publikację, a następnie kliknij Właściwości.
W razie potrzeby zmodyfikuj wszelkie właściwości, a następnie kliknij przycisk OK.
Aby przeglądać i modyfikować właściwości publikacji w Monitorze Replikacji
Rozwiń grupę Publisher w lewym panelu Monitora replikacji, a następnie rozwiń Publisher.
Kliknij prawym przyciskiem myszy na publikację, a następnie kliknij Właściwości.
W razie potrzeby zmodyfikuj wszelkie właściwości, a następnie kliknij przycisk OK.
Korzystanie z Transact-SQL
Publikacje mogą być modyfikowane, a ich właściwości mogą być programowo pobierane za pomocą procedur składowanych replikacji. Procedury przechowywane, których używasz, zależą od rodzaju publikacji.
Aby zobaczyć właściwości snapshotu lub publikacji transakcyjnej
- Wykonaj sp_helppublication, określając nazwę publikacji dla parametru @publication . Jeśli nie określisz tego parametru, zwracane są informacje o wszystkich publikacjach w Publisher.
Aby zmienić właściwości migawki lub publikacji transakcyjnej
Wykonaj sp_changepublication, określając właściwość publikacji do zmiany parametru @property oraz nową wartość tej właściwości w parametrze @value .
Uwaga / Notatka
Jeśli zmiana będzie wymagała wygenerowania nowego snapshota, musisz również określić wartość 1 dla @force_invalidate_snapshot, a jeśli zmiana będzie wymagać ponownej inicjalizacji Subscribers, musisz określić wartość 1 dla @force_reinit_subscription. Więcej informacji o właściwościach, które po zmianie wymagają nowego snapshotu lub ponownej inicjalizacji, można znaleźć w sekcji Zmień publikację i właściwości artykułu.
Aby wyświetlić właściwości publikacji scalanej
- Wykonaj sp_helpmergepublication, określając nazwę publikacji jako parametr @publication . Jeśli nie określisz tego parametru, zwracane są informacje o wszystkich publikacjach w Publisher.
Aby zmienić właściwości publikacji scalonej
Wykonaj sp_changemergepublication, określając zmianę właściwości publikacji w parametrze @property oraz nową wartość tej właściwości w parametrze @value .
Uwaga / Notatka
Jeśli zmiana będzie wymagać wygenerowania nowego snapshota, musisz również określić wartość 1 dla @force_invalidate_snapshot, a jeśli zmiana będzie wymagać ponownej inicjalizacji subskrybentów, musisz podać wartość 1 dla @force_reinit_subscription Aby uzyskać więcej informacji o właściwościach, które po zmianie wymagają nowego snapshotu lub reinicjalizacji, zobacz Zmień publikację i Właściwości artykułu.
Aby wyświetlić właściwości migawki
- Wykonaj sp_helppublication_snapshot, określając nazwę publikacji jako parametr @publication .
Aby zmienić właściwości migawki
- Wykonaj sp_changepublication_snapshot, określając jedną lub więcej nowych właściwości snapshotu dla odpowiednich parametrów snapshotu.
Przykłady (Transact-SQL)
Ten przykład replikacji transakcyjnej zwraca właściwości publikacji.
DECLARE @myTranPub AS sysname
SET @myTranPub = N'AdvWorksProductTran'
USE [AdventureWorks2022]
EXEC sp_helppublication @publication = @myTranPub
GO
Ten przykład replikacji transakcyjnej wyłącza replikację schematu dla publikacji.
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
W tym przykładzie replikacji scalającej zwracane są właściwości publikacji.
DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
USE [AdventureWorks2022]
EXEC sp_helpmergepublication @publication = @publication;
GO
Ten przykład replikacji złączonej wyłącza replikację schematu w publikacji.
DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
-- Disable DDL replication for the publication.
USE [AdventureWorks2022]
EXEC sp_changemergepublication
@publication = @publication,
@property = N'replicate_ddl',
@value = 0,
@force_invalidate_snapshot = 0,
@force_reinit_subscription = 0;
GO
Korzystanie z obiektów zarządzania replikacją (RMO)
Możesz modyfikować publikacje i programowo uzyskiwać dostęp do ich właściwości, korzystając z Obiektów Zarządzania Replikacją (RMO). Klasy RMO, których używasz do przeglądania lub modyfikowania właściwości publikacji, zależą od rodzaju publikacji.
Aby zobaczyć lub modyfikować właściwości migawki lub publikacji transakcyjnej
Utwórz połączenie z programem Publisher przy użyciu klasy ServerConnection.
Utwórz instancję klasy TransPublication, ustaw właściwości Name i DatabaseName dla publikacji oraz ustaw właściwość ConnectionContext na połączenie utworzone w kroku 1.
Wywołaj metodę LoadProperties, aby uzyskać właściwości obiektu. Jeśli ta metoda zwraca false, właściwości publikacji w kroku 2 zostały niepoprawnie zdefiniowane lub publikacja nie istnieje.
(Opcjonalnie) Aby zmienić właściwości, ustaw nową wartość dla jednej lub więcej z właściwości, które można ustawić. Użyj logicznego operatora AND (& w Microsoft Visual C# oraz And w Microsoft Visual Basic), aby określić, czy dla właściwości ustawiono wartość . Użyj inkluzywnego logicznego operatora OR (|w Visual C# i Or w Visual Basic) oraz wyłącznego operatora logicznego OR (^w Visual C# i Xor w Visual Basic), aby zmienić PublicationAttributes wartości dla tej Attributes właściwości.
(Opcjonalnie) Jeśli określiłeś wartość true dla CachePropertyChanges, wywołaj metodę CommitPropertyChanges zatwierdzania zmian na serwerze. Jeśli określiłeś wartość false dla CachePropertyChanges (domyślnie), zmiany są natychmiast wysyłane na serwer.
Aby zobaczyć lub modyfikować właściwości publikacji scalonej
Utwórz połączenie z programem Publisher przy użyciu klasy ServerConnection.
Utwórz instancję klasy MergePublication, ustaw właściwości Name i DatabaseName dla publikacji oraz ustaw właściwość ConnectionContext na połączenie utworzone w kroku 1.
Wywołaj metodę LoadProperties, aby uzyskać właściwości obiektu. Jeśli ta metoda zwraca false, właściwości publikacji w kroku 2 zostały niepoprawnie zdefiniowane lub publikacja nie istnieje.
(Opcjonalnie) Aby zmienić właściwości, ustaw nową wartość dla jednej lub więcej z właściwości, które można ustawić. Użyj operatora logicznego AND (& w Visual C# oraz And w Visual Basic), aby określić, czy określona wartość jest ustawiona dla właściwości . Użyj inkluzywnego logicznego operatora OR (|w Visual C# i Or w Visual Basic) oraz wyłącznego operatora logicznego OR (^w Visual C# i Xor w Visual Basic), aby zmienić PublicationAttributes wartości dla tej Attributes właściwości.
(Opcjonalnie) Jeśli określiłeś wartość true dla CachePropertyChanges, wywołaj metodę CommitPropertyChanges zatwierdzania zmian na serwerze. Jeśli określiłeś wartość false dla CachePropertyChanges (domyślnie), zmiany są natychmiast wysyłane na serwer.
Przykłady (RMO)
Ten przykład ustala atrybuty publikacji dla publikacji transakcyjnej. Zmiany są przechowywane w pamięci podręcznej, dopóki nie zostaną wysłane bezpośrednio na serwer.
// Define the server, database, and publication names
string publisherName = publisherInstance;
string publicationName = "AdvWorksProductTran";
string publicationDbName = "AdventureWorks2022";
TransPublication publication;
// Create a connection to the Publisher.
ServerConnection conn = new ServerConnection(publisherName);
try
{
// Connect to the Publisher.
conn.Connect();
// Set the required properties for the publication.
publication = new TransPublication();
publication.ConnectionContext = conn;
publication.Name = publicationName;
publication.DatabaseName = publicationDbName;
// Explicitly enable caching of property changes on this object.
publication.CachePropertyChanges = true;
// If we can't get the properties for this publication,
// throw an application exception.
if (publication.LoadProperties())
{
// Enable support for push subscriptions and disable support
// for pull subscriptions.
if ((publication.Attributes & PublicationAttributes.AllowPull) != 0)
{
publication.Attributes ^= PublicationAttributes.AllowPull;
}
if ((publication.Attributes & PublicationAttributes.AllowPush) == 0)
{
publication.Attributes |= PublicationAttributes.AllowPush;
}
// Send changes to the server.
publication.CommitPropertyChanges();
}
else
{
throw new ApplicationException(String.Format(
"Settings could not be retrieved for the publication. " +
"Ensure that the publication {0} exists on {1}.",
publicationName, publisherName));
}
}
catch (Exception ex)
{
// Do error handling here.
throw new ApplicationException(
"The publication property could not be changed.", ex);
}
finally
{
conn.Disconnect();
}
' Define the server, database, and publication names
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksProductTran"
Dim publicationDbName As String = "AdventureWorks2022"
Dim publication As TransPublication
' Create a connection to the Publisher.
Dim conn As ServerConnection = New ServerConnection(publisherName)
Try
' Connect to the Publisher.
conn.Connect()
' Set the required properties for the publication.
publication = New TransPublication()
publication.ConnectionContext = conn
publication.Name = publicationName
publication.DatabaseName = publicationDbName
' Explicitly enable caching of property changes on this object.
publication.CachePropertyChanges = True
' If we can't get the properties for this publication,
' throw an application exception.
If publication.LoadProperties() Then
' Enable support for push subscriptions and disable support
' for pull subscriptions.
If (publication.Attributes And PublicationAttributes.AllowPull) <> 0 Then
publication.Attributes = publication.Attributes _
Xor PublicationAttributes.AllowPull
End If
If (publication.Attributes And PublicationAttributes.AllowPush) = 0 Then
publication.Attributes = publication.Attributes _
Or PublicationAttributes.AllowPush
End If
' Send changes to the server.
publication.CommitPropertyChanges()
Else
Throw New ApplicationException(String.Format( _
"Settings could not be retrieved for the publication. " + _
"Ensure that the publication {0} exists on {1}.", _
publicationName, publisherName))
End If
Catch ex As Exception
' Do error handling here.
Throw New ApplicationException( _
"The publication property could not be changed.", ex)
Finally
conn.Disconnect()
End Try
Ten przykład wyłącza replikację DDL dla publikacji scalanej.
// Define the server, database, and publication names
string publisherName = publisherInstance;
string publicationName = "AdvWorksSalesOrdersMerge";
string publicationDbName = "AdventureWorks2022";
MergePublication publication;
// Create a connection to the Publisher.
ServerConnection conn = new ServerConnection(publisherName);
try
{
// Connect to the Publisher.
conn.Connect();
// Set the required properties for the publication.
publication = new MergePublication();
publication.ConnectionContext = conn;
publication.Name = publicationName;
publication.DatabaseName = publicationDbName;
// If we can't get the properties for this merge publication, then throw an application exception.
if (publication.LoadProperties())
{
// If DDL replication is currently enabled, disable it.
if (publication.ReplicateDdl == DdlReplicationOptions.All)
{
publication.ReplicateDdl = DdlReplicationOptions.None;
}
else
{
publication.ReplicateDdl = DdlReplicationOptions.All;
}
}
else
{
throw new ApplicationException(String.Format(
"Settings could not be retrieved for the publication. " +
"Ensure that the publication {0} exists on {1}.",
publicationName, publisherName));
}
}
catch (Exception ex)
{
// Do error handling here.
throw new ApplicationException(
"The publication property could not be changed.", ex);
}
finally
{
conn.Disconnect();
}
' Define the server, database, and publication names
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publicationDbName As String = "AdventureWorks2022"
Dim publication As MergePublication
' Create a connection to the Publisher.
Dim conn As ServerConnection = New ServerConnection(publisherName)
Try
' Connect to the Publisher.
conn.Connect()
' Set the required properties for the publication.
publication = New MergePublication()
publication.ConnectionContext = conn
publication.Name = publicationName
publication.DatabaseName = publicationDbName
' If we can't get the properties for this merge publication, then throw an application exception.
If publication.LoadProperties() Then
' If DDL replication is currently enabled, disable it.
If publication.ReplicateDdl = DdlReplicationOptions.All Then
publication.ReplicateDdl = DdlReplicationOptions.None
Else
publication.ReplicateDdl = DdlReplicationOptions.All
End If
Else
Throw New ApplicationException(String.Format( _
"Settings could not be retrieved for the publication. " + _
"Ensure that the publication {0} exists on {1}.", _
publicationName, publisherName))
End If
Catch ex As Exception
' Do error handling here.
Throw New ApplicationException( _
"The publication property could not be changed.", ex)
Finally
conn.Disconnect()
End Try
Treści powiązane
- Publikowanie danych i obiektów bazy danych
- Zmiana publikacji i właściwości artykułu
- Wprowadzanie zmian schematu w bazach danych publikacji
- Pojęcia dotyczące procedur składowanych w systemie replikacji
- Dodaj artykuły do publikacji i usuń je z publikacji
- Wyświetlanie informacji i wykonywanie zadań przy użyciu monitora replikacji
- Wyświetlanie i modyfikowanie właściwości artykułu