Udostępnij za pośrednictwem


Zagadnienia dotyczące replikacji scalania

Istnieje kilka zagadnienia dotyczące replikacja scalająca:

  • Dodanie uniqueidentifier kolumna do opublikowanych tabel.

  • Sygnatura czasowa kolumny.

  • Typy danych dużego obiektu (LOB).

  • Wstawianie danych do tabel opublikowanych luzem.

  • Poziom zgodności publikacji.Aby uzyskać więcej informacji zobacz "Zgodność poziomu dla scalone publikacje" sekcja W topologii replikacji przy użyciu wielu wersji programu SQL Server.

Dodanie uniqueidentifier kolumny

replikacja scalająca używa kolumna unikatowy identyfikator globalny (GUID) do identyfikują każdy wiersz w trakcie replikacja scalająca.Jeśli opublikowane tabela nie ma uniqueidentifier dodaje jedną kolumna z właściwość ROWGUIDCOL i indeks unikatowy, replikacja.Upewnij się, że wybierz i WSTAW instrukcje, odwołujące się do opublikowanych tabel za pomocą kolumna list.Jeśli tabela jest już opublikowany, replikacja dodawane kolumna jest usuwany z kolumna; Jeśli kolumna już istnieje, nie jest usuwany.

Sygnatura czasowa kolumn

Scalanie replikacja obsługuje sygnatury czasowej kolumny.Sygnatury czasowej kolumna jest replikowana, ale literał sygnatury czasowej wartości nie są.Sygnatury czasowej wartości są generowane po zastosowaniu subskrybent migawka.Ponieważ sygnatury czasowej wartości są generowane przez subskrybenta sygnatury czasowej kolumny są odfiltrowywane przy sprawdzaniu poprawności artykuł.

Duże typy danych obiektu (LOB)

Jeśli opublikowane tabela zawiera wszelkie obiektów LOB, zaleca się określić wartość TRUE dla @ stream_blob_columns parametr sp_addmergearticle (języka Transact-SQL).Jeśli PRAWDA nie jest określony, cały LOB musi wbudowane w pamięci przez wydawcę, co może spowodować Wydawca uruchomienie z pamięci RAM, jeśli obiektu LOB jest bardzo duży.

Ważna informacjaWażne:

Włączanie Optymalizacja pamięci mogą przeciążać wydajności agenta scalić podczas synchronizacji.Ta opcja powinna być używana tylko w podczas replikowania kolumny zawierające megabajtów danych.

Aktualizuje text, ntext, i image kolumny są replikowane tylko, jeśli kolumna została zaktualizowana jawnie przez AKTUALIZACJĘ instrukcja: Aktualizacja powoduje, że wyzwalacz ognia aktualizacji metadane, zapewniając, że transakcja jest przenoszone do innych subskrybentów.Używając tylko operacje WRITETEXT i UPDATETEXT nie propaguje zmiany do innych witryn.Jeśli aplikacja używa do aktualizacji WRITETEXT i UPDATETEXT text lub ntext kolumny, jawne dodanie manekina instrukcja UPDATE po operacji WRITETEXT lub UPDATETEXT w obrębie tej samej transakcji ogniem wyzwalacz i pozwala zagwarantować, że zmiany są propagowane do innych witryn.Aby uzyskać więcej informacji dotyczących tych typów danych, zobacz ntext, text i image (Transact-SQL).

Ostrzeżenie

Zalecane użycie typów danych varchar(max), nvarchar(max), varbinary(max) zamiast text, ntext, i image typy danych, odpowiednio.

Wstawianie danych do tabel opublikowanych luzem

replikacja scalania śledzi zmiany do opublikowanej tabel przy użyciu wyzwalaczy i tabele systemowe.Jeśli jakieś zbiorczym wstawianiem danych przy użyciu bcp narzędzie lub luzem WSTAW polecenie, domyślnie nie uruchamiaj wyzwalaczy.Jeśli nie uruchamiaj wyzwalaczy, wstawia nie są śledzone i nie są propagowane do innych węzłów.W celu zapewnienia śledzone zmiany, zaleca się, użyj jednej z następujących podejść podczas wykonywania masowych wstawia:

  • Użyj opcji FIRE_TRIGGERS bcp narzędzia lub polecenia WSTAW luzem.Ta opcja zapewnia wyzwalacze są opalane jak byłyby operacji wstawiania typowej.Aby uzyskać więcej informacji, zobacz Narzędzie bcp i BULK INSERT (Transact-SQL).

  • Wykonaj procedura składowana sp_addtabletocontents po wykonaniu zbiorczego Wstaw.Ta procedura wstawia odwołania do tabele systemowe dla wszystkich wierszy w źródło tabela, które nie są aktualnie włączone.Aby uzyskać więcej informacji, zobacz sp_addtabletocontents (języka Transact-SQL).