Udostępnij za pośrednictwem


Breaking Changes in SQL Server Replication

W tym temacie opisano zmiany podziału SQL Server Replikacja. Te zmiany może spowodować uszkodzenie aplikacji, skryptów lub funkcje, które są oparte na starszych wersjach SQL Server. Te problemy mogą wystąpić podczas uaktualniania.Aby uzyskać więcej informacji zobaczUsing Upgrade Advisor to Prepare for Upgrades.

Przerywanie zmian wykonanych w programie SQL Server 2005 i SQL Server 2008

W tej sekcji opisano z ostatniej chwili zmiany w funkcji replikacja, które zostały wprowadzone w danych SQL Server 2005 lub SQL Server 2008.

Przerywanie zmiany, których dotyczy wszystkie typy replikacja

Następujące zmiany podziału są stosowane do wszystkich typów replikacja.

Funkcja

Description

Zmiany wymagane do replikacja skryptów

Model replikacja agenta zabezpieczeń zmienił się z SQL Server 2000. Aby uzyskać szczegółowe informacje na temat modelu zabezpieczeń Zobacz Replication Agent Security Model. Jeśli użytkownik element członkowski roli sysadmin serwera stałych w SQL Server 2005 Podczas wykonywania replikacja skrypty utworzone na podstawie SQL Server 2000 lub SQL Server 7.0, skrypty wykonane poprawnie. Jeśli jest się członkiem roli dbo stałej bazy danych lub innej roli, fail skryptów i muszą zostać uaktualnione.Aby uzyskać informacje dotyczące uaktualniania skryptów zobacz How to: Upgrade Replication Scripts (Replication Transact-SQL Programming). Chociaż nie jest to wymagane, aby uaktualnić skryptów, które są wykonywane przez członków roli sysadmin, zalecane jest w celu zawiera ulepszenia zabezpieczeń.

Lokalne połączenia dla replikacja agentów

Na uaktualnienie SQL Server 2005, połączeń lokalnych, które używają SQL Server uwierzytelnianie są modyfikowane do korzystania z uwierzytelnianie systemu Windows. Połączenia lokalne są tych połączeń dokonanych przez agenta do wystąpienie SQL Server uruchomiona na tym samym komputerze, co agent. Na przykład Agent Scal subskrypcja ściąganej jest uruchamiany przez subskrybent, tak, aby połączenia dokona subskrybent są połączeń lokalnych.

W poprzednich wersjach SQL Server, agenci uruchomiono w kontekście domyślnie SQL Server Konto usługa agenta. After upgrade, local connections are made under the context of this account.SQL Server 2005 allows fine-grained control over each account under which the replication agents run and make Windows Integrated connections to databases and other resources; a different account can be specified for each agent.Po uaktualnieniu zaleca się określenie różnych kont dla każdego agenta.Aby uzyskać więcej informacji zobacz Considerations for Upgrading Replicated Databases i Replication Agent Security Model.

Formanty ActiveX

Wszystkie formanty ActiveX są oznaczone jako niebezpieczne do tworzenia wykonywanie wykonywanie skryptów i inicjowania.

Formantu ActiveX programu migawka Agent nie jest dostępny w SQL Server 2005. Należy stosować nowe zarządzane Agent migawka.Aby uzyskać więcej informacji zobacz SnapshotGenerationAgent i Jak Tworzenie migawka początkowy (Programowanie RMO).

Hasło dla konta distributor_admin

Zaufanego połączenia między wydawcę i dystrybutor zdalny są już obsługiwane, ponieważ nie wymagają hasła (zaufanego połączenia były używane domyślnie w wersjach wcześniejszych niż SQL Server 2000 Dodatek usługa Pack 3). Jeśli korzystasz z dystrybutor zdalnych, przed uaktualnieniem do SQL Server 2005, konwertowanie zaufanego połączenia bez zaufanego połączenia (ten problem nie dotyczy wydawcy, korzystające z lokalnego dystrybutor). Aby uzyskać więcej informacji o koncie distributor_admin zobacz Securing the Distributor.

Aby określić typ połączenia używany

  • wykonać sp_helpdistpublisher u dystrybutor.W przypadku wartości kolumna zaufanych 1, należy zmienić na różna-zaufane połączenie.

