Udostępnij za pośrednictwem


Zagadnienia i ograniczenia dla Oracle wydawcy projektów

Publishing from an Oracle database is designed to work nearly identically to publishing from a Microsoft SQL Server database.Należy jednak pamiętać o następujących ograniczeń i problemów:

  • Opcja Oracle Gateway zapewnia lepszą wydajność przez opcję Wykonano Oracle; jednak opcja ta nie może służyć do publikowania tej samej tabela w kilku publikacjach transakcyjnych.Tabela może występować w co najwyżej jedną publikacja transakcyjnych i dowolnej liczby publikacje migawka.Jeśli chcesz publikować tej samej tabela w kilku publikacjach transakcyjnych, wybierz opcję bazy danych Oracle jako ukończone.

  • Replikacja obsługuje tabel w publikacji, indeksów i materialized widoki.Inne obiekty nie są replikowane.

  • Istnieją pewne niewielkie różnice między przechowywania i przetwarzania danych w Oracle i SQL Server bazy danych, które mają wpływ replikacja.

  • Istnieje wiele różnic w sposób transakcyjnych replikacja funkcje są obsługiwane podczas korzystania z Wydawca bazy danych Oracle.

Obsługa publikowania obiekty z bazy danych Oracle

Replikacja obsługuje replikowanie z bazami danych Oracle następujące obiekty:

  • Tabele

  • Zorganizowane indeksu tabel

  • Indeksy

  • Widoki materialized (są one replikowane jako tabele)

Następujące może znajdować się na opublikowanej tabel jednak nie są replikowane:

  • Indeksy oparte na domenie

  • Indeksy oparte na funkcja

  • Ustawienia domyślne

  • Sprawdź ograniczenia

  • Klucze obce

  • Opcje magazynu (tablespaces, klastry itp.)

Nie można zreplikować następujące obiekty:

  • Zagnieżdżone tabele

  • Widoki

  • Pakiety, jednostki pakiet, procedury i wyzwalaczy

  • Kolejki

  • Sekwencje

  • Synonimy

Aby uzyskać informacje dotyczące obsługiwane typy danych zobacz Mapowanie typu danych dla bazy danych Oracle wydawcy.

Różnice między bazami danych Oracle i SQL Server

  • Oracle ma inny rozmiar maksymalny limit dla niektórych obiektów.Wszystkie obiekty utworzone w bazie danych Oracle publikacja należy stosować się do limitu maksymalnego rozmiaru dla odpowiednich obiektów w SQL Server. Aby uzyskać informacje dotyczące ograniczenia SQL Server, zobacz Maximum Capacity Specifications for SQL Server.

  • Domyślnie tworzone są nazwy obiektów bazy danych Oracle w wielkie przypadek.Upewnij się, podać nazwy obiektów bazy danych Oracle w wielkie przypadek, publikując je za pośrednictwem SQL Server Dystrybutor, jeśli są one wielkie przypadek w bazie danych Oracle. Może spowodować niemożność określ obiekty przypadek prawidłowego się komunikat o błędzie wskazujący, że nie można odnaleźć obiektu.

  • Oracle jest nieco inna dialekt SQL z SQL Server; filtry wiersz powinien być napisane w składni zgodnej z bazy danych Oracle.

Uwagi dotyczące duże obiekty

Dane dużego obiektu (LOB) nie są przechowywane w tabela Dziennik artykuł; aktualizuje dane LOB są zawsze pobierane bezpośrednio z publikowanym tabela.Aktualizacje są replikowane w publikacjach transakcyjnych tylko wtedy, gdy operacja wpływających na obiektu LOB uruchomieniu wyzwalacza replikacja w zreplikowanej tabela.Oracle uruchamia pożaru, gdy wstawienia lub usunięcia wierszy zawierających LOBs; aktualizacje do kolumny obiektu LOB nie jednak ognia wyzwalaczy.Aktualizacja do kolumny obiektu LOB będą replikowane natychmiast tylko wtedy, gdy kolumna nie LOB z tym samym wierszu jest także aktualizowane w tej samej transakcji bazy danych Oracle.W przeciwnym razie kolumna LOB będą odświeżane przez subskrybent po następnej aktualizacji do kolumna innej niż LOB, w tym samym wierszu.Upewnij się, że takie działanie jest możliwy do zaakceptowania dla aplikacji.

