Aracılığıyla paylaş


Oracle yayımcılar sorun giderme

Bu konu, çok sayıda yapılandırma ve bir Oracle Yayımcı kullanırken ortaya çıkan sorunları listeler.

Oracle istemci ve ağ yazılımı ile bir hata oluşur

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.İzinleri verilen veya Oracle istemci bileşenleri düzgün yüklü değil, aşağıdaki hata iletisini alırsınız:

"Sunucu bağlantısı [Microsoft OLE DB sağlayıcı for Oracle] ile başarısız oldu.Oracle istemci ve ağ bileşenlerini bulundu.Bu bileşenler Oracle Corporation tarafından sağlanır ve Oracle sürüm 7.3.3 veya daha sonra istemci yazılımı yüklemesinin bir parçasıdır.Sağlayıcı bu bileşenlerinin yüklü olduğu kadar etkin olamayacaktır."

dağıtımcı, en uygun bir Oracle istemcisi yüklenmiş sağlamakSQL Serverdurdurulmuş ve tamamlanan istemcisi yüklendikten sonra yeniden.Bunun yapılabilmesi için gerekliSQL Servertanımak için istemci bileşenlerini.

İzin verilen ve bileşenlerinin doğru şekilde yüklü, ancak bu hata devam ederse doğrulandı, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI adresindeki kayıt defteri ayarlarının doğru olduğunu doğrulayın:

  • Oracle 10 g için doğru ayarları alır.

    • OracleOciLib = oci.dll

    • OracleSqlLib = orasql10.dll

    • OracleXaLib = oraclient10.dll

  • Oracle 9i'için doğru ayarları alır.

    • OracleOciLib = oci.dll

    • OracleSqlLib = orasql9.dll

    • OracleXaLib = oraclient9.dll

SQL Server dağıtımcı Oracle veritabanı örneğine bağlanamıyor

,SQL Serverdağıtımcı gönderilemiyor, Oracle yayımcıya bağlanan emin olun:

  • Gerekli Oracle yazılımı dağıtımcı üzerinde yüklü.

  • Oracle veritabanının çevrimiçi olduğundan ve SQL gibi araç kullanarak bağlanabileceğiniz * artı.

  • Oracle Yayımcı'ın bağlanmak için oturum açma çoğaltma kullanır yeterli izni yok.Daha fazla bilgi için bkz:Bir Oracle Yayımcı yapılandırma.

  • Oracle Yayımcı'ın yapılandırma sırasında tanımlanan TNS adı tnsnames.ora dosyasındaki listelenir.

  • Doğru Oracle Giriş ve yol kullanılır.Bile, yalnızca bir Oracle ikili dosyalar üzerinde sahipSQL Serverdağıtımcı, ortam değişkenleri Oracle Giriş ilgili doğru ayarlandığından emin olun.Ortam değişkeni değerlerini değiştirme, gereken durdurmak ve yeniden başlatınSQL Serveriçin değişiklik olması etkili.

Yapılandırma ve sınama bağlantısı hakkında daha fazla bilgi için "yükleme ve yapılandırma Oracle istemci ağ yazılımı,SQL Serverdağıtımcı "olarakBir Oracle Yayımcı yapılandırma.

Oracle Yayımcı'ın başka bir dağıtımcı ile ilişkili

Bir Oracle Yayımcı yalnızca olabilir ilişkili birSQL Serverdağıtımcı.Farklı bir dağıtımcı Oracle yayımcı ile ilişkili ise, başka bir dağıtımcı kullanılmadan önce bırakılan gerekir.dağıtımcı önce bırakıldı, aşağıdaki hata iletilerinden birini alırsınız:

  • "Oracle sunucusu örnek '<OraclePublisherName>' kullanmak için '<>SQLServerDistributorName ', dağıtımcı. önceden yapılandırılmış Kullanmaya başlamak için '<NewSQLServerDistributorName>' da dağıtımcı bu sunucu üzerindeki tüm yayımlar silinir Oracle Sunucusu örneğinde geçerli çoğaltma yapılandırmasını kaldırmanız gerekir. "

  • "Oracle sunucusu '<OracleServerName>'zaten Yayımcı '<>OraclePublisherName ' dağıtımcı üzerinde tanımlı'<>SQLServerDistributorName. <DistributionDatabaseName >'.Yayımcı bırakın ya da ortak eş bırakın '<SynonymName>' recreate. "

