سؤال

لقد تغيرت مؤخرا المادية DB, خوادم جديدة, مواقع جديدة, نفس مخطط قاعدة البيانات و البيانات و منذ التغيير أكثر ، كلما حاولنا الاتصال مباشرة إلى DB في سطح المكتب نوع التطبيقات عن نصف الوقت نحصل على هذا الخطأ:

SQL*Loader-704: Internal error: ulconnect: OCIServerAttach[0]
ORA-12545: Connect failed because target host or object does not exist

باقي من الوقت ، فإنه يربط على الفور دون أي مشاكل.لدينا التطبيقات التي إنشاء اتصالات عبر JDBC لا يبدو أن لديها أي مشاكل ولكن نفعل عندما يمر شيء لا tnsnames.أورا بحث (أو أن حدسي على الأقل).TNSPING يعمل 100% ولكن باستخدام oracle للتنفيذ مثل SQLLDDR فشل على الأقل 50 ٪ من الوقت.وهنا مجهولة المصدر snppet من TSNNAMES ملف TNSPING الإخراج:

DB_CONNECTION =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 1.2.3.4)(PORT = 1521))
  )
  (CONNECT_DATA =
    (SERVICE_NAME = MY.URL.COM)
  )
)

و TNSPING:

C:\>TNSPING DB_CONNECTION
TNS Ping Utility for 32-bit Windows: Version 9.2.0.1.0

Copyright (c) 1997 Oracle Corporation.  All rights reserved.

Used parameter files:
C:\oracle\ora92\network\admin\sqlnet.ora


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST = 1.2.3.4)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = MY.URL.COM)))
OK (200 msec)

لدي SID DB ، وهو ما JDBC اتصالات تعتمد على ولكن إضافة إلى tnsnames.أورا لا تحسين احتمالات إجراء اتصال.أنا لا أعرف ما يكفي عن كيفية tnsnames الملف قيد الاستخدام من قبل شركة أوراكل بذكاء حل هذه المشكلة حتى إذا كان لديك اقتراحات أو نرى ما هو الواضح في عداد المفقودين واسمحوا لي أن أعرف.

تحرير:ديسيبل قد يكون اثنين متوازنة التحميل قواعد البيانات التي قد تكون جزءا من المشكلة.

هل كانت مفيدة؟

المحلول

وكان لدينا في الآونة الأخيرة مشكلة مشابهة مع طلبنا. ان تطبيق الاتصال في بعض الأحيان إلى RAC أوراكل وأحيانا انها ستتقدم بشكوى مع ORA-12545. باختصار كانت المسألة أن الخادم كان اسمه الحقيقي بينما كنا باستخدام عناوين IP الظاهري في TNSNAMES.ORA. مرة واحدة أضفنا تعيين اسم الملقم إلى عنوان IP عبر SYSTEM32 \ سائقين \ ملف الخ \ المضيفين بدأ كل شيء للعمل بشكل صحيح.

ولقد كتبت أكثر قليلا في بلدي بلوق <الإعلان وقح> http://dcarapic.blogspot.com/ 2009/04 / متقطعة-أورا-12545-error.html

نصائح أخرى

وآه، فلدي الحب المشاكل المتقطعة :) (في ما يلي لقد كان لاستبدال الحرف تسطير وأنا لا أعرف شار الهروب لهذه اللغة ويكي)

هل دائما باستخدام نفس المستخدم OS الاتصال وللقيام tnsping؟

والتحقق من وجود متغيرات البيئة ADMIN TNS [تسطير] مشيرا إلى مواقع TNSNAMES.ORA مختلفة. هل مسح للعميل لTNSNAMES.ORA مكررة. سواء في المواقع المشار إليه بواسطة $ TNS [تسطير] ADMIN أو في مختلف $ ORACLE [تأكيد] HOMES (على سبيل المثال، إذا كان لديك تثبيت 2 عميل أوراكل).

وتحقق بالمثل الذي تستخدمه نفس $ ORACLE [تسطير] منزل و$ بيئة PATH المتغيرات لجميع محاولات الاتصال وtnsping. (على سبيل المثال دائما نفس المستخدم OS أو كل مستخدم لديه نفس القيم)

وأنا أرى أن تقارير الناتج tnsping النسخة 9.2 لذلك هذا ليس من المرجح، ولكن في 11G وDB يسجل مع المستمع الذي يمكن أن يستغرق دقيقة أو نحو ذلك. (ربما صحيح أيضا مع 10G). يحاول الاتصال قبل ذلك لن تجد الهدف.

وهناك احتمال آخر غير المرجح - هي خدمة بنفس الاسم الخدمة لا تزال الإعلان على الخادم المضيف القديم؟ إزالته إذا كان ذلك ممكنا.

وبعد ذلك أود أن تبدأ لإلقاء نظرة على الشبكة نفسها. هو بينغ خادم دائما ناجحة وسريعة؟ إذا كنت تستخدم اسم المضيف بدلا من IP في TNSNAMES.ORA، هل اسم المضيف حل موثوق للIP الصحيح (NSLOOKUP). هناك جدار الحماية المحلي وإذا كان الأمر كذلك فإنه يتصرف؟

والتحيات كارل

إذا كنت تستخدم Oracle 10g, ، يمكنك استخدام أحد Easy Connect معالج بدلا من ذلك:

//servername/instancename

,

//1.2.3.4/my.url.com

في الحالة الخاصة بك.

انها في مأمن الكثير من TNSNAMES المسائل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top