Installieren und konfigurieren Sie Oracle Internet Directory, um Datenbanknamen aufzulösen

Jeder, der mit diesem DBMS-Typ gearbeitet hat, kennt den Zugriff auf das Oracle-DBMS, das in der Datei tnsnames.ora gespeichert ist.

Die Daten werden in der Datei tnsnames.ora im Klartext gespeichert und können mit jedem Texteditor einfach geändert werden. Es ist gut, wenn nicht viele Einträge enthalten sind. Was tun, wenn die Organisation über Hunderte von Datenbanken verfügt, auf die Hosts von Benutzern verschiedener Ebenen oder Terminalserver zugreifen müssen? Und wenn die Datenbank zu einem bestimmten Zeitpunkt auf einen anderen Host verschoben wird oder andere Änderungen auftreten, die die Zugriffseinstellungen auf die Datenbank ändern, müssen Sie die Zugriffseinstellungen überall ändern.

Es gibt viele Lösungen zu bieten, einschließlich Weiterleitungen, Aliase usw.

Hier werde ich beschreiben, wie ein einzelnes Repository zum Auflösen von Datenbanknamen mithilfe der Oracle Internet Directory-OID installiert und konfiguriert wird und wie die Namensauflösung mithilfe des LDAP-Protokolls beantragt wird. Dies ist viel praktischer, als die Datei tnsnames.ora an Hunderten von Stellen auf dem neuesten Stand zu halten.

Die Installation und Konfiguration des DBMS für die Datenbank des OID-Repositorys wird hier nicht beschrieben, die für diese Konfiguration wichtigen Schlüsselpunkte werden angegeben. Sie können sich auf der Website des Unternehmens mit den Lizenzierungsrichtlinien von Oracle für die Produkte RDBMS Database, Oracle Fusion Middleware und Oracle Internet Directory vertraut machen.

Softwareinstallation


Die Software wurde auf dem Linux-Betriebssystem (SUSE Linux Enterprise Server 11) installiert. Für Ihr Betriebssystem müssen Sie die Kompatibilitätsmatrix auf oracle.com überprüfen.

Zur Installation des Standalone-Servers (mit NodeManager) wurden die folgenden Distributionen verwendet, die zum Zeitpunkt der Einrichtung aktuell waren:

JAVA: jdk-8u171-linux-x64.tar.gz
OID: fmw_12.2.1.3.0_oid_linux64_Disk1_1of1.zip
RDBMS: 12.1.0.2 + Netzteil + Opatch der aktuellen Versionen

Installieren Sie die Software für das Repository, in dem die OID-Schemata gespeichert werden

DBMS Version 12.1.0.2 + Netzteil
DB Erstellen Sie eine "leere" Datenbank:
Muss angeben
AL32UTF8-Codierung, ORACLE TEXT in die Softwareinstallation einbeziehen
DB-Parameter:
open_cursors = 800
Prozesse = 500
Darüber hinaus musste das Skript xaview.sql ausgeführt werden, das bei der Überprüfung der OID-Installation festgestellt wurde.
Konfigurieren und erhöhen Sie LISTENER für die Datenbank.

Die leere Datenbank wurde also von uhost-oid1: 1521 / oid1 (in diesem Fall oid1-SID der Datenbank) erstellt und ist bereit, ein Repository darin zu erstellen.

OID einstellen


Im Folgenden lautet das Home-Verzeichnis des Oracle-Benutzers / u / app / oracle
Entpacke Java und setze die Variable JAVA_HOME

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

OID auspacken

 unzip fmw_12.2.1.3.0_oid_linux64_Disk1_1of1.zip 


Es stellt sich heraus, die Datei ./fmw_12.2.1.3.0_oid_linux64.bin

Wir überprüfen, ob es ausführbar ist, wenn wir dies nicht tun

 chmod +x 

Wir starten:

 ./fmw_12.2.1.3.0_oid_linux64.bin 

(Die X-Server-Weiterleitung muss zuerst konfiguriert werden.) Das Java-basierte Installationsprogramm wird gestartet.

