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 artykułów 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
Przeglądaj i modyfikuj właściwości artykułu w oknie dialogowym Właściwości Publikacji – <Publikacja>, które jest dostępne w Microsoft SQL Server Management Studio oraz Monitorze Replikacji. Aby uzyskać informacje na temat uruchamiania monitora replikacji, zobacz Uruchamianie monitora replikacji.
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 artykułu
Na stronie Artykuły w oknie dialogowym Właściwości publikacji - <Publikacja> wybierz artykuł, a następnie kliknij Właściwości artykułu.
Wybierz, do których zmian właściwości artykułów powinny się odnieść:
Kliknij Ustaw właściwości podświetlonego <typu obiektu>, aby uruchomić okno dialogowe Właściwości artykułu - <Nazwa> obiektu; zmiany właściwości dokonane w tym oknie dialogowym są stosowane tylko do obiektu podświetlonego w panelu obiektów na stronie Artykuły.
Kliknij Ustaw właściwości wszystkich artykułów <ObjectType>, aby otworzyć okno dialogowe Właściwości wszystkich artykułów <ObjectType>; zmiany właściwości wprowadzone w tym oknie dialogowym są stosowane do wszystkich obiektów tego typu w panelu obiektów na stronie Artykuły, w tym również do tych, które nie zostały jeszcze wybrane do publikacji.
Uwaga / Notatka
Zmiany właściwości dokonane w oknie dialogowym Właściwości dla wszystkich <artykułów typu obiektu> nadpisują wszelkie wcześniejsze zmiany w oknie Właściwości artykułu - <Nazwa obiektu>. Jeśli na przykład chcesz ustawić liczbę domyślnych wartości dla wszystkich artykułów danego typu obiektu, ale także ustawić niektóre właściwości dla poszczególnych obiektów, najpierw ustaw domyślne dla wszystkich artykułów. Następnie ustaw właściwości dla poszczególnych obiektów.
W razie potrzeby zmodyfikuj wszelkie właściwości, a następnie kliknij przycisk OK.
Kliknij OK w oknie dialogowym Właściwości publikacji - <Publikacja> .
Korzystanie z Transact-SQL
Artykuły mogą być modyfikowane, a ich właściwości mogą być pobierane programowo za pomocą procedur składowanych replikacji. Procedury przechowywane, których używasz, zależą od rodzaju publikacji, do której należy artykuł.
Aby wyświetlić właściwości artykułu należącego do publikacji migawkowej lub transakcyjnej
Wykonaj sp_helparticle, określając nazwę publikacji dla parametru
@publicationoraz nazwę artykułu dla parametru@article. Jeśli nie określisz@article, zostaną zwrócone informacje o wszystkich artykułach w publikacji.Wykonaj sp_helparticlecolumns dla artykułów opartych na tabelach, aby wyświetlić wszystkie kolumny dostępne w tabeli bazowej.
Aby zmodyfikować właściwości artykułu należącego do publikacji migawkowej lub transakcyjnej
Wykonaj sp_changearticle, podając w parametrze
@propertywłaściwość artykułu, która ma zostać zmieniona, a w parametrze@valuenową wartość tej właściwości.Uwaga / Notatka
Jeśli zmiana wymaga wygenerowania nowej migawki, musisz również określić wartość
1dla@force_reinit_subscription, a jeśli zmiana wymaga ponownej inicjalizacji subskrybentów, musisz również określić wartość1dla@force_invalidate_snapshot. 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 artykułu należącego do publikacji scalanej
Wykonaj sp_helpmergearticle, określając nazwę publikacji dla parametru
@publicationoraz nazwę artykułu dla parametru@article. Jeśli nie określisz tych parametrów, informacje zostaną zwrócone dla wszystkich artykułów w publikacji lub u wydawcy.Wykonaj sp_helpmergearticlecolumn dla artykułów typu tabela, aby wyświetlić listę wszystkich kolumn dostępnych w tabeli bazowej.
Aby zmodyfikować właściwości artykułu należącego do publikacji scalonej
Wykonaj sp_changemergearticle, określając właściwość artykułu, która jest zmieniana, w parametrze
@property, oraz nową wartość tej właściwości w parametrze@value.Uwaga / Notatka
Jeśli zmiana wymaga wygenerowania nowej migawki, musisz również określić wartość
1dla@force_reinit_subscription, a jeśli zmiana wymaga ponownej inicjalizacji subskrybentów, musisz również określić wartość1dla@force_invalidate_snapshot. 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.
Przykład (Transact-SQL)
Ten przykład replikacji transakcyjnej zwraca właściwości opublikowanego artykułu.
DECLARE @publication AS sysname;
SET @publication = N'AdvWorksProductTran';
USE [AdventureWorks2022]
EXEC sp_helparticle
@publication = @publication;
GO
Ten przykład replikacji transakcyjnej zmienia opcje schematu opublikowanego artykułu.
DECLARE @publication AS sysname;
DECLARE @article AS sysname;
DECLARE @option AS int;
SET @publication = N'AdvWorksProductTran';
SET @article = N'Product';
SET @option = (SELECT CAST(0x0000000002030073 AS int));
-- Change the schema options to replicate schema with XML.
USE [AdventureWorks2022]
EXEC sp_changearticle
@publication = @publication,
@article = @article,
@property = N'schema_option',
@value = @option,
@force_invalidate_snapshot = 1;
GO
Ten przykład replikacji scalania zwraca właściwości opublikowanego artykułu.
DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
USE [AdventureWorks2022]
EXEC sp_helpmergearticle
@publication = @publication;
GO
Ten przykład replikacji merge zmienia ustawienia wykrywania konfliktów w opublikowanym artykule.
DECLARE @publication AS sysname;
DECLARE @article AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @article = N'SalesOrderHeader';
-- Enable column-level conflict tracking.
-- Changing this property requires that existing subscriptions
-- be reinitialized and that a new snapshot be generated.
USE [AdventureWorks2022]
EXEC sp_changemergearticle
@publication = @publication,
@article = @article,
@property = N'column_tracking',
@value = N'true',
@force_invalidate_snapshot = 1,
@force_reinit_subscription = 1;
GO
Korzystanie z obiektów zarządzania replikacją (RMO)
Możesz modyfikować artykuły 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 artykułów, zależą od rodzaju publikacji, do której artykuł należy.
Wyświetlanie lub modyfikowanie właściwości artykułu należącego do publikacji migawkowej lub transakcyjnej
Utwórz połączenie z programem Publisher przy użyciu klasy ServerConnection.
Utwórz wystąpienie klasy TransArticle.
Ustaw właściwości Name, PublicationNamei DatabaseName.
Ustaw połączenie z kroku 1 dla właściwości ConnectionContext.
Wywołaj metodę LoadProperties, aby uzyskać właściwości obiektu. Jeśli ta metoda zwraca false, właściwości artykułu w kroku 3 zostały niepoprawnie zdefiniowane lub artykuł nie istnieje.
(Opcjonalnie) Aby zmienić właściwości, ustaw nową wartość dla jednej z właściwości, TransArticle którą można ustawić.
(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 zmodyfikować właściwości artykułu należącego do publikacji scalonej
Utwórz połączenie z programem Publisher przy użyciu klasy ServerConnection.
Utwórz wystąpienie klasy MergeArticle.
Ustaw właściwości Name, PublicationNamei DatabaseName.
Ustaw połączenie z kroku 1 dla właściwości ConnectionContext.
Wywołaj metodę LoadProperties, aby uzyskać właściwości obiektu. Jeśli ta metoda zwraca false, właściwości artykułu w kroku 3 zostały niepoprawnie zdefiniowane lub artykuł nie istnieje.
(Opcjonalnie) Aby zmienić właściwości, ustaw nową wartość dla jednej z właściwości, MergeArticle którą można ustawić.
(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ład (RMO)
Ten przykład zmienia artykuł merge, aby określić program obsługi logiki biznesowej używany przez ten artykuł.
// Define the Publisher, publication, and article names.
string publisherName = publisherInstance;
string publicationName = "AdvWorksSalesOrdersMerge";
string publicationDbName = "AdventureWorks2022";
string articleName = "SalesOrderHeader";
// Set the friendly name of the business logic handler.
string customLogic = "OrderEntryLogic";
MergeArticle article = new MergeArticle();
// Create a connection to the Publisher.
ServerConnection conn = new ServerConnection(publisherName);
try
{
// Connect to the Publisher.
conn.Connect();
// Set the required properties for the article.
article.ConnectionContext = conn;
article.Name = articleName;
article.DatabaseName = publicationDbName;
article.PublicationName = publicationName;
// Load the article properties.
if (article.LoadProperties())
{
article.ArticleResolver = customLogic;
}
else
{
// Throw an exception of the article does not exist.
throw new ApplicationException(String.Format(
"{0} is not published in {1}", articleName, publicationName));
}
}
catch (Exception ex)
{
// Do error handling here and rollback the transaction.
throw new ApplicationException(String.Format(
"The business logic handler {0} could not be associated with " +
" the {1} article.",customLogic,articleName), ex);
}
finally
{
conn.Disconnect();
}
' Define the Publisher, publication, and article names.
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publicationDbName As String = "AdventureWorks2022"
Dim articleName As String = "SalesOrderHeader"
' Set the friendly name of the business logic handler.
Dim customLogic As String = "OrderEntryLogic"
Dim article As MergeArticle = New MergeArticle()
' 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 article.
article.ConnectionContext = conn
article.Name = articleName
article.DatabaseName = publicationDbName
article.PublicationName = publicationName
' Load the article properties.
If article.LoadProperties() Then
article.ArticleResolver = customLogic
Else
' Throw an exception of the article does not exist.
Throw New ApplicationException(String.Format( _
"{0} is not published in {1}", articleName, publicationName))
End If
Catch ex As Exception
' Do error handling here and rollback the transaction.
Throw New ApplicationException(String.Format( _
"The business logic handler {0} could not be associated with " + _
" the {1} article.", customLogic, articleName), ex)
Finally
conn.Disconnect()
End Try