قم بتثبيت Oracle Internet Directory وتكوينه لتحليل أسماء قاعدة البيانات

كل من عمل مع هذا النوع من DBMS على علم بالوصول إلى Oracle DBMS ، الذي تم تخزينه في ملف tnsnames.ora.

يتم تخزين البيانات في ملف tnsnames.ora في نص عادي ويمكن تغييرها بسهولة باستخدام أي محرر نصوص. من الجيد إذا لم يكن هناك العديد من الإدخالات فيه ، ولكن ماذا تفعل إذا كان لدى المنظمة المئات من قواعد البيانات ، والتي يجب توفير الوصول إليها من مضيفات المستخدمين من مستويات مختلفة أو من خوادم طرفية. وإذا انتقلت قاعدة البيانات في نقطة جيدة إلى مضيف آخر ، أو حدثت تغييرات أخرى تغير إعدادات الوصول إلى قاعدة البيانات ، فأنت بحاجة إلى تغيير إعدادات الوصول في كل مكان.

هناك العديد من الحلول لتقديمها ، بما في ذلك عمليات إعادة التوجيه والأسماء المستعارة وما إلى ذلك.

سأصف هنا كيفية تثبيت مستودع واحد وتكوينه لحل أسماء قاعدة البيانات باستخدام Oracle Internet Directory OID ، وكيفية التقدم لتحليل الاسم باستخدام بروتوكول LDAP. هذا أكثر ملاءمة من الاحتفاظ بملف tnsnames.ora حتى مئات الأماكن محدثة.

لم يتم وصف تثبيت وتكوين DBMS لقاعدة بيانات مستودع OID هنا ، يشار إلى النقاط الرئيسية المهمة لهذا التكوين. يمكنك التعرف على سياسة الترخيص الخاصة بـ Oracle فيما يتعلق بقاعدة بيانات RDBMS و Oracle Fusion Middleware ومنتجات Oracle Internet Directory على موقع الشركة على الويب.

تثبيت البرنامج


تم تثبيت البرنامج على نظام التشغيل Linux (SUSE Linux Enterprise Server 11) ، لأنظمة التشغيل الخاصة بك تحتاج إلى التحقق من مصفوفة التوافق على oracle.com.

لتثبيت خادم مستقل (يعمل بنظام NodeManager) ، تم إجراء التوزيعات التالية التي كانت سارية وقت الإعداد:

جافا: jdk-8u171-linux-x64.tar.gz
OID: fmw_12.2.1.3.0_oid_linux64_Disk1_1of1.zip
RDBMS: 12.1.0.2 + PSU + Opatch من الإصدارات الحالية

قم بتثبيت برنامج المستودع الذي سيتم تخزين مخططات OID فيه

إصدار DBMS 12.1.0.2 + PSU
DB إنشاء قاعدة بيانات "فارغة":
يجب أن تحدد
ترميز AL32UTF8 ، يتضمن ORACLE TEXT في تثبيت البرنامج
معلمات قاعدة البيانات:
المؤشرات المفتوحة = 800
العمليات = 500
بالإضافة إلى ذلك ، كان من الضروري تشغيل البرنامج النصي xaview.sql ، والذي تم اكتشافه في مرحلة التحقق من تثبيت OID.
تكوين ورفع LISTENER لقاعدة البيانات.

لذلك ، تم إنشاء قاعدة البيانات الفارغة بواسطة uhost-oid1: 1521 / oid1 (في هذه الحالة ، oid1- SID لقاعدة البيانات) وهي جاهزة لإنشاء مستودع فيها.

إعداد OID


فيما يلي ، دليل الصفحة الرئيسية لمستخدم أوراكل هو / u / app / oracle
فك حزمة جافا وتعيين JAVA_HOME المتغير

unzip jdk-8u171-linux-x64.tar.gz export JAVA_HOME=/u/app/oracle/jdk1.8.0_171 

فك OID

 unzip fmw_12.2.1.3.0_oid_linux64_Disk1_1of1.zip 


اتضح الملف. / fmw_12.2.1.3.0_oid_linux64.bin

نتحقق من أنه قابل للتنفيذ ، إذا لم نفعل ذلك

 chmod +x 

أطلقنا:

 ./fmw_12.2.1.3.0_oid_linux64.bin 

(يجب تهيئة إعادة توجيه خادم X أولاً) ، سيبدأ برنامج التثبيت المستند إلى جافا.