Folgendes wurde als ORACLE_HOME angegeben:

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

Auf diesem Weg wird Software für Oracle Fusion Middleware (FMW) und Oracle Internet Directory installiert.

Geben Sie in der Phase „Installationstyp“ STANDALONE an.



Erstellen Sie ein Repository (erforderliche Schemas in der Datenbank)



Wir erstellen Schemata für das Repository in der Datenbank, dafür führen wir rcu aus

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

Zu diesem Zeitpunkt werden ODSSM-, ODS- und DEV_STB-Schemata erstellt (denken Sie an das Kennwort, das beim Konfigurieren von Domänenkomponenten erforderlich ist).

Wir erstellen eine Domain, in der OID für uns funktioniert (eine Domain in Bezug auf FMW).


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


Wir erstellen die Domain in einem von der Software getrennten Ordner. Geben Sie beispielsweise Folgendes an:

/ u / app / oracle / config / domain / oid_domain





Geben Sie für eine Verbindung zur Datenbank die Parameter zuvor erstellter Schemata (und Kennwörter) an.
Bei der Installation legen wir den Login und das Passwort für NodeManager fest (es wird in Zukunft verwendet, um eine Verbindung zu NodeManager herzustellen und die OID selbst über diesen zu starten / zu stoppen).

Starten Sie NodeManager


Um NodeManager zu starten, müssen Sie eine Datei mit den Schlüsseln DemoIdentity.jks generieren. (Wenn Sie zusätzlich zur Installation von OID Updates installieren, ist dieser Schritt möglicherweise nicht erforderlich.)
Wir werden "Standard" generieren, damit wir nicht mit den Parametern zum Laden des Schlüsselspeichers in der Domänenkonfiguration gequält werden. Es funktioniert mit solchen Parametern - dies ist das Standardkennwort für das Repository:

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

durchführen

 . setWlstEnv.sh 

(unbedingt mit einem Punkt, funktioniert nicht anders)
Wechseln Sie in das Verzeichnis, in dem die Datei gespeichert werden soll:

 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 

Der Schlüsselbegriff DemoIdentityPassPhrase lautet genau das, andernfalls müssen Sie die Domänenkonfiguration bearbeiten.
Es ist notwendig, sich damit zu befassen, aber Sie müssen zuerst mit der Arbeit beginnen.

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

Die OID muss selbst konfiguriert werden, da die Domäne sonst keine Verbindung zur Repository-Datenbank herstellen kann (siehe Problem1 ).

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

benötigt, um die richtigen Bibliotheken zu finden und sich aus dem richtigen ORACLE_HOME zu ziehen

Wenn überhaupt, erkundigen Sie sich bei ldd, wo Sie suchen müssen:

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

Muss mit der FMW-Software auf ORACLE_HOME sein:

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

Fehler, wenn dies nicht der Fall ist, siehe Problem2

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

Stellen Sie sicher, dass NodeManager ausgeführt wird.
Protokolle und Konfiguration: / u / app / oracle / config / domain / oid_domain / nodemanager

Problem 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 

Lösung 1 : Generieren Sie DemoIdentity.jks wie oben beschrieben

Problem 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: 

Lösung 2 : Setzen Sie die Variable TNS_ADMIN und überprüfen Sie, ob der Benutzername / das Passwort korrekt ist

Primäre OID-Konfiguration


Zu diesem Zeitpunkt sollten Variablen festgelegt werden.
TNS_ADMIN
LD_LIBRARY_PATH
Es wird davon ausgegangen, dass NodeManager bereits ausgeführt wird.
Starten Sie das WLST-Dienstprogramm:

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

Wir extrahieren die Variablen, die für das WLST-Dienstprogramm erforderlich sind

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

Darüber hinaus stellen wir mithilfe des WLST-Dienstprogramms eine Verbindung zu NodeManager her. Wir benötigen einen Benutzernamen und ein Passwort, die während der Installation angegeben wurden (für NodeManager angegeben, wir haben dieses Weblogic)

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

