الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Troubleshooting Connection Problems

Featured Replies

بتاريخ:

سوف أشرح لكم في هذا الموضوع عن حل معظم مشاكل الإتصال مع قاعدة البيانات سواءً كانت هذه المشاكل من جهة السيرفر أوجهة الكلينت:

أولاً : حل مشاكل الإتصال (Connection) من جهة السيرفر

# المشكلة الأولى: عمل Check لجهاز السيرفر للتأكد من عمله وأنه مفتوح وحلها كما يلي :>>>
التأكد من فعالية السيرفر للتمكن من الإتصال به، فإذا كنت تستخدم TCP/IP network فقم بإستخدام أداة ال Ping وكما في المثال الأتي الذي يشيك ان السيرفر omarcom يعمل :

C:\users\default>ping omarcom
Pinging omarcom [10.69.30.113] with 32 bytes of data:
Reply from 10.69.30.113: bytes=32 time=10ms TTL=248
Reply from 10.69.30.113: bytes=32 time=10ms TTL=248
Reply from 10.69.30.113: bytes=32 time<10ms TTL=248
Reply from 10.69.30.113: bytes=32 time=10ms TTL=248


الReply تشير أن الشبكة ترى الجهاز الذي أسمه omarcom
****************************************************************

# المشكلة الثانية: عمل Check لقاعدة البيانات(Database) وحلها كما يلي:>>>
التأكد من قاعدة البيانات في حالة Running ويتم ذلك من خلال الاتصال بOracle server بإستخدام إحدى الأدوات ومن ضمنها SQL* Plusواليك المثال الاتي الذي يحاول الإتصال بقاعدة البيانات من خلال الجهاز (reyati ) :-

D:\oracle\ora10g\BIN>sqlplus system/manager
SQL*Plus: Release 10.1.0.2.0 - Production on Thu Jun 10 10:08:16 2004
Copyright (c) 1982, 2004, Oracle. All rights reserved.
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist


هنا لم تتم عملية الاتصال بقاعدة البيانات
الخطأ رقم ORA-01034 للدلالة على أن الOracle Instace ليس شغال
الخطأ رقم ORA-27101 للدلالة على أنه لا يتوفرInstance لعمل connection
****************************************************************

# المشكلة الثالثة: التأكد من قاعدة البيانات(Database) مفتوحة ومتوفرة لجميع الUsers وحلها كما يلي:>>>
في بعض الحالات يتم وضع قاعدة البيانات في حالة RESTRICTED ولايتم اعطاء هذه الصلاحية الا لمستخدمين معيين ، فعندما يحاول مستخدم الإتصال بقاعدة البيانات وتكون في حالة RESTRICTED وهذا المستخدم ليس لديه هذه الصلاحية فإنه يظهر له المسج رقم ORA-01035 للدلالة على أن قاعدة البيانات في حالة RESTRICTED وهو ليس هذه الصلاحية ، وكما في المثال الاتي :

D:\>sqlplus scott/tiger@ORCL
SQL*Plus: Release 10.1.0.2.0 - Production on Thu Jun 10 10:09:19 2004
Copyright (c) 1982, 2004, Oracle. All rights reserved.
ERROR:
ORA-01035: ORACLE only available to users with RESTRICTED SESSION privilege


كما يلاحظ ان اليوزر Scott يحاول الاتصال بORCL service لكن بما أن قاعدة البيانات في حالة RESTRICTED وليس لديه هذه الصلاحية فلايمكن له الاتصال بقاعدة البيانات إلا أن يتم فتح قاعدة البيانات لجميع اليوزر كما يلي :

ALTER SYSTEM DISABLE RESTRICTED SESSION 


او من خلال اعطاء اليوزر صلاحية Restricted Session وكما يلي :

GRANT RESTRICTED SESSION TO SCOTT


****************************************************************