Aby zmienić do połączenia nie zaufany

  1. wykonać sp_changedistpublisher na Dystrybutor, określając wartość 'zaufany' dla parametru @ właściwość i wartość dla parametru @ wartości "false".

    NoteNote:
    Niektóre wersje SQL Server 2000 Książki online nie należy podawać 'zaufany' jako prawidłowa wartość dla właściwość @. Obowiązuje dla wszystkich SQL Server 2000 zwalnia.
  2. wykonać sp_changedistributor_password zarówno Wydawca, jak i dystrybutor, określenie silnego hasła dla parametru @ hasła.

SQL Server Express nie zawiera SQL Server Agent

W przypadku uaktualniania do SQL Server Express, ponieważ należy ponownie skonfigurować Synchronizacja replikacja SQL Server Express nie zawiera SQL Server Agent.

Jeśli chcesz korzystać z subskrypcji ściąganej należy zsynchronizować je za pomocą obiektów zarządzania replikacja (RMO), Menedżer synchronizacji systemu Windows, lub przez uruchamianie agenta replikacja w wierszu polecenia.Aby uzyskać więcej informacji zobaczReplikujących dane do programu SQL Server Express.

Jeśli chcesz w dalszym ciągu używać SQL Server Agent do uruchamiania replikacja agenta zadania, należy użyć subskrypcji wypychanych lub uaktualnić do innej wersja SQL Server (wszystkie wersje oprócz wersja SQL Server Express i SQL Server Compact 3.5 SP1 Dołącz SQL Server Agent). Z wypychanie subskrypcji, Agent dystrybucji lub Scal Agent jest uruchamiana na Dystrybutor, więc SQL Server Agent jest dostępna)SQL Server Express nie może być dystrybutorem).

Microsoft Subskrybenci dostępu (dla aparatu Jet 4.0)

Aparat Jet jest podstawowej bazy danych, używany w programie Access, a replikacja obsługiwana subskrypcji do bazy danych Jet w SQL Server 2000. Te subskrypcje są już obsługiwane.

Zalecane jest użycie SQL Server Express w zamian. Można użyć dostępu SQL Server bazy danych zaplecza, a SQL Server bazy danych nie są zagrożone tym problemem. Aby uzyskać więcej informacji zobaczReplikujących dane do programu SQL Server Express.

Zmiany na złamanie dla transakcji replikacja

Następujące zmiany podziału są stosowane do replikacja transakcyjnej.

Funkcja

Description

Inicjowanie transakcji subskrypcja z kopia zapasowa1

Aby zainicjować subskrypcja z kopia zapasowa w SQL Server 2008, użytkownik musi należeć do roli serwera dbcreator. W SQL Server 2005, członkostwo w rola bazy danych db_owner była wystarczająca.

Aby uzyskać więcej informacji dotyczących sposobu inicjowania subskrypcja z kopia zapasowa zobacz Inicjowanie transakcji subskrypcja bez migawka.

Opcja kolejkowanie wiadomości w kolejce subskrypcja aktualizacji

W kolejce subskrypcji aktualizacji zmiany wprowadzone przez subskrybentów są zapisywane do kolejki, zmiany są odczytywane z kolejki i dostarczane do Wydawca przez agenta Reader kolejki.W SQL Server 2000, subskrypcji można korzystać SQL Server kolejki lub do zmiany kolejki kolejkowanie wiadomości. Określono typ kolejki z parametrem @ queue_type. sp_addpublication, których dozwolone wartości sql i usługa MSMQ (usługa MSMQ).W SQL Server 2005, dozwolona jest tylko wartość sql. Istniejących publikacji, które korzystają z kolejkowanie wiadomości zostaną zmienione podczas uaktualniania do używania SQL Server kolejka. Jeśli aplikacje zależne kolejce uaktualniania kolejkowanie wiadomości, aplikacje te trzeba ponownie zapisywane, tak być przechowywały do umieszczenia SQL Server kolejka. Aby uzyskać więcej informacji o subskrypcji aktualizacji w kolejce zobacz Można aktualizować subskrypcji dla transakcji replikacja.