تم تحديد ما يلي كـ ORACLE_HOME:

/ u / app / oracle / product / middleware / Oracle_IDM1

على طول هذا المسار ، سيتم تثبيت برنامج وسيط دمج أوراكل (FMW) و Oracle Internet Directory.

في مرحلة "نوع التثبيت" ، حدد STANDALONE.



إنشاء مستودع (المخططات اللازمة في قاعدة البيانات)



نقوم بإنشاء مخططات للمستودع في قاعدة البيانات ، لذلك نقوم بتشغيل rcu

 cd /u/app/oracle/product/middleware/Oracle_IDM1/oracle_common/bin/ ./rcu.sh 

في هذه المرحلة ، يتم إنشاء مخططات ODSSM و ODS و DEV_STB (تذكر كلمة المرور ، ستكون مطلوبة عند تكوين مكونات المجال)

ننشئ نطاقًا يعمل فيه OID بالنسبة لنا (نطاق من حيث FMW)


 cd /u/app/oracle/product/middleware/Oracle_IDM1/oracle_common/common/bin ./config.sh 


نقوم بإنشاء المجال في مجلد منفصل عن البرنامج. على سبيل المثال ، حدد هذا:

/ u / app / oracle / config / domains / oid_domain





للاتصال بقاعدة البيانات ، حدد معلمات المخططات التي تم إنشاؤها مسبقًا (وكلمات المرور)
عند التثبيت ، نقوم بتعيين تسجيل الدخول وكلمة المرور لـ NodeManager (سيتم استخدامه في المستقبل للاتصال بـ NodeManager وبدء / إيقاف OID نفسه من خلاله)

قم بتشغيل NodeManager


لبدء NodeManager ، تحتاج إلى إنشاء ملف باستخدام المفاتيح: DemoIdentity.jks. (إذا قمت ، بالإضافة إلى تثبيت OID ، بتثبيت التحديثات ، فقد لا تكون هذه الخطوة ضرورية)
سننشئ "افتراضي" حتى لا نتعذب مع معلمات تحميل مخزن المفاتيح في تهيئة النطاق. يعمل مع هذه المعلمات - هذه هي كلمة المرور الافتراضية للمستودع:

 cd /u/app/oracle/product/middleware/Oracle_IDM1/oracle_common/common/bin 

تنفيذ

 . setWlstEnv.sh 

(بالضرورة مع نقطة ، لا يعمل بطريقة أخرى)
انتقل إلى الدليل حيث يجب تخزين الملف:

 cd /u/app/oracle/config/domains/oid_domain/security java utils.CertGen -keyfilepass DemoIdentityPassPhrase -certfile democert -keyfile demokey -strength 1024 -noskid java utils.ImportPrivateKey -keystore DemoIdentity.jks -storepass DemoIdentityKeyStorePassPhrase -keyfile demokey -keyfilepass DemoIdentityPassPhrase -certfile democert.pem -keyfile demokey.pem -alias demoidentity 

العبارة الرئيسية DemoIdentityPassPhrase هي فقط ، وإلا سيتعين عليك تعديل تكوين المجال.
من الضروري التعامل مع هذا ، ولكن يجب عليك أولاً البدء في العمل.

 export TNS_ADMIN=/u/app/oracle/config/domains/oid_domain/config/fmwconfig/components/OID/config 

من الضروري تكوين OID نفسه ، وإلا لن يتمكن المجال من الاتصال بقاعدة بيانات المستودع (انظر المشكلة 1 )

 export LD_LIBRARY_PATH=/u/app/oracle/product/middleware/Oracle_IDM1/lib:$LD_LIBRARY_PATH 

مطلوب للعثور على المكتبات المناسبة وسحب أنفسهم من ORACLE_HOME الصحيح

إذا كان أي شيء ، تحقق مع موقع ldd للبحث:

 ldd /u/app/oracle/product/middleware/Oracle_IDM1/bin/oiddispd 

يجب أن يكون في ORACLE_HOME مع برنامج FMW:

 libclntsh.so.12.1 => /u/app/oracle/product/middleware/Oracle_IDM1/lib/libclntsh.so.12.1 

أخطاء إذا لم يكن الأمر كذلك ، انظر المشكلة 2

 cd /u/app/oracle/config/domains/oid_domain/bin/ ./setStartupEnv.sh –  .   ./startNodeManager.sh & 

تأكد من تشغيل NodeManager.
السجلات والتكوين: / u / app / oracle / config / domains / oid_domain / nodemanager

