Part two of OUD.
Start it up
# su - oracle
$ /oracle/Middleware/asinst-1/OUD/bin/start-ds
Just to make things happen, I shut down the firewall:$ /oracle/Middleware/asinst-1/OUD/bin/start-ds
# service iptables stop
But at least, I can do things like:
frank@ubuntu64:~$ ldapsearch -D "cn=Directory Manager" -w Welcome1 -h oud -p 1389 -b dc=home,dc=local cn=groups -LLL
dn: cn=Groups,cn=OracleContext,dc=home,dc=local
cn: Groups
objectClass: orclContainer
objectClass: top
TNS Name resolution
Easy, if you have many database instances, and it comes automatically if you want Enterprise User Security (EUS) as well.First step is to register the database (needed for EUS; if you just want TNS name resolving, use the Net Manager (
$ORACLE_HOME/bin/netmgr
), navigate to Command-> Directory-> Export Net Service Names). you can do that with the Database Creation Assistant, but the timing is wrong: dbca usually comes in when the networking is not yet configured.So, let's do the ldap part of network configuration:
[oracle@idm1 ~]$ cd $ORACLE_HOME/network/admin
[oracle@idm1 admin]$ cat ldap.ora
DIRECTORY_SERVERS= (oud.home.local:1389:1636)
DEFAULT_ADMIN_CONTEXT = "dc=home,dc=local"
DIRECTORY_SERVER_TYPE = OID
I want to use the command line version of dbca:
dbca -silent -configureDatabase -sourceDB $ORACLE_SID \
-registerWithDirService true -dirServiceUserName "cn=Directory Manager" \
-dirServicePassword Welcome1 -walletPassword Welkom123
However, it comes back with
Manager is an invalid command line argument.
So I used the GUI. DBCA should be patched to be able to pass parameters with spaces (something with replacing $* with "$@"?!?)The result is that the instance is registered:
frank@ubuntu64:~$ ldapsearch -D "cn=Directory Manager" -w Welcome1 -h oud -p 1389 -b dc=home,dc=local cn=idm1 -LLL
dn: cn=idm1,cn=OracleContext,dc=home,dc=local
orclVersion: 112000
orclcommonrpwdattribute: {SASL-MD5}XjChkyAf9xCbtif/veeBqg==
objectClass: orclApplicationEntity
objectClass: orclService
objectClass: orclDBServer_92
objectClass: orclDBServer
objectClass: top
orclServiceType: DB
orclSid: idm1
orclOracleHome: /oracle/db/product/11.2.0
cn: idm1
orclSystemName: idm1.home.local
userPassword:: e1NTSEF9ZDdHb1BJeHZ4cktQdVduWE1vYzRlVklFaUprT1NpRGtsWFhEcWc9PQ=
=
orclNetDescString: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=idm1.home.local)(
PORT=1521))(CONNECT_DATA=(SERVICE_NAME=idm1.home.local)))
orclDBGlobalName: idm1
orclNetDescName: 000:cn=DESCRIPTION_0
Now, if I did a tnsping, I used to use tnsnames.ora. However, now I can also use the LDAP server. in order to do that, I have to tell the client environment to use LDAP:
[oracle@idm1 admin]$ tnsping idm1
TNS Ping Utility for Linux: Version 11.2.0.3.0 - Production on 22-MAY-2013 14:33:08
Copyright (c) 1997, 2011, Oracle. All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = idm1.home.local)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = idm1.home.local)))
OK (10 msec)
[oracle@idm1 admin]$ vi sqlnet.ora
[oracle@idm1 admin]$ cat sqlnet.ora
NAMES.DIRECTORY_PATH= (LDAP, TNSNAMES)
[oracle@idm1 admin]$ tnsping idm1
TNS Ping Utility for Linux: Version 11.2.0.3.0 - Production on 22-MAY-2013 14:33:52
Copyright (c) 1997, 2011, Oracle. All rights reserved.
Used parameter files:
/oracle/db/product/11.2.0/network/admin/sqlnet.ora
Used LDAP adapter to resolve the alias
Attempting to contact (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=idm1.home.local)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=idm1.home.local)))
OK (10 msec)
So, there you have it: Using Oracle Unified Directory server as mechanism to resolve TNS Names.