# المشكلة الرابعة: عمل Check لصلاحيات الUser وحلها كما يلي:>>>
إن أي يوزر يحاول الإتصال بقاعدة البيانات يجب أن يكون لديه على الأقل صلاحية تدعى Create Session وهي مهمة لليوزر الذي يرديد الاتصال بOracle server وإذا لم يكن لديه هذه الصلاحية تظهر المسج الاتية عند محاولة الاتصال ORA-01045 وكما في المثال الأتي :

D:\oracle\ora10g\BIN>sqlplus scoot/tiger
SQL*Plus: Release 10.1.0.2.0 - Production on Thu Jun 10 10:09:19 2004
Copyright (c) 1982, 2004, Oracle. All rights reserved.
ERROR:
ORA-01045: user MATT lacks CREATE SESSION privilege; logon denied


ولحل هذه المشكلة يجب إعطاء اليوزر scott هذه الصلاحية وكما في المثال الاتي:

SQL> grant create session to matt;
Grant succeeded


ملاحظة : اليوزر DBA هو الموكل لإعطاء هذه الصلاحية فقط
****************************************************************

# المشكلة الخامسة: التأكد من الListener وحلها كما يلي:>>>
وهنايجب التأكد من أن الListener يعمل ، ويتم ذلك من خلال الأداة تسمى lsnrctl وكما في المثال الاتي :

D:\oracle\ora10g\BIN>lsnrctl status
LSNRCTL for 32-bit Windows: Version 10.1.0.2.0 - Production on 10-JUN-
2004 10:00:36
Copyright (c) 1991, 2004, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=mweishandell.
corp.goxroads.net)(PORT=1522)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for 32-bit Windows: Version
10.1.0.2.0 - Production
Start Date 10-JUN-2004 09:58:47
Uptime 0 days 0 hr. 1 min. 50 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File D:\oracle\ora10g\network\admin\listener.ora
Listener Log File D:\oracle\ora10g\network\log\listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=mweishandell.
corp.goxroads.net)(PORT=1522)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "orcl.com" has 1 instance(s).
Instance "ORCL", status UNKNOWN, has 1 handler(s) for this service...
The command completed successful


وهنا باستخدام الباراميتر lsnrctl status يتضح لنا ان الlsnrctl يعمل ، ومن خلال نتائج هذا الكود يمكن معرفة مواصفات هذا الlsnrctl (اسمه، اصداره،تاريخ بدايته......)
****************************************************************

# المشكلة السادسة: التأكد من Global_DBname وحلها كما يلي :>>>
وهنا يجب التأكد من إسم الGlobal_DBname هو نفس إسم host machine وذلك من النظر في الملف Listener.ora وكما في المثال الاتي :

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = programmer) – machine listener is on
(ORACLE_HOME = d:\oracle\ora10g)
(SID_NAME = orcl)


****************************************************************

# المشكلة السابعة: التأكد منConnection Timeouts وحلها يلي :>>>
إذا ظهرت لك إحدى رسالتي الخطأ(ORA-12535 or ORA-12547) أعلم أن المشكلة هي حصولTiming out قبل عمل الإتصال الصحيح ، وحلها بزيادة وقت الListener للإنتظار لعمل أتصال صحيح وذلك من خلال الباراميتر INBOUND_CONNECT_TIMEOUT والموجود ضمن الملف Lisrener.ora واذا لم يكن هذا الباراميتر موجود يمكنك أضافته الى Lisrener.ora والوقت يكون بالثواني .
****************************************************************
هذا ما لدي من حلول للمشاكل التي قد تظهر من خلال الاتصال بقاعدة البيانات من جهة السيرفر
والدرس القادم سوف يكون في حلول للمشاكل التي قد تظهر من خلال الاتصال بقاعدة البيانات من جهة الكلينت .

إن أصابت فمن الله وإن أخطأت فمن نفسي ومن الشيطان
ولا تنسونا من صالح دعاءكم

تم تعديل بواسطة omar-alreyati

بتاريخ:

مشكور علي المشاركة الجيدة

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.