Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
W tym temacie opisano sposób tworzenia subskrypcji dla subskrybenta programu innego niż SQL Server w programie SQL Server przy użyciu programu SQL Server Management Studio lub Języka Transact-SQL. Replikacja transakcyjna i migawkowa obsługuje publikowanie danych dla subskrybentów spoza SQL Server. Aby uzyskać informacje o obsługiwanych platformach subskrybentów, zobacz Subskrybenci programu Non-SQL Server.
w tym temacie
Aby utworzyć subskrypcję dla subskrybenta programu innego niż SQL Server, używając:
Korzystanie z programu SQL Server Management Studio
Aby utworzyć subskrypcję dla subskrybenta programu innego niż SQL Server:
Zainstaluj i skonfiguruj odpowiednie oprogramowanie klienckie i dostawcy OLE DB w dystrybutorze programu SQL Server. Aby uzyskać więcej informacji, zobacz Subskrybenci Oracle i subskrybenci IBM Db2.
Utwórz publikację przy użyciu Kreatora nowej publikacji. Aby uzyskać więcej informacji na temat tworzenia publikacji, zobacz Tworzenie publikacji i Tworzenie publikacji na podstawie bazy danych Oracle Database. Określ następujące opcje w Kreatorze nowej publikacji:
Na stronie Typ publikacji wybierz pozycję Publikacja migawki lub Publikacja transakcyjna.
Na stronie Agent migawek wyczyść pole Utwórz migawkę natychmiast.
Generujesz migawkę po włączeniu publikacji dla subskrybentów spoza SQL Servera, aby upewnić się, że Agent Migawek generuje odpowiednią migawkę i skrypty inicjacyjne dla tych subskrybentów.
Włącz publikację dla subskrybentów programu innych niż SQL Server za pomocą okna dialogowego Właściwości publikacji — <Nazwa publikacji> . Aby uzyskać więcej informacji na temat tego kroku , zobacz Właściwości publikacji, Opcje subskrypcji .
Utwórz subskrypcję przy użyciu Kreatora nowej subskrypcji. Ten temat zawiera więcej informacji na temat tego kroku.
(Opcjonalnie) Zmień właściwość artykułu pre_creation_cmd, aby zachować tabele u subskrybenta. Ten temat zawiera więcej informacji na temat tego kroku.
Wygeneruj migawkę publikacji. Ten temat zawiera więcej informacji na temat tego kroku.
Zsynchronizuj subskrypcję. Aby uzyskać więcej informacji, zobacz Synchronizowanie subskrypcji typu push.
Aby włączyć publikację dla subskrybentów spoza SQL Server
Połącz się z programem Publisher w programie SQL Server Management Studio, a następnie rozwiń węzeł serwera.
Rozwiń folder Replikacja , a następnie rozwiń folder Publikacje lokalne .
Kliknij prawym przyciskiem myszy publikację, a następnie kliknij polecenie Właściwości.
Na stronie Opcje subskrypcji wybierz wartość True dla opcji Zezwalaj subskrybentom nienależących do programu SQL Server. Wybranie tej opcji powoduje zmianę liczby właściwości, tak aby publikacja jest zgodna z subskrybentami programu innych niż subskrybenci programu SQL Server.
Uwaga / Notatka
Wybranie pozycji True powoduje ustawienie wartości właściwości artykułu pre_creation_cmd na wartość "drop". To ustawienie określa, że replikacja powinna usunąć tabelę u subskrybenta, jeśli jej nazwa zgadza się z nazwą tabeli w publikacji. jeśli masz istniejące tabele w subskrybencie, który chcesz zachować, użyj procedury składowanej sp_changearticle dla każdego artykułu; określ wartość 'none' dla pre_creation_cmd:
sp_changearticle @publication= 'MyPublication', @article= 'MyArticle', @property='pre_creation_cmd', @value='none'.Kliknij przycisk OK. Zostanie wyświetlony komunikat o utworzeniu nowej migawki dla publikacji. Jeśli nie chcesz tworzyć go teraz, wykonaj kroki opisane w następnej procedurze 'jak to zrobić' później.
Aby utworzyć subskrypcję dla subskrybenta programu innego niż SQL Server
Rozwiń folder Replikacja , a następnie rozwiń folder Publikacje lokalne .
Kliknij prawym przyciskiem myszy odpowiednią publikację, a następnie kliknij pozycję Nowe subskrypcje.
Na stronie Lokalizacja agenta dystrybucji upewnij się, że wybrano opcję Uruchom wszystkich agentów w dystrybutorze . Subskrybenci innych platform niż SQL Server nie obsługują uruchamiania agentów na subskrybencie.
Na stronie Subskrybenci kliknij pozycję Dodaj subskrybenta , a następnie kliknij pozycję Dodaj subskrybenta programu Non-SQL Server.
W oknie dialogowym Dodawanie subskrybenta programu Non-SQL Server wybierz typ subskrybenta.
Wprowadź wartość w polu Nazwa źródła danych:
W przypadku oracle jest to skonfigurowana nazwa przezroczystego substratu sieciowego (TNS).
Dla IBM może to być dowolna nazwa. Zazwyczaj określa się adres sieciowy subskrybenta.
Nazwa źródła danych wprowadzona w tym kroku i poświadczenia określone w kroku 9 nie są weryfikowane przez tego kreatora. Nie są one używane przez replikację do momentu, gdy Agent Dystrybucji zostanie uruchomiony dla subskrypcji. Upewnij się, że wszystkie wartości zostały przetestowane przez nawiązanie połączenia z subskrybentem przy użyciu narzędzia klienckiego (takiego jak sqlplus dla oracle). Aby uzyskać więcej informacji, zobacz Subskrybenci Oracle i subskrybenci IBM Db2.
Kliknij przycisk OK. Na stronie Subskrybenci kreatora subskrybent jest teraz wyświetlany w kolumnie Subskrybent z wartością tylko do odczytu (domyślną lokalizacją docelową) w kolumnie Baza danych subskrypcji :
W przypadku bazy danych Oracle serwer ma co najwyżej jedną bazę danych, więc nie jest konieczne określenie bazy danych.
W przypadku bazy danych IBM Db2 baza danych jest określona we właściwości Katalog początkowy parametrów połączenia DB2, które można wprowadzić w polu Dodatkowe opcje połączenia opisane w dalszej części tego procesu.
Na stronie Zabezpieczenia agenta dystrybucji kliknij przycisk właściwości (...) obok subskrybenta, aby uzyskać dostęp do okna dialogowego Zabezpieczenia agenta dystrybucji.
W oknie dialogowym Zabezpieczenia agenta dystrybucji :
W polach Konto przetwarzania, Hasło i Potwierdź hasło wprowadź konto systemu Microsoft Windows i hasło, w którym agent dystrybucji powinien uruchomić i nawiązać połączenia lokalne z dystrybutorem.
Konto wymaga następujących minimalnych uprawnień: członka stałej roli bazy danych db_owner w bazie danych dystrybucji; członka listy dostępu do publikacji (PAL); uprawnień do odczytu udziału na udziałzie migawek; oraz uprawnień do odczytu katalogu instalacyjnego dostawcy OLE DB. Aby uzyskać więcej informacji o PAL, zobacz Zabezpieczanie wydawcy.
W obszarze Połącz z subskrybentem w polach Login (Logowanie), Password (Hasło) i Confirm password (Potwierdź hasło ) wprowadź nazwę logowania i hasło, które powinny być używane do nawiązywania połączenia z subskrybentem. To logowanie powinno być już skonfigurowane i powinno mieć wystarczające uprawnienia do tworzenia obiektów w bazie danych subskrypcji.
W polu Dodatkowe opcje połączenia określ wszelkie opcje połączenia dla subskrybenta w postaci parametrów połączenia (Oracle nie wymaga dodatkowych opcji). Każda opcja powinna być oddzielona średnikami. Poniżej przedstawiono przykład łańcucha połączenia DB2 (podziały wierszy mają na celu poprawę czytelności):
Provider=DB2OLEDB;Initial Catalog=MY_SUBSCRIBER_DB;Network Transport Library=TCP;Host CCSID=1252; PC Code Page=1252;Network Address=MY_SUBSCRIBER;Network Port=50000;Package Collection=MY_PKGCOL; Default Schema=MY_SCHEMA;Process Binary as Character=False;Units of Work=RUW;DBMS Platform=DB2/NT; Persist Security Info=False;Connection Pooling=True;Większość opcji w ciągu jest specyficzna dla konfigurowanego serwera DB2, ale opcja Przetwarzanie binarne jako znak zawsze powinna być ustawiona na Fałsz. Aby zidentyfikować bazę danych subskrypcji, wymagana jest wartość opcji Katalog początkowy .
Na stronie Harmonogram synchronizacji wybierz harmonogram agenta dystrybucji z menu Harmonogram agenta (harmonogram jest zwykle uruchamiany w sposób ciągły).
Na stronie Inicjowanie subskrypcji określ, czy subskrypcja ma zostać zainicjowana, a jeśli tak, kiedy ma zostać zainicjowana:
Wyczyść pole Inicjowanie tylko wtedy, gdy utworzono wszystkie obiekty i dodano wszystkie wymagane dane w bazie danych subskrypcji.
Wybierz Natychmiast z listy rozwijanej w kolumnie Inicjuj, gdy, aby agent dystrybucji przesyłał pliki migawek do subskrybenta po ukończeniu tego kreatora. Wybierz pozycję Przy pierwszej synchronizacji , aby agent przetransferował pliki przy następnym zaplanowanym uruchomieniu.
Na stronie Akcje kreatora opcjonalnie utwórz skrypt subskrypcji. Więcej informacji można znaleźć w artykule Replikacja skryptów.
Aby zachować tabele u subskrybenta
- Domyślnie włączenie publikacji dla subskrybentów programu innych niż SQL Server ustawia wartość właściwości artykułu pre_creation_cmd na wartość "drop". To ustawienie określa, że replikacja powinna usunąć tabelę u subskrybenta, jeśli nazwa tabeli jest zgodna z nazwą w artykule. Jeśli masz istniejące tabele w subskrybencie, które chcesz zachować, użyj procedury składowanej sp_changearticle dla każdego artykułu; określ wartość 'none' dla pre_creation_cmd.
sp_changearticle @publication= 'MyPublication', @article= 'MyArticle', @property='pre_creation_cmd', @value='none'.
Aby wygenerować migawkę na potrzeby publikacji
Rozwiń folder Replikacja , a następnie rozwiń folder Publikacje lokalne .
Kliknij prawym przyciskiem myszy publikację, a następnie kliknij Wyświetl stan agenta migawki.
W oknie dialogowym Wyświetl stan agenta migawki — <publikacja> kliknij przycisk Start.
Po zakończeniu generowania migawki przez agenta migawek zostanie wyświetlony komunikat, taki jak "[100%] Wygenerowano migawkę 17 artykułów".
Korzystanie z Transact-SQL
Programowo można tworzyć subskrypcje wypychane dla subskrybentów innych niż SQL Server przy użyciu procedur składowanych replikacji.
Ważne
Jeśli to możliwe, monituj użytkowników o wprowadzenie poświadczeń zabezpieczeń w czasie wykonywania. Jeśli musisz przechowywać poświadczenia w pliku skryptu, musisz zabezpieczyć plik, aby zapobiec nieautoryzowanemu dostępowi.
Aby utworzyć subskrypcję typu push dla publikacji transakcyjnej lub migawkowej u subskrybenta innego niż SQL Server
Zainstaluj najnowszego dostawcę OLE DB dla subskrybenta niekorzystającego z SQL Server zarówno u wydawcy, jak i dystrybutora. Aby uzyskać wymagania dotyczące replikacji dostawcy OLE DB, zobacz Subskrybenci innych niż SQL Server, Subskrybenci Oracle, Subskrybenci IBM Db2.
W witrynie Publisher w bazie danych publikacji sprawdź, czy publikacja obsługuje subskrybentów innych niż subskrybenci programu SQL Server, wykonując sp_helppublication (Transact-SQL).
Jeśli wartość enabled_for_het_sub wynosi 1, subskrybenci programu innego niż SQL Server są obsługiwani.
Jeśli wartość enabled_for_het_sub wynosi 0, wykonaj sp_changepublication (Transact-SQL), określając enabled_for_het_sub dla
@property, a true dla@value.Uwaga / Notatka
Przed zmianą enabled_for_het_sub na true należy usunąć wszystkie istniejące subskrypcje do publikacji. Nie można ustawić enabled_for_het_sub na true, gdy publikacja obsługuje również aktualizowanie subskrypcji. Zmiana enabled_for_het_sub wpłynie na inne właściwości publikacji. Aby uzyskać więcej informacji, zobacz Subskrybenci programu Non-SQL Server.
W programie Publisher w bazie danych publikacji wykonaj sp_addsubscription (Transact-SQL). Określ
@publication,@subscriber, wartość(default destination)dla@destination_db, wartość push dla@subscription_type, i wartość 3 dla@subscriber_type(określa dostawcę OLE DB).W systemie Publisher, w bazie danych publikacji, wykonaj sp_addpushsubscription_agent (Transact-SQL). Określ następujące elementy:
Parametry
@subscriberi@publication.Wartość (domyślna lokalizacja docelowa) dla elementu
@subscriber_db,Właściwości źródła danych innych niż SQL Server dla
@subscriber_provider, ,@subscriber_datasrc@subscriber_location,@subscriber_provider_stringi@subscriber_catalog.Poświadczenia systemu Microsoft Windows, z których korzysta agent dystrybucji na serwerze dystrybucyjnym dla
@job_loginoraz@job_password.
Uwaga / Notatka
Połączenia wykonywane przy użyciu zintegrowanego uwierzytelniania systemu Windows zawsze używają poświadczeń systemu Windows określonych przez
@job_logini@job_password. Agent dystrybucji zawsze nawiązuje połączenie lokalne z dystrybutorem przy użyciu zintegrowanego uwierzytelniania systemu Windows. Domyślnie agent połączy się z subskrybentem przy użyciu zintegrowanego uwierzytelniania systemu Windows.Wartość 0 dla
@subscriber_security_modei informacje logowania dostawcy OLE DB dla@subscriber_logini@subscriber_password.Harmonogram zadania agenta dystrybucji dla tej subskrypcji. Aby uzyskać więcej informacji, zobacz Określanie harmonogramów synchronizacji.
Ważne
Podczas tworzenia subskrypcji wypychanej w programie Publisher ze zdalnym dystrybutorem wartości podane dla wszystkich parametrów, w tym job_login i job_password, są wysyłane do dystrybutora jako zwykły tekst. Przed wykonaniem tej procedury składowanej należy zaszyfrować połączenie między wydawcą a jego zdalnym dystrybutorem. Aby uzyskać więcej informacji, zobacz Włączanie szyfrowanych połączeń z silnikiem bazy danych (SQL Server Configuration Manager).