Bir Oracle Yayımcı bırakılır, Oracle veritabanı çoğaltma nesneleri otomatik olarak temizlenmesi.Ancak, bazı durumlarda Oracle çoğaltma nesnelerin el ile Temizleme gereklidir.El ile çoğaltma tarafından oluşturulan Oracle çoğaltma nesneleri temizlemek için:

  1. Oracle Yayımcı DBA izinleriyle bağlanır.

  2. SQL komutu sorunuDROP PUBLIC SYNONYM MSSQLSERVERDISTRIBUTOR;.

  3. Issue the SQL command DROP USER <replication_administrative_user_schema>CASCADE;.

SQL Server hatası 21663 bir birincil anahtar olmayışı oluşur

İşlemsel yayımlar makalelerinde, geçerli bir birincil anahtar olmalıdır.Geçerli bir birincil anahtar varsa, bir makale eklemeye çalıştığınızda aşağıdaki hata iletisini alırsınız:

"Bulunan kaynak tablo için geçerli birincil anahtar olmayan [ <TableOwner>].<>TabloAdı]"

Birincil anahtarlar, gereksinimleri hakkında bilgi için "benzersiz dizinler ve kısıtlamalar" konusundaki bölümüne bakınTasarım konuları ve Oracle Yayımcılar için kısıtlamaları.

SQL Server hata 21642 bir çift bağlantılı sunucu oturumu oluşur

Bir Oracle Publisher'ın ilk yapılandırıldığında, yayımcı ve dağıtımcı arasındaki bağlantı için bir bağlantılı sunucu girişi oluşturulur.Bağlantılı sunucu TNS Oracle hizmet adı ile aynı ada sahiptir.Oluşturmayı denerseniz, bir bağlantılı sunucu aynı adı taşıyan aşağıdaki hata iletisi görüntülenir:

"Farklı bir yayımcı bağlantılı sunucu gerektirir.Adlı bağlantılı sunucu '<LinkedServerName>' zaten.Lütfen kaldırın bağlantılı sunucu veya farklı bir yayımcı adı seçin. "

Oluşturmayı denerseniz, bu hata oluşabilir bağlantılı sunucu doğrudan veya Oracle Yayımcı'ın arasındaki ilişkiyi daha önce bırakılan veSQL Serverdağıtımcı ve şu anda çalışan it. yeniden yapılandırmak içinBağlantılı sunucuya bırakın, yayımcı, yeniden yapılandırmak çalışırken bu hatayı alıyorsunuzsp_dropserver (Transact-SQL).

Oracle Yayımcı bağlantılı sunucu bağlantısı üzerinden bağlanır, oluşturmak için başka bir TNS hizmet adı ve sonra bu adı, aramasp_addlinkedserver (Transact-SQL).TNS hizmet adları oluşturma hakkında daha fazla bilgi için Oracle belgelerine bakın.

SQL Server hata 7395 iç içe geçmiş hareketler oluşur

İç içe geçmiş hareketleri Oracle Yayımcı bağlantılı sunucu bağlantısı üzerinden çalıştırmak çalışırsanız, aşağıdaki hatayı alırsınız:

"Bağlantılı sunucu için OLE DB sağlayıcı 'MSDAORA' iç içe geçmiş bir hareket başlatmak için yapılamıyor '<Sunucuadı>'.XACT_ABORT seçeneği kapalı olarak ayarlandığı için bir iç içe geçmiş hareket gerekli oldu."

Yapılandırmak veya bir Oracle Yayımcı korumak için kopyalama saklı yordamlarını kullan, yordamlar belirtik işlem kaydırma değil.

SQL Server hata 21617 oluşur

Oracle yayınlama kullanan Oracle uygulama SQL * artı Oracle veritabanına Yayımcı Destek kod paket karşıdan yüklemek için.Oracle Yayımcı ' ın yapılandırma çalışmadan önceSQL Serverdoğrular, SQL * artı dağıtımcı. sistem yol üzerinden erişebileceğinizSQL * artı, aşağıdaki hata iletisi gösterilir yüklenemiyor:

