مشاكل أوراكل في القضبان مع أشعل النار، ولكن ليس مع الموقع

StackOverflow https://stackoverflow.com/questions/1608981

سؤال

وأعمل على موقع القضبان التي تربط إلى قاعدة بيانات أوراكل، وعلى الرغم من أنني لم بناء الموقع من الصفر، وأنا القيام بأعمال الصيانة. الموقع يستخدم delayed_jobs المساعد للتعامل مع بعض المهام الخلفية وأود أن تكون قادرة على تشغيل rake jobs:work على الملقم التطوير لمعالجة كافة مهام في قائمة الانتظار بشكل دوري (بسبب تكوين الملقم، ويعمل على إصدار daemonized من البرنامج النصي على الملقم التطوير ليس خيارا). ومع ذلك، كلما أحاول تشغيل الأمر، وأحصل على خطأ أوراكل الكلاسيكية التالية:

وerror while trying to retrieve text for error ora-12154

وعادة، كنت أعتقد أن هذا سيكون مشكلة المصادقة (مؤهلات اعتماد غير صحيحة على سبيل المثال في database.yml)، ولكن هذا الموقع هو وتشغيلها غرامة (وفعل الكثير من الاشياء قاعدة البيانات). لقد حاولت مضيفا RAILS_ENV=production كمعلمة إلى rake لإجبارها على خوض في بيئة الإنتاج، ولكن حصلت على نفس الخطأ (هناك نوعان من القضبان المنشآت منفصلة للإصدارات إنتاج وتطوير الموقع، ولقد تعيين وثائق التفويض "التنمية" "إنتاج" في ملف ديسيبل التكوين تطوير لتكون متطابقة).

ولست متأكدا ما يمكن أن يسبب هذا الخطأ، وأنا لم يكن لديك طن من الخبرة باستخدام أوراكل مع القضبان. أي اقتراحات؟

وشكرا جزيلا!

وجوستين

وتحرير (10/26/09): لا تزال لا يمكن معرفة ما يسبب المشكلة هنا. يستمر التطبيق لتشغيل (والحديث لقاعدة البيانات) دون مشكلة، ولكن أشعل النار يبقي رمي الأخطاء DB. فهل النصي / وحدة التحكم، مما يدل على موجه ولكن أولا يشكو مع نفس رسالة الخطأ أوراكل. انا ذاهب للحفاظ على المظهر، ولكن أنا على التوالي من الأفكار ...

وتحرير (10/26/09، في وقت لاحق): بناء على نصيحة من rel="nofollow هذا الرابط ، أنا وضعت على حد سواء ORACLE_HOME وTNS_ADMIN للإشارة إلى الدليل الذي يعيش TNSNAMES.ORA. كان مجرد وضع ORACLE_HOME أي تأثير واضح، ولكن الآن بعد أن نقاط TNS_ADMIN إلى المكان الصحيح، لقد بدأت الحصول على تجزئة أخطاء كلما أحاول فتح وحدة التحكم أو تشغيل أشعل النار:

و/usr/local/lib/ruby/site_ruby/1.8/oci8.rb:184: [BUG] Segmentation Fault

ووالحصول على تمهيد بشكل غير رسمي إلى موجه. أي أفكار أخرى؟

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

المحلول

وأخيرا حصلت عليه ... تبين أن ORACLE_HOME لم يتم تعيين بشكل صحيح كما متغير بيئة لحساب المستخدم الخاص بي. الآن أشعل النار، النصي / وحدة التحكم، وما إلى ذلك طنين على طول لحسن الحظ.

نصائح أخرى

ويقول خطأ أوراكل ما يلي:

<اقتباس فقرة>   

ويتم إنشاؤها ORA-12154 بواسطة طبقة شبكة أوراكل. يتم طرح رسالة الخطأ TNS أثناء عملية تسجيل الدخول إلى قاعدة بيانات. يشير هذا الخطأ إلى أن برامج الاتصالات في أوراكل (SQL * صافي أو Net8) لم تعترف اسم المضيف / الخدمة المحددة في معلمات الاتصال. يشير هذا الخطأ دائما تقريبا التكوين من أوراكل TNS الإدخالات.

ويمكن أن تتصل المثال أوراكل باستخدام sqlplus أو أداة ديسيبل آخر؟

ومن الغريب أن التطبيق يعمل بشكل جيد بالرغم من ذلك.

هل هناك $ ORACLE_SID حول زرع في مكان ما يمكن أن يشير إلى ديسيبل لا وجود له؟

في مزود خدمة وأود أن probaly تشغيل profuiler لمعرفة ما يجري بالفعل أرسلت نائب ما أعتقد أنني اقامة. أنا متأكد من اسلو أوراكل لديه بعض نوع من التنميط فائدة. سوف أحاول ذلك ونرى، قد تجد أنه لا يستخدم بيانات الاعتماد التي تينك هو عليه.

حسنا، كما ذكر مايك، أورا-12145 يعني TNS لا يمكن حل معرف قاعدة البيانات (TNS هو أوراكل تعيين اسم لقاعدة البيانات، شيء على-كيندا مثل DNS). إذا كان يمكنك العثور على الملف TNSNAMES.ORA الخاص بك، يمكنك ان ترى ما قواعد البيانات تم تكوينها هناك، وقارن ذلك إلى ملف database.yml. حقيقة أنه يعمل كما تأخر وظيفة ولكن ليس من سطر الأوامر أمر غريب بعض الشيء، ورغم ذلك، ويجعلني أفكر أنه ربما هناك بعض متغيرات البيئة التي يجري وضعها في سياق واحد التي ليست في الآخر.

إذا لم يكن أي من عموم الخروج، وهناك قائمة طويلة من الاقتراحات استكشاف الأخطاء وإصلاحها في < وأ href = "http://ora-12154.ora-code.com" يختلط = "نوفولو noreferrer"> http://ora-12154.ora-code.com التي هي محددة لهذا رمز الخطأ.

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