Uaktualnienie spowoduje usunięcie istniejących kolejek subskrypcja kolejkowanie wiadomości, jeśli kolejkowanie wiadomości jest uruchomiona podczas SQL Server Trwa uaktualnianie.

Important noteImportant Note:
W systemie Windows 2000 i Windows XP Microsoft Dystrybuowane koordynatora transakcji (MSDTC) również musi być uruchomiona usługa, ponieważ kolejkowanie wiadomości wymaga usługi MSDTC na tych platformach.

Jeśli nie jest uruchomiona kolejkowanie wiadomości, usunąć kolejek ręcznie po zakończeniu uaktualnienia.Aby uzyskać więcej informacji dotyczących usuwania kolejek Zobacz w dokumentacji systemu Windows.

Zmień na wywołanie formatu w celu zaktualizowania subskrypcji

Domyślnie zestaw procedur przechowywanych jest wykorzystywany przy stosowaniu zmian do subskrybentów w replikacja transakcyjnej.Każda procedura ma format rozmowy.Format ten określa, w jaki sposób parametry są przekazywane do procedury i ilość danych, które są wysyłane do subskrybent.W SQL Server 2000, domyślnym formatem jest Wywołaj. W SQL Server 2005 i SQL Server 2008, domyślnym formatem jest VCALL.

Ta zmiana wpływa tylko na topologii, w którym zostały dostosowane procedur przechowywanych.Po uaktualnieniu można zmienić podpis dostosowaną procedurę, aby uwzględnić dodatkowe parametry.W przeciwnym razie dystrybucji agenta nie powiedzie się.

1 Ten problem dotyczy tylko SQL Server 2008 i jego nowszych wersjach.

Zmiany na złamanie dla replikacja łączenia

Następujące zmiany podziału są stosowane do scalania replikacja.

Funkcja

Description

Publikowanie z SQL Server Express

SQL Server MSDE może służyć jako wydawca dla publikacji korespondencji seryjnej.SQL Server Express, zastąpienie dla programu MSDE, nie serwera jako wydawca.To może subskrybować transakcyjnych, korespondencji seryjnej i publikacje migawka.replikacja łączenia i replikacji transakcyjnej aktualizacji jednocześnie możliwość wprowadzania zmian do być propagowane z subskrybenci subskrypcji z powrotem do Wydawca.Aby uzyskać więcej informacji na temat replikowania SQL Server Express, zobacz Replikujących dane do programu SQL Server Express.

tworzenie plików wsadowych zmian

W poprzednich wersjach SQL Server, zmiany wprowadzone przez agenta korespondencji seryjnej były wykonywane na podstawie wiersz po wierszu. W SQL Server 2005, zmiany są batched w celu zwiększenia wydajności; dlatego więcej niż jeden wiersz mogą być wstawiane, aktualizowane lub usunięte w ramach pojedynczej instrukcja. Jeśli wszystkich opublikowanych tabel w publikacja lub subskrypcja bazy danych wyzwalacze, upewnij się, że wyzwalacze mogą obsługiwać multi-row wstawia, aktualizacje i usuwanie.Aby uzyskać więcej informacji zobaczMultirow Considerations for DML Triggers.

Odtwarzanie tabele konfliktów

Na uaktualnienie SQL Server 2005, konflikt tabele są utworzony ponownie z DBO ich właścicielem. Jeśli tabele zostały własnością innych użytkowników pocztą SQL Server 2000, aplikacja może być konieczne do zmodyfikowania.

replikacja łączenia tworzy tabela konfliktów dla każdego artykuł w publikacja, o nazwie w postaci conflict_PublicationName_ArticleName.Wszystkie tabele metadane są ponownie tworzone na uaktualnienie, a wszystkie tabele konfliktów są tworzone w schemacie DBO.

Nowe zakresy tożsamość przypisana

Dla tabel za pomocą automatycznego tożsamości zakres zarządzania replikacja może przypisać nowego zakresu tożsamości podczas uaktualniania.Jeśli wszystkie tabele mają większy zakres tożsamość przypisana do subskrybent niż do Wydawca, replikacja przypisuje zakres równa subskrybent Wydawca.

Aby określić zakresy używany dla każdego artykuł, należy wykonać sp_helpmergearticle publikacja bazy danych i wyboru pub_identity_range i identity_range kolumn.