Aby replikują aktualizacje do obiektu LOB kolumn w publikacjach transakcyjnych, wziąć pod uwagę jedną z następujących strategii podczas pisania aplikacji:

  • Usuń i ponownie wstawić wiersze w obrębie transakcji, zamiast aktualizować wiersza: Umożliwia określenie nowego obiektu LOB re-inserting wiersza. Ponieważ usuwanie i wstawianie ognia wyzwalaczy, wiersz będzie replikowany.

  • Obejmuje kolumn innych niż LOB w aktualizacji wiersza w uzupełnieniu do kolumna obiektu LOB lub zaktualizować kolumn innych niż LOB wiersza w ramach tej samej transakcji bazy danych Oracle.W obu przypadkach aktualizacji kolumna LOB nie gwarantuje, że uruchomieniu wyzwalacza.

Aby uzyskać więcej informacji na temat LOBs zobacz Mapowanie typu danych dla bazy danych Oracle wydawcy.

Unikatowe indeksy i ograniczenia

migawka i replikacja transakcyjnej kolumn zawartych w unikatowe indeksy i ograniczenia (w tym ograniczenie na klucz podstawowy) muszą spełniać pewne ograniczenia.Jeśli nie one stosować się do tych ograniczeń, ograniczenia lub indeks nie są replikowane.

  • Maksymalna liczba kolumn dozwolone w indeksie w SQL Server wynosi 16.

  • Wszystkie kolumny w ograniczenie typu unique musi obsługiwane typy danych.Aby uzyskać więcej informacji na temat typów danych zobacz Mapowanie typu danych dla bazy danych Oracle wydawcy.

  • Należy opublikować wszystkich kolumn znajdujących się w ograniczenie typu unique (one nie mogą być filtrowane).

  • Kolumny związane ograniczenie typu unique lub indeksy nie powinna być zerowa.

Również wziąć pod uwagę następujące kwestie:

  • Oracle i SQL Server wartości NULL są traktowane odmiennie: Oracle permits multiple rows with NULL values for columns that allow NULL and are included in unique constraints or indexes.SQL Server enforces uniqueness by only permitting a single row with a NULL value for the same column.Nie można opublikować ograniczenie unique lub indeks, który umożliwia wartość NULL, ponieważ naruszenie ograniczenia operacja zostanie wykonana na abonenta, jeśli opublikowana tabela zawiera wiele wierszy z wartościami NULL dla wszystkich kolumn, znajdujących się w indeks lub ograniczenie.

  • Podczas testowania dla unikatowości, spacje końcowe pole są ignorowane przez SQL Server ale nie na podstawie bazy danych Oracle.

Podobnie jak w SQL Server replikacja transakcyjnej tabel w publikacji transakcyjnych Oracle wymaga klucz podstawowy, klucz podstawowy musi być unikatowa oparte na regułach, określone powyżej. Jeśli klucz podstawowy nie pasuje do zasad, opisane w poprzednich punktorów, w tabela nie mogą być publikowane dla replikacja transakcyjnej.

