Oracle Internet Directory (OID) 是 Oracle 用来集中存储和管理网络服务名称的解决方案。Oracle Internet Directory 10g 是一个轻型目录访问协议 (LDAP) v3 目录服务的实施,用于查询和修改任何类似目录的实体,如人员、机构、打印机或数据库服务名称。OID 是 Oracle 身份管理 10g (10.1.4.0.1) 的一个组件,作为专门的层次数据库,它适于存储很少改动的读密集型条目。它集 Oracle 10g 数据库的可伸缩性、性能和可用性与 LDAP 目录服务的可扩展性和灵活性于一体,充分发挥了二者所长。
OID 有多种用途。数据库服务名称解析只是其众多特性之一。本文旨在让您熟悉如何将 OID 作为在 Red Hat Enterprise Linux 4 (RHEL 4) 上存储 Oracle 的网络服务名称的集中信息库来进行设置、配置和使用。此外,我还将演示如何使用基于 LDAP 的双向复制来复制 OID,以消除单点故障。基于 LDAP 的双向复制将在提供方副本和使用方副本之间传播更改。
概述
本指南分为以下步骤:
下面是对 OID 数据库环境的概述:
[@more@]主机名 | 数据库名 | AS 实例名 | 数据库角色 |
oidsrv1 | asdb1 | infra1 | 提供方副本 |
oidsrv2 | asdb2 | infra2 | 使用方副本 |
简介
Oracle 网络服务名称分层存储在倒置的类似树的结构中,该结构称为目录信息树 (DIT)。每个服务标识符和连接描述符都是该树的条目。
服务名在 OID 中由识别名称 (DN) 唯一识别。例如,服务名 nydb 的 DN 条目是
dn:cn=nydb, cn=OracleContext, dc=mycorpdomain, dc=com
在上面 nydb 的 DN 条目中,树的根目录或基本目录 DN 是 dc=com,该目录下包括 dc=mycorpdomain、cn=OracleContext 以及 cn=nydb。连接描述符信息位于 cn=nydb 之下,包含了该服务的网络位置。
cn=OracleContext 是一个特殊的条目,用于与 Oracle 网络服务相关的条目以支持目录命名。所有 Oracle 网络服务均位于这个特殊条目下。
以下是本指南中将用到的一些属性:
属性 | 说明 |
cn | 常用名称 |
dc | 域组件 |
sn | 姓氏 |
userpassword | 目录用户口令 |
安装 OID 提供方副本节点
在提供方节点 oidsrv1 上安装 Oracle 身份管理软件。安装程序将安装二进制文件和预先配置的 OID 数据库,然后启动 OID 进程。
编辑 Oracle 用户环境文件
[oracle@oidsrv1 ~]$ more .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
.~/.bashrc
fi
export PATH=$PATH:$HOME/bin
export ORACLE_SID=asdb1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/as10g
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:$PATH
umask 022
创建文件系统目录结构
[oracle@oidsrv1 ~]$ mkdir -p $ORACLE_HOME
[oracle@oidsrv1 ~]$ mkdir -p /u01/app/oracle/admin
[oracle@oidsrv1 ~]$ mkdir -p /u01/oradata
安装 Oracle 身份管理软件
从 Oracle 技术网 (OTN) 上下载 OID 软件。
[oracle@oidsrv1 ~]$ ../.bash_profile
[oracle@oidsrv1 ~]$ /staging/as10g/Disk1/runInstaller
- Welcome:单击 Next。
- 指定文件位置:
a. 名称:oracleas1
b. 路径:/u01/app/oracle/product/as10g - 选择要安装的产品:
a. 选择 Oracle Application Server Infrastructure 10g。 - 选择安装类型:
a. 选择 Identity Management and Metadata Repository。 - 执行特定产品前提条件检查:
a. 所有检查均通过后,才可继续下一步。 - 确认安装前要求:
a. 选择 Root Privileges。 - 选择配置选项:
a. 选择 Oracle Internet Directory。
b. 选择 Oracle Application Server Single Sign-On。
c. 选择 Oracle Application Server Delegated Administration Service。
d. 选择 Oracle Directory Integration Platform。 - 指定端口配置选项:
a. 选择 Automatic。 - 指定 Oracle Internet Directory 中的命名空间:
a. 选择 Suggested Namespace:dc=mycorpdomain, dc=com。 - 指定数据库配置选项:
a. 全局数据库名:asdb1.mycorpdomain.com
b. SID:asdb1
c. 选择数据库字符集:Unicode standard UTF-8 AL32UTF8。
d. 指定数据库文件位置:/u01/oradata/ - 指定数据库模式口令:
a. 选择 Use the same password for all the accounts。
b. 输入口令:oracle
c. 确认口令:oracle - 指定实例名和 ias_admin 口令:a. 实例名:infra1
b. ias_admin 口令:ias_admin1
c. 确认口令:ias_admin1 - Summary:单击 Install。
- 以 root 用户的身份在另一个窗口中执行 /u01/app/oracle/product/as10g/root.sh 脚本。
- 设置权限:当 root.sh 脚本在节点上运行后,单击 OK。
- 安装结束:单击 Exit。
OID 进程
进程 | 说明 | ||
oidmon | OID 监视进程 | ||
oidldapd | LDAP 服务器/调度程序 | ||
oidrepld | Oracle 目录复制服务器 | ||
odisrv | Oracle 目录集成服务器 |
在 oidsrv2 上安装了副本之后,我们将在 oidsrv1 上手动启动复制服务器。
验证 OID 连通性
验证您可以使用环境中适当的 LDAP 端口绑定到 OID。端口号位于 /u01/app/oracle/product/as10g/install/portlist.ini 中。本指南中使用的端口是 389(非 SSL)和 636 (SSL)。
[oracle@oidsrv1 ~]$ $ORACLE_HOME/bin/ldapbind -p 389 -h oidsrv1 -D cn=orcladmin -w ias_admin1
bind successful
安装 OID 使用方副本节点
OID 在服务名称解析中发挥了重要作用。为了确保 OID 的高可用性,需要安装一个使用方副本节点以便在提供方副本节点不可用时仍能继续提供服务。
在副本节点 oidsrv2 上安装 OID 软件。安装程序将安装二进制文件和预先配置的 OID 数据库,启动 OID 进程,并将提供方 OID 复制到使用方 OID。
编辑 Oracle 用户环境文件
[oracle@oidsrv2 ~]$ more .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
.~/.bashrc
fi
export PATH=$PATH:$HOME/bin
export ORACLE_SID=asdb2
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/as10g
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:$PATH
umask 022
创建文件系统目录结构
[oracle@oidsrv2 ~]$ mkdir -p $ORACLE_HOME
[oracle@oidsrv2 ~]$ mkdir -p /u01/app/oracle/admin
[oracle@oidsrv2 ~]$ mkdir -p /u01/oradata
安装 OID 软件
从 oidsrv1 复制之前使用的 OID 软件。
[oracle@oidsrv2 ~]$ ../.bash_profile
[oracle@oidsrv2 ~]$ /staging/as10g/Disk1/runInstaller
- Welcome:单击 Next。
- 指定文件位置:
a. 名称:oracleas1
b. 路径:/u01/app/oracle/product/as10g - 选择要安装的产品:
a. 选择 Oracle Application Server Infrastructure 10g。 - 选择安装类型:
a. 选择 Identity Management and Metadata Repository。 - 执行特定产品前提条件检查:
a. 所有检查均通过后,才可继续下一步。 - 确认安装前要求:
a. 选择 Root Privileges。 - 选择配置选项:
a. 选择 Oracle Internet Directory。
b. 选择 Oracle Application Server Single Sign-On。
c. 选择 Oracle Application Server Delegated Administration Service。
d. 选择 Oracle Directory Integration Platform。
e. 选择 High Availability and Replication。 - 指定端口配置选项:
a. 选择 Automatic。 - 选择高可用性或复制选项:
a. 选择 Replication。 - 选择 Oracle Internet Directory 复制模式:
a. 选择 Two-way LDAP replication。 - 指定 Oracle Internet Directory 主节点:
a. 主机名:oidsrv1.mycorpdomain.com
b. 端口: 636
c. 选择 Use only SSL connections with this Oracle Internet Directory。 - 指定主 Oracle Internet Directory 登录:
a. 用户名:cn=orcladmin
b. 口令:ias_admin1 - 指定 Oracle Internet Directory 中的命名空间:
a. 选择 Suggested Namespace:dc=mycorpdomain, dc=com。 - 指定数据库配置选项:
a. 全局数据库名:asdb2.mycorpdomain.com
b. SID:asdb2
c. 选择数据库字符集:Unicode standard UTF-8 AL32UTF8。
d. 指定数据库文件位置:/u01/oradata/ - 指定数据库模式口令:
a. 选择 Use the same password for all the accounts。
b. 输入口令:oracle
c. 确认口令:oracle - 指定实例名和 ias_admin 口令:
a. 实例名:infra2
b. ias_admin 口令:ias_admin2。
c. 确认口令:ias_admin2。 - Summary:单击 Install。
- 以 root 用户的身份在另一个窗口中执行 /u01/app/oracle/product/as10g/root.sh 脚本。
- 设置权限:当 root.sh 脚本在节点上运行后,单击 OK。
- 安装结束:单击 Exit。
OID 进程
在提供方节点上手动启动复制进程
验证 OID 连通性
验证您可以使用环境中适当的 LDAP 端口绑定到 OID。端口号位于 /u01/app/oracle/product/as10g/install/portlist.ini 中。本指南中使用的端口是 389(非 SSL)和 636 (SSL)。
[oracle@oidsrv2 ~]$ $ORACLE_HOME/bin/ldapbind -p 389 -h oidsrv2 -D cn=orcladmin -w ias_admin2
bind successful
创建 LDAP 用户
OID 安装将创建一个名为 orcladmin 的默认管理员用户。您应该创建其他用户,从而可以使用 GUI Oracle Directory Manager (oidadmin) 管理工具或命令行实用程序 (ldapadd) 来管理 Oracle 网络服务。创建的每个用户都是 OID 中的一个目录条目。
使用 LDAP 命令行实用程序添加用户很简单。我们将创建两个 LDAP 数据交换格式 (LDIF) 文件:
- cruser.ldif — 定义目录用户的结构。
- addgrp.ldif — 定义用户的组 (OracleNetAdmins)。
LDIF 文件是标准化的文本文件格式,用于描述目录条目的改动。
cruser.ldif
dn:cn=vchan,cn=OracleNetAdmins,cn=OracleContext,dc=mycorpdomain,dc=com
userpassword:vchan1
objectclass:person
sn:Chan
cruser.ldif 中的第一行是用户的 DN,其余的行指定了属性。对象类 person 描述了 DN 条目并包含一个或多个属性,如用 userpassword 和 sn。sn 是 person 对象类中的必需属性。
addgrp.ldif
dn:cn=OracleNetAdmins,cn=OracleContext,dc=mycorpdomain,dc=com
changetype:modify
add:uniquemember
uniquemember:cn=vchan,cn=OracleNetAdmins,cn=OracleContext,dc=mycorpdomain,dc=com
创建目录用户,并将用户添加到 OracleNetAdmins 组:
[oracle@oidsrv1 ~]$ ldapadd -p 389 -h oidsrv1 -D cn=orcladmin -w ias_admin1 -f /tmp/cruser.ldif
adding new entry cn=vchan,cn=OracleNetAdmins,cn=OracleContext,dc=mycorpdomain,dc=com
[oracle@oidsrv1 ~]$ ldapmodify -p 389 -h oidsrv1 -D cn=orcladmin -w ias_admin1 -f /tmp/addgrp.ldif
modifying entry cn=OracleNetAdmins,cn=OracleContext,dc=mycorpdomain,dc=com
在提供方节点上创建服务名称
在 OID 中使用 Oracle Net Manager (netmgr) 可以轻松创建网络服务名条目。
将服务名导入 OID
tnsnames.ora
DCDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = trout1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dcdb)
)
)
NYDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = trout2)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = nydb)
)
)
[oracle@oidsrv1 ~]$ netmgr
- 展开 Directory 文件夹。
- 展开 Service Naming 文件夹。
- Directory 服务器身份验证:
a. 用户:cn=vchan,cn=oraclenetadmins,cn=oraclecontext,dc=mycorpdomain,dc=com
b. 口令:vchan1 - 单击 Command。
- 选择 Directory。
- 选择 Export Net Service Names。
- Directory 服务器移植向导:简介:单击 Next。
- 选择网络服务名:
a. 选择 DCDB。
b. 选择 NYDB。 - 选择目的地上下文:
a. 目录命名上下文:
b. Oracle 上下文:cn=OracleContext,dc=mycorpdomain,dc=com - Directory 服务器更新:单击 Finish。
验证提供方和使用方副本节点中的服务名条目
提供方节点中创建的网络服务名应当自动传播至使用方节点。在提供方和使用方副本节点上登录 Oracle Directory Manager,验证新建的服务名条目。
[oracle@oidsrv2 ~]$ oidadmin
配置客户端
将服务名添加到 OID 中后,需配置客户端以测试服务名解析。
有两个文件需要添加和修改:
- sqlnet.ora — 指导客户端使用 OID(而不是 tnsnames.ora)进行名称解析。
- ldap.ora — 指定提供方和使用方副本 OID 服务器的主机名和端口号。
sqlnet.ora
NAMES.DIRECTORY_PATH= (LDAP)
ldap.ora
DIRECTORY_SERVERS= (oidsrv1:389:636,oidsrv2:389:636)
DEFAULT_ADMIN_CONTEXT = "dc=mycorpdomain,dc=com"
DIRECTORY_SERVER_TYPE = OID
通过连接到 dcdb 来测试 OID 名称解析:
SQL> connect vchan/vchan@dcdb
Connected.
SQL> select name from v$database;
NAME
---------
DCDB
测试 OID 故障切换功能
如果提供方节点出现故障,则所有请求将自动路由至使用方节点。为了演示故障切换机制,我们将在提供方节点上模拟故障并测试数据库与 nydb 之间的连通性。
SQL> connect sys/oracle@asdb1 as sysdba
Connected.
SQL> select name from v$database;
NAME
---------
ASDB1
SQL> shutdown abort
ORACLE instance shut down.
SQL> connect vchan/vchan@nydb
Connected.
SQL> select name from v$database;
NAME
---------
NYDB
[oracle@grouper ~]$ tnsping nydb
TNS Ping Utility for Linux:Version 10.2.0.1.0 - Production on 24-AUG-2006 18:38:39
Copyright (c) 1997, 2005, Oracle.All rights reserved.
Used parameter files:
/u01/app/oracle/product/10.2.0/db_1/network/admin/sqlnet.ora
Used LDAP adapter to resolve the alias
Attempting to contact (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=trout2)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=nydb)))
OK (10 msec)
结论
Oracle Internet Directory 易于安装、配置以及使用,是用于存储 Oracle 网络服务名的首选产品。将服务名存储在中央信息库中可以简化名称服务的管理,尤其是在需要处理许多客户端计算机时。一种获取 OID 高可用性的方法是使用基于 LDAP 的复制(Oracle 身份管理的选件之一)同步提供方和使用方之间的更改。有关使用或管理 Oracle Internet Directory 的更全面的信息,请参阅 Oracle Internet Directory 管理员指南 10g (10.1.4.0.1)。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/678020/viewspace-1044091/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/678020/viewspace-1044091/