"SQL çalıştırılamıyor * artı.Belirli bir istemci kodu dağıtımcı yüklü olan Oracle'nın geçerli sürüm yapan."

SQL bulmaya çalışın * artı dağıtımcı.Bir Oracle 10 g istemci yüklemek için bu çalıştırılabilir sqlplus.exe adıdır.Bu, genellikle % ORACLE_HOME%/bin yüklenir.Doğrulamak için SQL yolu * artı görünür sistem yolunda sistem değişkeni değerini inceleyinYol:

  1. Sağ tıklatınBilgisayarımÖzellikler' i ve.

  2. TıklatınGelişmiş sekmesini tıklatın ve sonra ortam değişkenleri .

  3. ,Ortam değişkenleri listesinde Sistem değişkenleri iletişim kutusunda, yol değişkeni seçin ve sonra Düzenle ' yi tıklatın.

  4. ,Sistem değişkenini Düzenle iletişim kutusu: değişken değeri metin kutusuna sqlplus.exe içeren klasörün yolunu yoksa it. eklenecek dize Düzenle

  5. ' I tıklatınOK her Aç iletişim kutusundan çıkmak için ve değişiklikler.

dağıtımcı üzerinde sqlplus.exe bulamazsanız, bir Oracle istemci yazılımını dağıtımcı en geçerli sürüm yükleyin.Daha fazla bilgi için bkz:Bir Oracle Yayımcı yapılandırma.

SQL Server hata 21620 oluşur

Oracle veritabanına yayımlama dağıtımcı üzerinde yüklü Oracle istemci yazılımı sürüm 9 gerektirir Oracle 8'dan önceki bağlanıyorsanız.Sürüm 8.1 veya daha yeni bir Oracle veritabanına bağlanıyorsanız, Oracle istemci yazılımı sürüm 10 veya daha yenisi olmasını öneririz.

Oracle Yayımcı yapılandırmaya çalışmadan önce Oracle yayımlama, doğrular SQL sürüm * artı 9 veya sonraki sürüm dağıtımcı sistemi yol ile erişilebilir.Değilse, aşağıdaki hata iletisi görüntülenir:

"SQL sürüm * artı diğer bir deyişle sistemi aracılığıyla erişilebilir yol değişkeni Oracle yayımlama desteklemek için geçerli değil.Belirli bir istemci kodu dağıtımcı yüklü olan Oracle'nın geçerli sürüm yapan."

Oracle istemci yazılımını dağıtımcı üzerinde yüklü birden çok sürümü varsa, en son sürümü en az sürüm 9 ve bu sistem değişkeni yol başvuran önce bu sürümü için olduğundan emin olun (diğer sürümleri için başvuruları görüntülenebilir en son ilk görünen kadar).Sistem yol değişkeni düzenleme hakkında daha fazla bilgi için bu konuda daha önce "SQL Server hata 21617 olduğundan oluşur" bölümüne bakın.

SQL Server 21624 hata veya hata 21629 oluşur.

64-Bit dağıtıcıları için Oracle yayımlama Oracle OLEDB sağlayıcı Oracle için (OraOLEDB.Oracle) kullanır.Oracle OLEDB sağlayıcı yüklü ve dağıtımcı üzerinde kayıtlı olduğundan emin olun.Sağlayıcı yüklü ve kayıtlı, biri veya her ikisi de aşağıdaki hata iletilerinden gösterilir:

  • "Kayıtlı Oracle OLEDB sağlayıcı, OraOLEDB.Oracle, dağıtımcı '% s' konumunda bulmak oluşturulamıyor.Oracle OLEDB sağlayıcı geçerli sürüm yüklü ve kayıtlı dağıtımcı emin olun."

  • "Oracle OLEDB sağlayıcı için Oracle, OraOLEDB.Oracle, kaydedildiğini belirten CLSID kayıt defteri anahtar altında dağıtımcı yok.Oracle OLEDB sağlayıcı yüklü ve kayıtlı dağıtımcı emin olun."

