安装和配置Oracle Internet Directory来解析数据库名称

使用这种类型的DBMS的每个人都可以访问对Oracle DBMS的访问,该存储在tnsnames.ora文件中。

数据以纯文本格式存储在tnsnames.ora文件中,可以使用任何文本编辑器轻松更改。 如果其中没有很多条目,那很好,但是如果组织拥有数百个数据库,该怎么办,必须从各个级别的用户主机或终端服务器提供对数据库的访问。 而且,如果某一时刻数据库已移至另一台主机,或者发生了其他更改,从而更改了对数据库的访问设置,则需要在所有位置更改访问设置。

提供了许多解决方案,包括重定向,别名等。

在这里,我将描述如何安装和配置单个存储库以使用Oracle Internet Directory OID解析数据库名称,以及如何使用LDAP协议申请名称解析。 这比将tnsnames.ora文件保持多达数百个最新位置要方便得多。

OID存储库的数据库的DBMS的安装和配置在此未描述,指示了对该配置重要的关键点。 您可以在公司的网站上熟悉Oracle关于RDBMS数据库,Oracle融合中间件和Oracle Internet Directory产品的许可政策。

软件安装


该软件已安装在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 +最新版本的补丁

为将存储 OID方案的存储库安装软件

DBMS版本12.1.0.2 + PSU
数据库 创建一个“空”数据库:
必须指定
AL32UTF8编码,软件安装中包含ORACLE TEXT
数据库参数:
open_cursors = 800
流程= 500
另外,有必要运行xaview.sql脚本,该脚本是在检查OID安装的阶段发现的。
为数据库配置并提高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 /产品/中间件/ Oracle_IDM1

沿着这条路径,将安装用于oracle融合中间件(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,否则域将无法连接到存储库数据库(请参阅Problem1

 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 

解决方案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指定,我们有此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-将用作cn = orcladmin来访问LDAP的密码
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 /应用程序/ oracle /产品/中间件/ 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
在启动Net Manager的客户端上检查ldap.ora设置
DEFAULT_ADMIN_CONTEXT =“ dc =我的公司,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列表中的第二个服务器

在这种情况下,轮询顺序并不重要,首先要指出地理位置最近的服务器。

默认管理上下文(LDAP)用于默认上下文,以免每次都指示mycompany.ru

出于相同的原因,不建议在别名记录中使用点;他将其视为一个域。

此外,我将告诉您如何配置服务器之间的复制

Source: https://habr.com/ru/post/zh-CN426273/


All Articles