Różnice między publikowanie bazy danych Oracle i Standard replikacja transakcji

  • Wydawca bazy danych Oracle nie może mieć takiej samej nazwie, jak: its SQL Server Dystrybutor; dowolne z SQL Server Wydawcy, które używają dystrybutor; lub wszystkich subskrybentów, które odbierają publikacja. Publikacje obsługiwanych przez ten sam dystrybutor musi mieć unikatową nazwę.

  • Opublikowana w publikacja Oracle tabela nie mogą odbierać replikowanych danych.W związku z tym publikowanie bazy danych Oracle nie obsługuje: publikacje z natychmiastowej aktualizacji lub subskrypcja aktualizacji kolejce; lub topologii, w których publikacja tabel także działać jako tabele subskrypcja, takich jak replikacja typu peer-to-peer i dwukierunkowe.

  • Klucz podstawowy do relacji kluczy obcych w bazie danych Oracle nie są replikowane do subskrybentów.Jednak relacje są obsługiwane w danych, zmiany zostaną dostarczone.

  • Standardowe publikacje transakcyjnych obsługują tabel kolumn do 1000.Publikacje transakcyjnych programu Oracle obsługuje 995 kolumn (replikacja dodaje pięć kolumn do każdej tabela opublikowanych).

  • Sortowanie klauzule są dodawane do instrukcji CREATE tabela w celu umożliwienia porównań uwzględniana jest wielkość liter, co jest ważne dla kluczy podstawowych i ograniczeń unique.To zachowanie jest kontrolowany przy użyciu opcji schematu 0x1000, który jest określany za pomocą @ schema_option parametrsp_addarticle (języka Transact-SQL).

  • Jeśli używasz procedury przechowywane do konfigurowania i zarządzania Oracle Wydawca, nie należy umieszczać procedury wewnątrz transakcja jawna.To nie jest obsługiwane za pośrednictwem serwer połączony, używane do łączenia się z Oracle Wydawca.

  • Jeśli tworzysz ściągać subskrypcja do publikacja za pomocą Kreatora bazy danych Oracle, należy użyć Kreatora nowej subskrypcja dostarczany z SQL Server 2005 i jego nowszych wersjach. Dla wcześniejszych wersji programu SQL Server, można jednak użyć procedura przechowywana i SQL-DMO interfejsów do instalacji subskrypcji ściąganej do publikacji, Oracle.

  • Jeśli używasz procedury przechowywane propagowanie zmian do subskrybentów (ustawienie domyślne), należy pamiętać, że składnia MCALL jest obsługiwana, ale ma różne zachowania, gdy publikacja jest Wydawca bazy danych Oracle.Zazwyczaj MCALL zawiera mapę bitową, który pokazuje kolumny, które zostały zaktualizowane w Wydawca.Z publikacja w poczcie bazy danych Oracle mapa bitowa zawsze wskazuje, że wszystkie kolumny zostały zaktualizowane.Aby uzyskać więcej informacji o korzystaniu z procedur przechowywanych zobacz Określanie, jak zmiany są rozpropagowane dla transakcji artykułów.

Transakcyjna obsługa funkcji replikacja

  • Publikacje Oracle nie obsługują wszystkie opcje schematu obsługujące publikacji programu SQL Server.Aby uzyskać więcej informacji na temat opcji schematu Zobacz sp_addarticle (języka Transact-SQL).

  • Subskrybenci do publikacji, Oracle nie natychmiastowej aktualizacji lub subskrypcji aktualizacji w kolejce lub być węzłów w topologii typu peer-to-peer lub dwukierunkowy.

  • Subskrybenci do publikacji, bazy danych Oracle nie można zainicjować automatycznie z kopia zapasowa.

  • SQL Server obsługuje dwa typy sprawdzania poprawności: plik binarny i rowcount. Wydawcy programu Oracle obsługuje sprawdzanie poprawności rowcount.Aby uzyskać więcej informacji zobacz Validating Replicated Data.

  • SQL Server oferuje dwa formaty migawka: tryb macierzysty bcp i trybie znaków. Wydawcy programu Oracle obsługuje migawek trybie znaków.

  • Zmiany schematu do opublikowanych tabel bazy danych Oracle nie są obsługiwane.Do zmiany schematu, najpierw usunąć publikacja, wprowadź odpowiednie zmiany, a następnie odtworzyć w publikacja i żadnych subskrypcji.

    Uwaga

    Jeżeli zmiany schematu kolejnych upuszczania i odtworzenia publikacja i subskrypcje są wykonywane w czasie, gdy działanie nie występuje na opublikowanych tabel, można określić opcję 'replikacja obsługę tylko „ subskrypcji.Pozwala to na można zsynchronizować bez konieczności skopiować migawkę każdej subskrybent.Aby uzyskać więcej informacji zobacz Inicjowanie transakcji subskrypcja bez migawka.

Replikacja modelu zabezpieczeń

Model zabezpieczeń do publikowania bazy danych Oracle jest taka sama, jak model zabezpieczeń dla standardowych replikacja transakcyjnej, z następującymi wyjątkami:

Aby uzyskać więcej informacji na temat zabezpieczeń replikacja Zobacz Security and Protection (Replication).