Oracle istemci yazılımı sürümü kullanıyorsanız, 10 g, sağlayıcı OraOLEDB10.dll; sürüm 9i'için OraOLEDB.dll ise.Sağlayıcı %ORACLE_HOME%\BIN (örneğin, C:\oracle\product\10.1.0\Client_1\bin) yüklenir.Oracle OLEDB sağlayıcı dağıtımcı üzerinde yüklü olmadığını belirlerseniz, diski Oracle tarafından sağlanan istemci yazılımını yüklemek Oracle yükleyin.Daha fazla bilgi için bkz:Bir Oracle Yayımcı yapılandırma.

Oracle OLEDB sağlayıcı yüklüyse, kayıtlı olduğundan emin olun.Sağlayıcı DLL kayıt yaptırmak için aşağıdaki komut, dll Dosyasının yüklü olduğu ve sonra Dur dizinden çalıştırın ve yenidenSQL ServerÖrnek:

  1. regsvr32 OraOLEDB10.dll veya regsvr32 OraOLEDB.dll.

SQL Server 21626 hata veya hata 21627 oluşur.

Doğrulama, Oracle yayımlama ortamında yapılandırılmış düzgünSQL Serveryapılandırma sırasında belirtilen oturum açma kimlik bilgileri bilgilerine sahip Oracle Yayımcı bağlanmaya çalışır,SQL Serverdağıtımcı için Oracle Yayımcı bağlanamıyor, aşağıdaki hata iletilerinden biriyle gösterilir:

  • "Oracle veritabanı sunucusu '% s' OraOLEDB.Oracle Oracle OLEDB sağlayıcı kullanarak bağlantı kurulamıyor."

  • "Oracle veritabanı sunucusu '% s' MSDAORA Microsoft OLEDB sağlayıcı kullanarak bağlantı kurulamıyor."

Bu hata iletisi gösteriliyorsa, SQL çalıştırarak Oracle veritabanı bağlantısını doğrulama * aynı oturum açma ve Oracle Yayımcı'ın yapılandırma sırasında belirtilen parola kullanılarak doğrudan SIÇRAMASI.Daha fazla bilgi için bu konuda daha önce "The SQL Server dağıtımcı kullanılamıyor bağlantı için Oracle veritabanı örnek" bölümüne bakın.

SQL Server hata 21628 oluşur

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.Okunurken veya yazılırken bu kayıt defteri girdisi bir sorun varsa, aşağıdaki hata iletisini gösterilmiştir:

"Oracle OLEDB sağlayıcı işlemi çalıştırmak için OraOLEDB.Oracle izin vermek için dağıtımcı '% s' kayıt defteri güncelleştirmesi yapılamıyorSQL Server.Belirli, geçerli oturum açma için yetkili yapmakSQL Serverait kayıt defteri anahtarlarını. "

Oracle yayımlama var ve ayarlanabilir kayıt defteri girdisi gerektirir1 Dağıtıcıları. 64 bit Girdi yoksaSQL Serverdeneyecek HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x oluşturun.Giriş var, ancak küme0, ayarları değiştirilmez; Oracle Yayımcı'ın yapılandırma hatası. olur

Görüntüleme ve kayıt defteri ayarını değiştirmek için:

  1. ' I tıklatınBaşlatma, and then click Run.

  2. ,Çalıştırma iletişim kutusunda regedit yazıp Tamam .

  3. Gitmek için HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<InstanceName>\Providers.

    Sağlayıcılar bir klasöre OraOLEDB.Oracle adlı dahil.Bu klasör içinde olması gereken DWORD değeri adıAllowInProcess, with a value of 1.

  4. Siz belirleyinAllowInProcessolan küme kayıt defteri girdisi 10 için güncelleştirme:

    1. Girişi sağ tıklatın ve ardındanDeğiştirme.

    2. ,Dize Düzenle tür 1Değer verisi alanına. iletişim kutusunda,

SQL Server hata 21684 oluşur

Yönetimsel kullanıcı yeterli ayrıcalıklara sahip, aşağıdaki hata iletisi görüntülenir:

"Yönetici oturum açma için Oracle Yayımcı '% s' ile ilişkili izinleri yeterli değildir."

Kullanıcı için izinleri doğrulamak için aşağıdaki sorguyu çalıştırın: 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

