Udostępnij za pośrednictwem


Projektowanie uwagi i ograniczenia dla wydawców Oracle

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

  • Opcja Oracle bramy zapewnia lepszą wydajność przez opcję Zakończenie Oracle; jednak opcja ta nie można publikować tej samej tabela w wielu publikacjach transakcyjnych.Tabela mogą pojawiać się co najwyżej jedną publikacja transakcyjnych i dowolnej liczby publikacje migawka.Jeśli trzeba publikować tej samej tabela w wielu publikacjach transakcyjnych, wybierz opcję pełne Oracle.

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

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

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

Obsługa publikowania obiektów z Oracle

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

  • tabele

  • Zorganizowane indeksu tabel

  • Indeksy

  • Materialized widoków (są one replikowane jako tabele)

Następujące może być obecny w opublikowanych tabel, ale nie są replikowane:

  • Indeksy oparte na domenie

  • Indeksy oparte na funkcji

  • Ustawienia domyślne

  • Sprawdź ograniczenia

  • Klucze obce

  • Opcje pamięci masowej (obszary tabel, klastry, itp.)

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

  • Zagnieżdżone tabele

  • Widoki

  • Pakiety, organy pakiet, procedur i wyzwalaczy

  • Kolejki

  • Sekwencje

  • Synonimy

Informacje obsługiwane typy danych, zobacz Mapowanie typu danych dla wydawców Oracle.

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

  • Oracle ma inny rozmiar maksymalny limity dla niektórych obiektów.Wszystkie obiekty utworzone w Oracle baza danych publikacja należy przestrzegać limitów maksymalny rozmiar dla odpowiednich obiektów w SQL Server.Aby uzyskać informacje dotyczące ograniczeń w SQL Server, zobacz Specyfikacje maksymalnej pojemności w programie SQL Server.

  • Domyślnie tworzone są nazwy obiektów Oracle w wielkie przypadek.Zapewnienia dostaw nazw obiektów Oracle w wielkie przypadek, publikując je poprzez SQL Server dystrybutor, jeżeli są one wielkie przypadek w bazie danych Oracle.Określenie obiektów przypadek poprawne może skutkować komunikat o błędzie wskazujący, że nie można odnaleźć obiektu.

  • Oracle ma nieco inny dialekt SQL z SQL Server; Filtry wierszy powinny być zapisywane w składni zgodnej z Oracle.

Zagadnienia dotyczące dużych obiektów

Dużego obiektu (LOB), dane nie są przechowywane w tabela Dziennik artykuł; aktualizacje dane LOB są zawsze pobierane bezpośrednio z tabela opublikowane.Aktualizacje są replikowane w publikacjach transakcyjnej tylko wtedy, gdy operacja wpływających na obiektu LOB fires wyzwalacza replikacja w zreplikowanej tabela.Wyzwalacze Oracle ognia, gdy wiersze zawierające obiektów LOB są wstawione lub usunięte; Jednak aktualizacje do kolumn LOB nie uruchamiaj wyzwalaczy.Aktualizacja do kolumna LOB będą replikowane natychmiast tylko wtedy, gdy kolumna nie LOB wiersza jest także aktualizowane w tej samej transakcji Oracle.Jeśli nie będą odświeżane kolumna LOB subskrybent, gdy Następna aktualizacja do kolumna innej niż LOB w tym samym wierszu.Upewnij się, że takie działanie jest dopuszczalne dla aplikacji.

Do replikowania aktualizacji do LOB kolumn w publikacjach transakcyjnych, należy rozważyć jedną z następujących strategii podczas pisania aplikacji:

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

  • Obejmować kolumna nie LOB aktualizacji wiersza, oprócz kolumna LOB lub zaktualizować kolumna nie LOB wiersza jako część tej samej transakcji Oracle.W obu przypadkach aktualizacji kolumna LOB nie gwarantuje, że wyzwalacz fires.

Aby uzyskać więcej informacji na temat obiektów LOB, zobacz Mapowanie typu danych dla wydawców Oracle.

Unikatowe indeksy i ograniczenia

Dla obu migawka i replikacja transakcyjna, kolumny zawarte w unikatowe indeksy i ograniczenia (w tym ograniczeń klucz podstawowego) muszą spełniać pewne ograniczenia.Jeśli nie być zgodne z tych ograniczeń, ograniczenie lub indeks nie jest replikowana.

  • Maksymalna liczba kolumn dozwolone do indeksu na SQL Server wynosi 16.

  • Wszystkie kolumny w ograniczeń unique musi obsługiwanych typów danych.Aby uzyskać więcej informacji na temat typów danych, zobacz Mapowanie typu danych dla wydawców Oracle.

  • Wszystkie kolumny w unikatowe ograniczenia muszą być publikowane (one nie można filtrować).

  • Kolumny jest związane ograniczenie typu unique lub indeksy nie może być null.

Ponadto należy rozważyć następujące zagadnienia:

  • Oracle i SQL Server inaczej traktują NULL: 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ć UNIQUE lub indeks, który umożliwia NULL, ponieważ naruszenie ograniczenia mogą się pojawić na subskrybenta Jeśli opublikowanych tabela zawiera wiele wierszy zawierających wartości NULL dla wszystkich kolumn znajdujących się w indeksie lub ograniczenie.

  • Podczas testowania unikatowość, końcowe puste pole są ignorowane przez SQL Server , ale nie przez Oracle.

