Rozwiązywanie problemów z bazy danych Oracle wydawcy
W tym temacie zamieszczono listę problemów, które mogą wystąpić przy konfigurowaniu i za pomocą Wydawca bazy danych Oracle.
Błąd jest wypukłe dotycząca klient Oracle i oprogramowanie sieciowe
The account under which Microsoft SQL Server runs on the Distributor must be granted read and execute permissions for the directory (and all subdirectories) in which the Oracle client networking software is installed.Jeżeli nie udzielono uprawnień lub składniki klient Oracle nie są poprawnie zainstalowane, zostanie wyświetlony następujący komunikat o błędzie:
"Połączenie z serwerem nie powiodło się z [Microsoft OLE DB dostawca for Oracle].Nie można odnaleźć programu Oracle klient i składników sieciowych.Składniki te są dostarczane przez firmę Oracle Corporation i wchodzą w skład Oracle w wersja 7.3.3 lub nowszej instalacji oprogramowania klient.Dostawca nie będzie działało do momentu te składniki są zainstalowane. „
Jeśli odpowiedniego klient Oracle został zainstalowany na Dystrybutor, zapewnić, że SQL Server została zatrzymana i następnie uruchamiane ponownie po zakończeniu instalacji klient ukończone. Jest to wymagane w celu SQL Server Aby rozpoznawać składniki klient.
Jeśli upewnieniu się, że uprawnienia są przyznawane i że składniki są zainstalowane poprawnie, ale ten błąd nie zniknie, sprawdź poprawność ustawień rejestru na HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI:
W przypadku bazy danych Oracle 10 g są poprawne ustawienia
OracleOciLib = oci.dll
OracleSqlLib = orasql10.dll
OracleXaLib = oraclient10.dll
Oracle 9i są poprawne ustawienia.
OracleOciLib = oci.dll
OracleSqlLib = orasql9.dll
OracleXaLib = oraclient9.dll
Dystrybutor programu SQL Server nie może połączyć się z wystąpienie bazy danych Oracle
Jeśli SQL Server Dystrybutor, nie mogą łączyć się z Oracle Wydawca, upewnić się, że:
Na Dystrybutor, zainstalowano niezbędne oprogramowanie Oracle.
Baza danych Oracle jest w trybie online i można połączyć go za pomocą narzędzie, takie jak SQL * plus.
Replikacja logowania używa do łączenia się z Oracle Wydawca ma wystarczające uprawnienia.Aby uzyskać więcej informacji zobacz Konfigurowanie Wydawca bazy danych Oracle.
Nazwy TNS podczas konfigurowania programu Oracle Wydawca są wymienione w pliku tnsnames.ora.
Poprawne Główny bazy danych Oracle i ścieżka są używane.Nawet jeśli użytkownik ma tylko jeden zestaw plików binarnych Oracle zainstalowane na SQL Server Dystrybutor, upewnij się, do zmiennych środowiskowych związanych z Główny Oracle są prawidłowo ustawione. W przypadku zmiany wartości zmiennych środowiskowych, należy zatrzymać i ponownie uruchomić SQL Server Aby zmiany zostały wprowadzone.
Aby uzyskać więcej informacji na temat konfigurowania i testowania łączności, zobacz „ Instalowanie i Konfigurowanie bazy danych Oracle klient sieci oprogramowania na SQL ServerDystrybutor"w Konfigurowanie Wydawca bazy danych Oracle.
Wydawca Oracle jest skojarzony z innym dystrybutor
Wydawca an Oracle można tylko skojarzony z jednym SQL Server Dystrybutor. Jeśli inny dystrybutorem jest skojarzony z Oracle Wydawca, musi być odrzucone, zanim będzie można używać innego dystrybutor.Jeśli dystrybutor, nie zostało porzucone pierwszy, zostanie wyświetlony jeden z następujących komunikatów o błędach:
"Wystąpienie serwera oracle"<OraclePublisherName>"został wcześniej skonfigurowany, aby użyć"<SQLServerDistributorName>"jako jego dystrybutor.Aby rozpocząć używanie "<NewSQLServerDistributorName>"jako jego dystrybutor, musi usunąć bieżącą konfiguracja replikacja w wystąpieniu serwera bazy danych Oracle, co spowoduje usunięcie wszystkich publikacji, w tym wystąpieniu serwera. „
"Serwera oracle"<OracleServerName>"jest już zdefiniowany jako"<OraclePublisherName>"Wydawca na dystrybutor „<SQLServerDistributorName>.<DistributionDatabaseName>". Upuść Wydawca lub usuwanie publicznych synonim "<SynonymName>"do odtworzenia. „
Po upuszczeniu Oracle Wydawca obiektów replikacja bazy danych Oracle są automatycznie czyszczone.Jednak w niektórych przypadkach konieczne jest ręczne oczyszczanie obiektów replikacja bazy danych Oracle.Aby ręcznie wyczyścić Oracle replikacja obiektów utworzonych przez replikacja:
Połączyć się z uprawnieniami DBA wydawca bazy danych Oracle.
Wydaj polecenie SQL DROP PUBLIC SYNONYM MSSQLSERVERDISTRIBUTOR;.
Issue the SQL command DROP USER <replication_administrative_user_schema>CASCADE;.
Błąd SQL Server 21663 jest wypukłe dotyczące braku klucz podstawowy
Artykuły w publikacjach transakcyjna musi mieć prawidłowy klucz podstawowy.Jeśli nie mają prawidłowego klucz podstawowy, zostanie wyświetlony następujący komunikat o błędzie podczas próby dodania artykuł:
„Nie znaleziono ważnego klucza podstawowego tabeli źródłowej [<TableOwner>].[<TableName>]”
Aby uzyskać informacje o wymaganiach dotyczących kluczy podstawowych zobacz sekcję "Unikatowe indeksy i ograniczenia" w temacie Zagadnienia i ograniczenia dla Oracle wydawcy projektów.
Błąd SQL Server 21642 jest wypukłe dotycząca identyfikatora logowania serwer połączony duplikatów
Gdy początkowo skonfigurowano Wydawca bazy danych Oracle, jest tworzony dla połączenia między Wydawca i dystrybutor wpis serwer połączony.serwer połączony Ma taką samą nazwę jak nazwę usługa TNS bazy danych Oracle.Jeśli użytkownik spróbuje utworzyć serwer połączony z tą samą nazwą, wyświetlany jest następujący komunikat o błędzie:
"Heterogenicznych wydawców wymaga serwer połączony.A serwer połączony o nazwie „<LinkedServerName>' już istnieje. Usuń połączonego serwera lub wybierz inną Wydawca nazwy. „
Ten błąd może wystąpić podczas próby tworzenia serwer połączony bezpośrednio lub, jeśli wcześniej zostały zerwane relację między Wydawca Oracle i SQL Server Dystrybutor, a teraz chcesz ponownie skonfigurować go. Jeśli pojawi się błąd podczas próby zmiany konfiguracji Wydawca, upuść serwer połączony z sp_dropserver (Transact-SQL).
Jeśli trzeba połączyć Oracle Wydawca za pośrednictwem połączenia serwer połączony, utwórz inną nazwę usługa TNS, a następnie używać tej nazwy podczas wywoływania sp_addlinkedserver (języka Transact-SQL). Aby uzyskać informacje dotyczące tworzenia nazwy usługa TNS zobacz w dokumentacji programu Oracle.
Błąd serwera SQL 7395 jest wypukłe dotycząca transakcji zagnieżdżonych
Jeżeli użytkownik usiłuje wykonać transakcji zagnieżdżonych połączenie serwer połączony z wydawcą bazy danych Oracle, zostanie wyświetlony następujący komunikat o błędzie:
"Nie można uruchomić transakcję zagnieżdżoną dla dostawca OLE DB 'MSDAORA' dla serwer połączony"<Nazwa_serwera>'.Wymagana była zagnieżdżonych transakcji, ponieważ opcja XACT_ABORT zestaw na OFF. „
Jeśli używasz procedury przechowywane replikacja do konfigurowania i zarządzania Oracle Wydawca, nie zawijany procedury w transakcja jawna.
Błąd SQL Server 21617 jest wypukłe
Publikowanie programu Oracle używa aplikacji bazy danych Oracle SQL * oraz aby pobrać pakiet kodu obsługi Wydawca do bazy danych Oracle.Przed przystąpieniem do konfigurowania wydawca bazy danych Oracle SQL Server weryfikuje, że SQL * oraz jest dostępny za pośrednictwem systemu ścieżka na dystrybutor. Jeśli program SQL * oraz nie można załadować, znajduje się następujący komunikat o błędzie:
"Nie można uruchomić programu SQL * oraz.Należy pewność, że bieżącą wersja bazy danych Oracle, kod klient jest zainstalowany na dystrybutor. „
Spróbuj znaleźć SQL * oraz dystrybutor.Instalowanie klient Oracle 10 g nazwa tym wykonywalnego jest sqlplus.exe.Jest on instalowany zazwyczaj w % ORACLE_HOME%/bin.Aby sprawdzić, czy ścieżka do programu SQL * oraz pojawia się w ścieżce systemu zbadać wartość zmienna systemowa Ścieżka:
Kliknij prawym przyciskiem myszy W folderze Mój komputer, a następnie kliknij przycisk Właściwości.
Kliknij przycisk Zaawansowane karcie, a następnie kliknij przycisk Zmienne środowiskowe.
W Zmienne środowiskowe w dialogowym Zmienne systemowe zaznaczŚcieżka zmiennej, a następnie kliknij przycisk Edytowanie.
W Edytowanie zmienna systemowa-okno dialogowe: Jeśli ścieżka do folderu zawierającego sqlplus.exe jest nieobecny w Wartość zmiennej tekstu należy edytować ciąg, który ma być dodane.
Kliknij przycisk OK na każde pole otwarte okna dialogowe, aby wyjść i zapisać zmiany.
Jeśli nie możesz zlokalizować sqlplus.exe na Dystrybutor, należy zainstalować bieżącą wersja oprogramowania klient Oracle u dystrybutora.Aby uzyskać więcej informacji zobacz Konfigurowanie Wydawca bazy danych Oracle.
Błąd SQL Server 21620 jest wypukłe
W przypadku łączenia się z bazą danych Oracle wcześniej niż w wersja 8.1 Oracle publikacji wymaga zainstalowanego na dystrybutor oprogramowania klient Oracle w wersja 9.Jeśli łączysz się z bazą danych Oracle, która jest w wersja 8.1 lub nowszy, firma Microsoft zaleca, aby oprogramowanie klient Oracle można w wersja 10 lub nowszej.
Przed podjęciem próby skonfigurowania wydawca bazy danych Oracle, publikowanie bazy danych Oracle weryfikuje, że wersja programu SQL * oraz za pośrednictwem w ścieżce systemowej na dystrybutor jest w wersji 9 lub nowszej.Jeśli nie jest dostępne, wyświetlany jest następujący komunikat o błędzie:
"Wersja programu SQL * oraz jest dostępny za pośrednictwem systemu zmiennej ścieżka nie jest aktualny wystarczająco do obsługi publikowania bazy danych Oracle.Należy pewność, że bieżącą wersja bazy danych Oracle, kod klient jest zainstalowany na dystrybutor. „
Jeśli masz wiele wersja oprogramowania klient Oracle zainstalowanego na Dystrybutor, upewnij się, że najbardziej aktualnej wersja jest co najmniej w wersja 9 i tej ścieżka zmiennej systemowej najpierw odnosi się do tej wersja (odwołań do innych wersja mogą być wyświetlane tak długo, jak najbardziej aktualne jako pierwsze).Aby uzyskać więcej informacji na temat edycji zmienna ścieżka systemu Zobacz sekcję "SQL Server Error 21617 jest wypukłe" we wcześniejszej części tego tematu.
Program SQL Server Error 21624 lub błąd 21629 jest wypukłe
Dla dystrybutorów 64-bitowych publikowanie bazy danych Oracle używa dostawca OLEDB Oracle dla programu Oracle (OraOLEDB.Oracle).Upewnij się, że dostawca bazy danych Oracle OLEDB jest zainstalowany i zarejestrowany na dystrybutor.Jeśli dostawca nie jest zainstalowany i zarejestrowany, wyświetlany jest jeden lub oba z następujących komunikatów o błędach:
"Nie można zlokalizować zarejestrowanych Oracle OLEDB dostawca, OraOLEDB.Oracle, u dystrybutor '% s'.Sprawdź czy bieżąca wersja dostawca Oracle OLEDB jest zainstalowany i zarejestrowany na dystrybutor. „
"Klucz rejestru identyfikatora CLSID wskazującą, że zarejestrowano dostawca OLEDB Oracle dla bazy danych Oracle, OraOLEDB.Oracle, nie jest obecny w dystrybutor.Sprawdź czy dostawca Oracle OLEDB jest zainstalowany i zarejestrowany na dystrybutor. „
Jeśli używasz wersja oprogramowania klient Oracle 10 g, dostawca jest OraOLEDB10.dll; 9i wersja jest OraOLEDB.dll.Dostawca jest instalowany w %ORACLE_HOME%\BIN (na przykład C:\oracle\product\10.1.0\Client_1\bin).Jeśli okaże się, że dostawca OLEDB bazy danych Oracle nie jest zainstalowany na Dystrybutor, należy go zainstalować za pomocą bazy danych Oracle, dysk dostarczony przez Oracle zainstalować oprogramowanie klient.Aby uzyskać więcej informacji zobacz Konfigurowanie Wydawca bazy danych Oracle.
Po zainstalowaniu dostawca OLEDB bazy danych Oracle, upewnij się, że jest on zarejestrowany.Aby zarejestrować biblioteki DLL, dostawca wykonać następujące polecenie z katalogu, w którym instalowane jest z biblioteki DLL, a następnie przestać i uruchom ponownie SQL Server wystąpienie:
- regsvr32 OraOLEDB10.dll lub regsvr32 OraOLEDB.dll.
Program SQL Server Error 21626 lub błąd 21627 jest wypukłe
Aby sprawdzić właściwie skonfigurowany środowisko publikowania bazy danych Oracle SQL Server próbuje połączyć się z Oracle Wydawca przy użyciu poświadczenia logowania określony podczas konfiguracja. Jeśli SQL Server Dystrybutor nie może połączyć się z wydawcą bazy danych Oracle, znajduje się jeden z następujących komunikatów o błędach:
„ Nie można połączyć się z serwerem bazy danych Oracle '% s' przy użyciu dostawca Oracle OLEDB OraOLEDB.Oracle. „
„ Nie można połączyć się z serwerem bazy danych Oracle '% s' przy użyciu dostawca Microsoft OLEDB MSDAORA. „
Jeśli zostanie wyświetlony ten komunikat o błędzie, sprawdź połączenie z bazą danych Oracle, uruchamiając program SQL * PLUS bezpośrednio przy użyciu tego samego identyfikatora logowania i hasło określone podczas konfigurowania Wydawca bazy danych Oracle.Aby uzyskać więcej informacji zobacz sekcję "wystąpienie serwera SQL dystrybutor nie można podłączyć do Oracle bazy danych" we wcześniejszej części tego tematu.
Błąd SQL Server 21628 jest wypukłe
For 64-bit Distributors, Oracle publishing uses the Oracle OLEDB Provider for Oracle (OraOLEDB.Oracle).SQL Server creates a registry entry to allow the Oracle provider to run in process with SQL Server.Jeśli występuje problem Odczyt lub zapis ten wpis rejestru, wyświetlany jest następujący komunikat o błędzie:
„ Nie można zaktualizować rejestru dystrybutor '% s', aby umożliwić dostawca Oracle OLEDB OraOLEDB.Oracle do uruchamiania w procesie SQL Server. Należy upewnić się, że bieżącego logowania jest upoważnienia do modyfikowania SQL Serverwłasność kluczy rejestru. „
Publikowanie programu Oracle wymaga wpisu rejestru istnieje i będzie zestaw do 1 dla 64-bitowych dystrybutorów.Jeśli wpis nie istnieje, SQL Server zostanie podjęta próba jej utworzenia. Jeżeli zapis istnieje, ale jest zestaw do 0, zestaw ting nie ulegną zmianie, konfiguracja wydawca bazy danych Oracle nie powiedzie się.
Aby wyświetlić i zmodyfikować ustawienia rejestru:
Kliknij przycisk Rozpocznij, a następnie kliknij przycisk Uruchamianie.
W Uruchamianie okno dialogowe typ regedit, a następnie kliknij przycisk OK.
Przejdź do HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\<Nazwa_wystąpienia>\Providers.
Uwzględnione w obszarze dostawcy, nazwy powinny mieć folderu OraOLEDB.Oracle.W tym folderze powinny być nazwę wartości DWORD AllowInProcess, z wartością 1.
Jeśli okaże się, że AllowInProcess is zestaw to 0, zaktualizuj wpis rejestru do 1:
Kliknij prawym przyciskiem myszy pozycję, a następnie kliknij przycisk Modyfikowanie.
W Edytowanie ciąg okno dialogowe typ 1 in the Wartości danych pole.
Błąd SQL Server 21684 jest wypukłe
Jeśli konto administratora nie ma wystarczających uprawnień, wyświetlany jest następujący komunikat o błędzie:
"Uprawnienia związane z identyfikator logowania administratora Oracle Wydawca '% s' nie są wystarczające. „
Aby zweryfikować uprawnień udzielonych przez użytkownika, wykonaj następującą kwerendę: SELECT * from session_privs.The output should be similar to the following:
PRIVILEGE
------------------
CREATE SESSION
CREATE TABLE
CREATE PUBLIC SYNONYM
DROP PUBLIC SYNONYM
CREATE VIEW
CREATE SEQUENCE
CREATE PROCEDURE
CREATE TRIGGER
Występują problemy uprawnienia dla schematu użytkownika replikacja
Schemat replikacja użytkownik musi mieć uprawnienia opisane w "" Creating użytkownika schemat ręcznie" Konfigurowanie Wydawca bazy danych Oracle.
Błąd programu Oracle ORA — 01000
Replikacja używa kursorów na wydawca bazy danych Oracle w trakcie dodawania artykuły na publikacja w sieci.Istnieje możliwość przekracza maksymalną liczbę kursorów na Wydawca w trakcie tego procesu.W takim przypadku uruchamiany jest następujący komunikat o błędzie:
"ORA 01000: Przekroczono maksymalną otwartych kursorów"
Aby uniknąć tego problemu, upewnić się, że max_open_cursors w bazach danych Oracle ustawiono dostatecznie wysoką liczbę (co najmniej 1000).Aby uzyskać więcej informacji na temat tego ustawienia Zobacz w dokumentacji programu Oracle.
Błąd programu Oracle ORA — 01555
Następujący komunikat o błędzie bazy danych Oracle nie jest związany z replikacją migawka; odnoszący się do sposobu Oracle konstruuje odczytu spójne widoków danych:
"ORA 01555: Zbyt stary migawkę"
Korzystanie z obiektów, znane jako segmenty wycofania, Oracle konstruuje odczytu spójne widoki danych jako punktu w czasie wydano instrukcja języka SQL.A "migawka za stary" może wystąpić błąd podczas wycofywania informacje są zastępowane przez inne jednoczesnych sesji.Przed Oracle 9i zalecaną metodą zmniejszenia częstotliwość ten błąd był zwiększenie rozmiaru i/lub numer segmenty wycofania i przypisać do segmentu wycofania określonych duże transakcje.
W Oracle 9i Oracle wprowadzono cofnąć pojęcia obszar tabel, które zastępuje segmentu wycofania.Aby zapobiec "migawka zbyt stary, „ błąd w Oracle 9i, zaleca się, które:
Tworzenie obszar tabel cofnąć z odpowiednią ilość wolnego miejsca.
zestaw gwarancji przechowywania na obszar tabel (bazy danych Oracle 10 G i większe).
Skonfigurować parametry inicjowania bazy danych Oracle UNDO_MANAGEMENT i UNDO_RETENTION.
Aby uzyskać szczegółowe informacje dotyczące unikania błędu "zbyt stara migawkę" zajrzyj do dokumentacji programu Oracle.
Błąd programu Oracle ORA — 22285
Jeśli tabela zawiera kolumna BFILE, dane kolumna są przechowywane w systemie plików.Konto administratora replikacja musi mieć przyznane uprawnienie dostępu do katalogu, w którym dane są przechowywane przy użyciu następującej składni:
GRANT READ ON DIRECTORY <directory_name> TO <replication_administrative_user_schema>
Jeżeli nie udzielono dostępu, następujący komunikat o błędzie jest wywoływane przez Agent odczytywania dziennika:
"ORA 22285: katalog nie istnieje lub w pliku FILEOPEN operacji"
Zmiany są wykonane Z Wymagaj ponowna konfiguracja Wydawca
Zmiany w tabelach metadane replikacja lub procedury wymagają upuszczania, a następnie zmień konfigurację Wydawca.Aby ponownie skonfigurować Wydawca, należy upuścić Wydawca i skonfigurować go ponownie, używając SQL Server Management StudioJęzyka transact-SQL, czy RMO. Aby uzyskać informacje dotyczące konfigurowania Wydawca zobacz Konfigurowanie Wydawca bazy danych Oracle.
Aby usunąć () bazy danych Oracle WydawcaProgram SQL Server Management Studio**)**
Połączyć się z dystrybutor Wydawca bazy danych Oracle w SQL Server Management Studio i rozwiń węzeł serwera.
Kliknij prawym przyciskiem myszy Replikacja, a następnie kliknij przycisk Właściwości dystrybutor.
Na Wydawca stronaWłaściwości dystrybutor -okno dialogowe, wyczyść to pole wyboru dla Wydawca bazy danych Oracle.
Kliknij przycisk OK.
Aby usunąć Wydawca Oracle (języka Transact-SQL)
- wykonać sp_dropdistpublisher.Aby uzyskać więcej informacji zobacz sp_dropdistpublisher (Transact-SQL).
See Also