データベース名を解決するためのOracle Internet Directoryのインストールおよび構成

このタイプのDBMSで作業したすべての人は、tnsnames.oraファイルに保存されているOracle DBMSへのアクセスを認識しています。



データはプレーンテキストでtnsnames.oraファイルに保存され、任意のテキストエディタを使用して簡単に変更できます。 エントリがそれほど多くない場合は便利ですが、組織に数百のデータベースがあり、さまざまなレベルのユーザーのホストまたはターミナルサーバーからアクセスする必要がある場合はどうすればよいですか。 また、ある瞬間にデータベースが別のホストに移動した場合、またはデータベースへのアクセスパラメータを変更する他の変更が発生した場合は、アクセス設定をどこでも変更する必要があります。



リダイレクト、エイリアスなど、提供する多くのソリューションがあります。



ここでは、Oracle Internet Directory OIDを使用してデータベース名を解決する単一のリポジトリをインストールおよび構成する方法、およびLDAPプロトコルを使用して名前解決を適用する方法について説明します。 これは、tnsnames.oraファイルを最新の数百の場所に保持するよりもはるかに便利です。



OIDリポジトリのデータベース用のDBMSのインストールと設定はここでは説明されていません。この設定に重要なキーポイントが示されています。 会社のWebサイトで、RDBMSデータベース、Oracle Fusion Middleware、およびOracle Internet Directory製品に関するOracleのライセンスポリシーをよく理解できます。



ソフトウェアのインストール



ソフトウェアはLinux OS(SUSE Linux Enterprise Server 11)にインストールされています。OSについては、oracle.comで互換性マトリックスを確認する必要があります。



スタンドアロンサーバー(NodeManagerを実行)をインストールするには、セットアップ時に最新であった次のディストリビューションが使用されました。



JAVA: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を含める

DBパラメーター:

open_cursors = 800

プロセス= 500

さらに、OIDインストールの確認段階で判明したxaview.sqlスクリプトを実行する必要がありました。

データベースのLISTENERを構成して上げます。



したがって、空のデータベースはuhost-oid1:1521 / oid1(この場合、データベースのoid1- SID)によって作成され、その中にリポジトリを作成する準備ができています。



OIDを設定



以下、oracleユーザーのホームディレクトリは/ u / app / oracleです。

Javaを解凍し、変数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サーバー転送を最初に構成する必要があります)、Javaベースのインストーラーが起動します。



ORACLE_HOMEとして次が指定されました。



/ u / app / oracle / product /ミドルウェア/ Oracle_IDM1



このパスに沿って、Oracle Fusion Middleware(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
      
      





FMWソフトウェアを使用してORACLE_HOMEに存在する必要があります。



 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
      
      





Solution1 :上記のように、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:
      
      





Solution2 :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に指定され、このweblogicがあります)



 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-./rcu中に設定されたリポジトリに基づくODSスキームのパスワード

orcladminPassword-LDAPにアクセスするためにcn = orcladminとして使用されるパスワード

realmDN-LDAP-設定されるスキーム



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





実行後、oid1という名前のコンポーネント(FMWの観点からのインスタンス)が作成されます



問題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
      
      









Solution4:

oid_setupを再度実行します

Net Managerが起動するクライアントのldap.ora設定を確認します

DEFAULT_ADMIN_CONTEXT = "dc = mycompany、dc = ru"



OIDパラメータの変更(匿名ユーザーからのリクエストを許可するため)

ネットマネージャーを使用してTNS名が作成されたが、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の可用性の確認(SSL用)



これがどのように機能するか(パスワードを使用)



 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リストの2番目のサーバーに移動します



この場合のポーリング順序は重要ではありません。最初の方が地理的に最も近いサーバーを指定する方が適切です。



デフォルトのコンテキストにデフォルトの管理コンテキスト(LDAP)が使用されているため、毎回mycompany.ruを示すことはありません。



同じ理由で、エイリアスレコードでポイントを使用することはお勧めしません;彼はそれをドメインとして認識します。



さらに、サーバー間のレプリケーションを構成する方法を教えます



All Articles