W SQL Server replikacja transakcyjna, tabele w publikacjach transakcyjnych Oracle wymagają klucz podstawowego; klucz podstawowy musi być unikatowa, na podstawie reguł określonych powyżej.Jeśli klucz podstawowy nie pasuje do reguł przedstawionych w poprzedniej punktory, tabela nie mogą być publikowane dla replikacja transakcyjna.

Różnice między publikowania Oracle i standardowych replikacji transakcyjnej

  • Oracle Wydawca nie może mieć taką samą nazwę jak: jego SQL Server dystrybutora; żadnego z SQL Server wydawcy, które używają dystrybutor; lub żadnych subskrybentów, które odbierają publikacja.Publikacje obsługiwanych przez ten sam dystrybutor musi mieć unikatową nazwę.

  • Tabela opublikowana w publikacja Oracle nie może odbierać replikowanych danych.Dlatego nie obsługuje publikowania Oracle: natychmiastowej publikacji aktualizacji lub w kolejce subskrypcje aktualizacji; lub w publikacja, które tabele również działać jako tabele subskrypcja, takie jak peer-to-peer i dwukierunkowe replikacja topologie.

  • Klucz podstawowy relacje klucz obcy w bazie danych Oracle nie są replikowane do subskrybentów.Jednak relacje są zachowywane w danych, jak zmiany są dostarczane.

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

  • Sortowanie klauzule są dodawane do instrukcji CREATE TABLE, umożliwiające przypadek porównań poufnych, które jest ważne dla kluczy podstawowych i ograniczeń unique.To zachowanie jest określana za pomocą opcji schematu 0x1000, która jest określany za pomocą @ schema_option parametr sp_addarticle (języka Transact-SQL).

  • Procedury przechowywane umożliwia konfigurowanie lub utrzymania Wydawca Oracle, nie należy umieszczać procedury wewnątrz transakcja jawna.Nie jest to obsługiwane przez serwer połączony, używane do łączenia z Wydawca Oracle.

  • Jeśli tworzysz subskrypcja wciągana do publikacja Oracle za pomocą kreatora, należy użyć Kreatora nowej subskrypcji, dostarczane z SQL Server 2005 i nowsze wersje.W poprzednich wersjach SQL Server, można jednak użyć procedura składowana i SQL-DMO interfejsy do instalacji ściągać subskrypcji Oracle publikacje.

  • Propagowanie zmian do subskrybentów (domyślnie) za pomocą procedur przechowywanych, należy pamiętać, że składnia MCALL jest obsługiwana, ale ma różne zachowanie, gdy publikacja z Wydawca Oracle.Zazwyczaj MCALL zawiera mapy bitowej, który pokazuje kolumny, które zostały zaktualizowane na Wydawca.Z publikacja Oracle bitmapy zawsze wyświetla zaktualizowano wszystkie kolumny.Aby uzyskać więcej informacji dotyczących używania procedury przechowywanej, zobacz Określanie sposobu zmiany są propagowane transakcyjnych artykułów.

Transakcyjna obsługa funkcji replikacji

  • 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).

  • Subskrybentów publikacje Oracle nie można użyć natychmiastowej aktualizacji kolejce subskrypcje aktualizacji lub być węzłów równorzędnych lub dwukierunkowy topologii.

  • Subskrybenci publikacje Oracle nie może automatycznie inicjowane z kopia zapasowa.

  • SQL Serverobsługuje dwa typy sprawdzania poprawności: binarny i rowcount.Wydawcy programu Oracle obsługuje sprawdzania rowcount.Aby uzyskać więcej informacji, zobacz Sprawdzanie poprawności replikowanych danych.

  • SQL Serveroferuje dwa formaty migawka: tryb macierzysty bcp i trybie znaków.Wydawcy programu Oracle obsługuje znak trybu migawki.

  • Zmiany schematu do opublikowanych tabel Oracle nie są obsługiwane.Zmiany schematu najpierw upuść publikacja, zmiany i następnie odtworzyć publikacja i wszystkie subskrypcje.

    Ostrzeżenie

    Jeżeli zmiany schematu i kolejnych upuszczania i odtworzenia publikacja i subskrypcje są wykonywane w czas , gdy występuje brak aktywności opublikowanych tabel, można określić opcję "tylko Obsługa replikacja" dla subskrypcji.Pozwala to na zsynchronizowanie bez konieczności kopiowania migawka poszczególnym subskrybentom.Aby uzyskać więcej informacji, zobacz Inicjowanie transakcyjnych subskrypcję bez migawki.

Model zabezpieczeń replikacji

Model zabezpieczeń do publikowania Oracle jest taki sam jak model zabezpieczeń standardu replikacja transakcyjna, z następującymi wyjątkami:

Aby uzyskać więcej informacji na temat zabezpieczeń replikacja, zobacz Bezpieczeństwo i ochrona (replikacji).