Ausgabebeispiel :

 [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. 

Wir beginnen mit der Initialisierung, bei der eine Instanz mit dem Namen oid1 erstellt wird.
In der folgenden Zeile:

odsPassword - Kennwort für das ODS-Schema basierend auf dem Repository, das während ./rcu festgelegt wurde
orcladminPassword - Kennwort, das als cn = orcladmin für den Zugriff auf LDAP verwendet wird
RealmDN - LDAP - zu konfigurierendes Schema

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

Nach der Ausführung wird eine Komponente (Instanz in Bezug auf FMW) mit dem Namen oid1 erstellt

Problem 3 :
Protokollieren Sie /u/app/oracle/config/domains/oid_domain/servers/OID/logs/oid1/oidmon*.log
enthält

 /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 

Lösung 3 :
Legen Sie die Umgebungsvariable fest
LD_LIBRARY_PATH = / u / app / oracle / product / middleware / Oracle_IDM1 / lib: $ LD_LIBRARY_PATH
Starten Sie NodeManager neu.
Führen Sie die Komponente aus:

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

Wenn die Komponente aus diesem Grund erstellt wurde, aber nicht funktioniert, beenden wir den Oidmon-Prozess und ändern die Prozessstatusparameter im 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'; 

Verbindungsprüfung:

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

Möglicherweise müssen Sie oid_setup erneut initialisieren
Problem 4 . Beim Versuch, in NetManager zu speichern:

 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 



Lösung 4:
Führen Sie oid_setup erneut aus
Überprüfen Sie die Einstellungen von ldap.ora auf dem Client, von dem aus Net Manager gestartet wird
DEFAULT_ADMIN_CONTEXT = "dc = mycompany, dc = ru"

Ändern Sie den OID-Parameter (um Anforderungen von anonymen Benutzern zuzulassen).
Wenn ein TNS-Name mit dem Net Manager erstellt wird, tnsping jedoch nicht funktioniert.
Erstellen Sie eine Datei:
Katze anonymbind.ldif

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

und ändern Sie die Parameter mithilfe dieser Datei:

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

Diagnose:
tnsping mytest funktioniert nicht, eine ldapsearch funktioniert
Überprüfen der Verfügbarkeit der Ports 3060 und 3131 (für SSL)

So funktioniert es (mit einem Passwort)

 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 ist ein zuvor erstellter Alias.

Client-Einstellungen


Auf der Clientseite enthält $ ORACLE_HOME / network / admin die folgenden Dateien:
ldap.ora
sqlnet.ora
tnsnames.ora

Die Datei tnsnames.ora enthält wie üblich "lokale" Aliase und wird verwendet, wenn in LDAP kein Name gefunden wird.
Die Datei sqlnet.ora enthält eine Beschreibung der Resolver-Reihenfolge:

sqlnet.ora

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


Die Zugriffseinstellungen für die LDAP-Datei werden in ldap.ora festgelegt

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" 

In der beschriebenen Konfiguration wird die folgende Reihenfolge verwendet.

Zuerst wird die Datei tnsnames.ora angezeigt. Wenn der Datensatz dort nicht gefunden wurde, fragen wir LDAP (wenn Sie die Reihenfolge ändern müssen, ändern Sie die Reihenfolge im Parameter NAMES.DIRECTORY_PATH

Als Nächstes wird eine Anforderung an den LDAP-Hauptserver gesendet. Wenn diese aus irgendeinem Grund nicht verfügbar ist, wechseln Sie zum zweiten Server in der Liste DIRECTORY_SERVERS

Die Abrufreihenfolge ist in diesem Fall nicht wichtig. Die erste ist besser, um den geografisch nächstgelegenen Server anzugeben.

Der Standard-Administratorkontext (LDAP) wird für den Standardkontext verwendet, um nicht jedes Mal mycompany.ru anzugeben

Aus dem gleichen Grund wird nicht empfohlen, einen Punkt in einem Alias-Datensatz zu verwenden, er nimmt ihn als Domäne wahr.

Außerdem werde ich erklären, wie die Replikation zwischen Servern konfiguriert wird

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


All Articles