المشكلة 1:

 Jun 22, 2018 10:27:58 AM MSK Fatal error in NodeManager server weblogic.nodemanager.common.ConfigException: Identity key store file not found: /u/app/oracle/config/domains/oid_domain/security/DemoIdentity.jks 

الحل 1 : اذهب وقم بإنشاء DemoIdentity.jks كما هو موضح أعلاه

المشكلة 2 :

 Jun 28, 2018 12:20:08 PM MSK INFO /u/app/oracle/config/domains/oid_domain>><< password: confirm password: Unable to Connect to Database: Incorrect location for tnsnames.ora (derived from DOMAIN_HOME) or Incorrect TNS Connect string or Invalid Password > <createDbWallet domain: /u/app/oracle/config/domains/oid_domain, oidpasswd output: password: confirm password: 

الحل 2 : قم بتعيين متغير TNS_ADMIN وتحقق من صحة اسم المستخدم / كلمة المرور

تكوين OID الأساسي


عند هذه النقطة ، يجب تعيين المتغيرات.
TNS_ADMIN
LD_LIBRARY_PATH
من المفترض أن NodeManager قيد التشغيل بالفعل.
قم بتشغيل أداة WLST:

 cd /u/app/oracle/product/middleware/Oracle_IDM1/oracle_common/common/bin export MW_HOME=$ORACLE_HOME 

نقوم باستخراج المتغيرات اللازمة لعمل أداة WLST

 ./setHomeDirs.sh ./setWlstEnv.sh ./wlst.sh 

علاوة على ذلك ، باستخدام الأداة المساعدة WLST ، نقوم بالاتصال بـ NodeManager. نحتاج إلى اسم مستخدم وكلمة مرور محددين أثناء التثبيت (محدد لـ NodeManager ، لدينا مدونة الويب هذه)

 nmConnect(username='weblogic',password='  NodeManager ',domainName='oid_domain') 

مثال الإخراج :

 [13:45][uhost-oid1.oracle.:/u/app/oracle/product/middleware/Oracle_IDM1/oracle_common/common/bin]$ ./wlst.sh Initializing WebLogic Scripting Tool (WLST) ... Welcome to WebLogic Server Administration Scripting Shell Type help() for help on available commands wls:/offline> nmConnect(username='weblogic',password='*****',domainName='oid_domain') Connecting to Node Manager ... Successfully Connected to Node Manager. 

نبدأ التهيئة ، حيث يتم إنشاء مثيل باسم oid1.
في السطر أدناه:

odsPassword - كلمة مرور نظام ODS بناءً على المستودع الذي تم تعيينه أثناء .rcu
orcladminPassword - كلمة المرور التي سيتم استخدامها كـ cn = orcladmin للوصول إلى LDAP
realmDN - مخطط LDAP - سيتم تكوينه

 oid_setup(orcladminPassword='****',odsPassword='***',realmDN='dc=mycompany,dc=ru') 

بعد التنفيذ ، سيتم إنشاء مكون (مثيل من حيث FMW) بالاسم oid1

المشكلة 3 :
سجل /u/app/oracle/config/domains/oid_domain/servers/OID/logs/oid1/oidmon*.log
يحتوي على

 /u/app/oracle/product/middleware/Oracle_IDM1/wlserver/../bin/oiddispd: <b>error while loading shared libraries</b>: libclntshcore.so.12.1: cannot open shared object file: No such file or directory 

الحل 3 :
قم بتعيين متغير البيئة
LD_LIBRARY_PATH = / u / app / oracle / product / middleware / Oracle_IDM1 / lib: $ LD_LIBRARY_PATH
إعادة تشغيل NodeManager ،
قم بتشغيل المكون:

 cd /u/app/oracle/config/domains/oid_domain/bin/ nohup ./startNodeManager.sh & ./startComponent.sh oid1 

إذا تم إنشاء المكون لهذا السبب ولكنه لا يعمل ، فإننا نقتل عملية oidmon ، ونغير معلمات حالة العملية في DBMS:

 ps –ef|grep oidmon kill oidmon 

 sqlplus / as sysdba update ods.ods_process_status set pid=0 where compname='oid1'; update ods.ods_process_status set state=4 where compname='oid1'; 

فحص الاتصال:

 ./ldapbind -h localhost -p 3060 ./ldapbind -h localhost -p 3131 -U 1 -D 'cn=orcladmin' -w **** 