Çoğaltma kullanıcı şemasını karşılaştığınız izin sorunları

Çoğaltma kullanıcı şema açıklanan "Creating kullanıcı şeması elle" izinleri olması gerekirBir Oracle Yayımcı yapılandırma.

Oracle hatası ORA-01000

Çoğaltma, makaleleri yayına ekleme işlemi sırasında Oracle Yayımcı imleçleri kullanır.Bu işlem sırasında imleçler yayımcı kullanılabilir en fazla mümkündür.Bu durumda, aşağıdaki hata ortaya çıkar:

"ORA 01000: Maksimum açık imleçler aşıldı"

Bu sorunu gidermek için emin olun:max_open_cursors ayarı Oracle veritabanlarındaki yeterince yüksek bir sayıya (en az 1000) küme.Bu ayar hakkında daha fazla bilgi için Oracle belgelerine bakın.

Oracle hatası ORA-01555

Oracle veritabanı hata için anlık görüntü çoğaltması çoğaltması kopyalamayı ilişkili değildir; Oracle veri okuma tutarlı görünümleri nasıl yapıları için ilişkilidir:

"ORA-01555: Anlık görüntü çok eski"

Oracle, geri parçaları bilinen nesneleri kullanarak, bir SQL deyim verilen sürede veri noktası olarak okuma tutarlı bir görünüm oluşturur.Geri alma bilgileri diğer eş zamanlı oturumlar tarafından yazılır, bir "anlık görüntü görüntü görüntüsünü çok eski" hatası oluşabilir.Önce Oracle 9i, boyutu ve/veya geri alma segmentleri sayısını artırmak ve büyük hareketleri bir özel geri alma segmente atamak için bu hata sıklığını azaltmak için önerilen yöntem oldu.

Oracle 9i'de, Oracle, geri alma kesim yerine geri al tablo alanı kavramı kullanılmaya başlandı.Oracle 9i "anlık görüntü görüntü görüntüsünü çok eski" hatayı önlemek için bu önerilir:

  • geri alma alma al tablo alanı ile uygun miktarda boş alan oluşturun.

  • Saklama garantisi tablo alanı (Oracle 10 G ve büyük) göre ayarlayın.

  • UNDO_MANAGEMENT ve UNDO_RETENTION Oracle başlatma parametreleri yapılandırın.

"anlık görüntü görüntü görüntüsünü çok eski" hata önleme hakkında daha fazla bilgi için Oracle belgelerine başvurun.

Oracle hatası ORA-22285

Tablo BFILE sütun içeriyorsa, sütun için veri dosya sisteminde saklanır.Aşağıdaki sözdizimini kullanarak, verilerin depolandığı dizine erişim çoğaltma yönetici kullanıcı hesabına sahip olmanız gerekir:

GRANT READ ON DIRECTORY <directory_name> TO <replication_administrative_user_schema>

Erişim izni, aşağıdaki hata Günlük Okuyucu Aracısı oluşturulur:

"ORA-22285: varolmayan bir dizin veya dosya FILEOPEN işlem için"

Yayımcı yeniden yapılandırma gerektiren yapılan değişiklikleri

Yapılan çoğaltma meta veriler tablolar ve yordamlar bırakın ve yayımcı yeniden yapılandırmanız gerekir.Publisher ' ın yeniden yapılandırmak için yayımcı bırakın ve gerekir kullanarak yeniden yapılandırmaSQL Server Management StudioTransact-SQL, ve RMO.Yayımcı ' ın yapılandırma hakkında daha fazla bilgi için bkz:Bir Oracle Yayımcı yapılandırma.

Bir Oracle Yayımcı açmak için ( SQL Server Management Studio'da )

  1. Oracle Yayımcı'ın içinde dağıtımcı olarak bağlanSQL Server Management Studiogenişletin düğüm.

  2. Sağ tıklatınÇoğaltmadağıtımcı Properties'itıklatın ve.

  3. ,Yayımcılardağıtımcı Properties'i iletişim kutusunda, sayfanın Oracle Yayımcı'ın. için onay kutusunu temizleyin

  4. ' I tıklatın Tamam.

Bir Oracle Yayımcı (Transact-SQL) bırakmak için