قد تحتاج إلى تهيئة oid_setup مرة أخرى
المشكلة 4 . عند محاولة الحفظ في NetManager:

 oracle.net.common.dataStore.DataStoreException: error writing ServiceAlias to: LDAPDataStore [svr: uhost-oid1.mycompany.ru:3060:3131, type: OID, ctxt: cn=OracleContext,dc=mycompany,dc=ru, home: C:\oracle\product\12.1.0\client_1] original exception message: TNS-04409:    caused by: oracle.net.config.DirectoryServiceException: TNS-04405:   caused by: oracle.net.ldap.NNFLException original stack trace: oracle.net.config.ServiceAliasException: TNS-04409:    caused by: oracle.net.config.DirectoryServiceException: TNS-04405:   caused by: oracle.net.ldap.NNFLException oracle.net.config.DirectoryServiceException: TNS-04405:   caused by: oracle.net.ldap.NNFLException oracle.net.ldap.NNFLException 



الحل 4:
قم بتشغيل oid_setup مرة أخرى
تحقق من إعدادات ldap.ora على العميل الذي يبدأ منه Net Manager
DEFAULT_ADMIN_CONTEXT = "dc = mycompany، dc = ru"

تغيير معلمة OID (للسماح بطلبات المستخدمين المجهولين)
عندما يتم إنشاء اسم TNS باستخدام net manager ، ولكن لا يعمل tnsping.
قم بإنشاء ملف:
القط anonymousbind.ldif

 dn: cn=oid1,cn=osdldapd,cn=subconfigsubentry changetype: modify replace: orclAnonymousBindsFlag orclAnonymousBindsFlag: 1 

وتعديل المعلمات باستخدام هذا الملف:

 ldapmodify -D cn=orcladmin -W -p 3131 -h localhost -f anonymousbind.ldif 

التشخيص:
لا يعمل tnsping mytest ، يعمل ldapsearch
التحقق من توفر المنافذ 3060 و 3131 (لطبقة المقابس الآمنة)

هكذا تعمل (بكلمة مرور)

 ldapsearch -h uhost-oid1.mycompany.ru -p 3060 -D "cn=orcladmin" -w password_hear -b "cn=mytest,cn=OracleContext,dc=mycompany,dc=ru" -s base "objectclass=*" 

mytest هو اسم مستعار تم إنشاؤه مسبقًا.

إعدادات العميل


من جانب العميل ، يحتوي $ ORACLE_HOME / network / admin على الملفات:
ldap.ora
sqlnet.ora
tnsnames.ora

يحتوي ملف tnsnames.ora على أسماء مستعارة "محلية" ، كالمعتاد ، ويستخدم إذا لم يتم العثور على اسم في LDAP.
يحتوي ملف sqlnet.ora على وصف لترتيب المحلل:

sqlnet.ora

SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES,LDAP)


يتم تعيين إعدادات الوصول لملف LDAP في ldap.ora

ldap.ora

 DIRECTORY_SERVERS = (uhost-oid1.mycompany.ru:3060:3131,rephost-oid1.mycompany.ru:3060:3131) DIRECTORY_SERVER_TYPE = OID DEFAULT_ADMIN_CONTEXT = "dc=mycompany,dc=ru" 

في التكوين الموصوف ، يتم استخدام الترتيب التالي.

أولاً ، يتم عرض ملف tnsnames.ora ، إذا لم يتم العثور على السجل هناك ، فإننا نطلب LDAP (إذا كنت بحاجة إلى تغيير الترتيب ، قم بتغيير الترتيب في المعلمة NAMES.DIRECTORY_PATH

التالي هو طلب إلى خادم LDAP الرئيسي ، إذا كان غير متاح لسبب ما ، فانتقل إلى الخادم الثاني في قائمة DIRECTORY_SERVERS

ترتيب الاستطلاع في هذه الحالة ليس مهمًا ، من الأفضل الإشارة إلى أقرب خادم جغرافيًا.

يتم استخدام سياق المسؤول الافتراضي (LDAP) للسياق الافتراضي ، حتى لا تشير إلى mycompany.ru في كل مرة

للسبب نفسه ، لا يوصى باستخدام نقطة في سجل اسم مستعار ؛ فهو يعتبرها نطاقًا.

علاوة على ذلك سأقول كيفية تكوين النسخ المتماثل بين الخوادم

Source: https://habr.com/ru/post/ar426273/


All Articles