I get a request to check ldap.ora on all $ORACLE_HOME on 300 Unix servers. I do not want to logon to each server and check each oracle_home, I use the following method to check, it took a few hours to build this solution, and then I can run it again and again, and each time it only took a few minutes to complete!
Step1: find out all the ORACLE_HOME registered in Grid Control. I use this query:
with oraclehomevw as
(
SELECT mgmt$target.host_name
, mgmt$target.target_name
, mgmt$target.target_type
, mgmt$target_properties.property_name
, mgmt$target_properties.property_value
FROM mgmt$target , mgmt$target_properties
WHERE ( mgmt$target.target_name = mgmt$target_properties.target_name )
AND ( mgmt$target.target_type = mgmt$target_properties.target_type )
and ( lower(mgmt$target_properties.property_name) like '%%home%')
and mgmt$target_properties.property_value is not null
and lower(mgmt$target_properties.property_name) not in ('domain_home','home_guid','adrhome','javahome')
and (mgmt$target_properties.property_value like '%/%/%' or mgmt$target_properties.property_value like '%\\%')
and mgmt$target.host_name not like '%http%'
)
select distinct 'echo "Checking '||host_name||':'||property_value ||'/network/admin/ldap.ora:" >> /drives/c/dropit/d.txt; sshpass -p $PASSWORD ssh oracleunixuser@'||host_name||' grep -i ldap '||property_value||'/network/admin/ldap.ora >>/drives/c/dropit/d.txt' from oraclehomevw order by 1
/
Save the query output to c:\dropit\ldap.bat, 300+ lines like this...
echo "Checking servername.domain.com:$oracle_home/network/admin/ldap.ora:" >> /drives/c/dropit/d.txt; sshpass -p $PASSWORD ssh oracleunixuser@ servername.domain.com grep -i _SERVERS $oracle_home/network/admin/ldap.ora >>/drives/c/dropit/d.txt
...
Step 2: run this generated query in mobaxterm.
export $PASSWORD=oracleunixaccountpassword
cd /cygdrive/c/dropit/
sh ./ldap.bat
The output t.txt has many lines like this:
Checking servername.domain.com:$oracle_home/network/admin/ldap.ora:
DIRECTORY_SERVERS= (ldapservername1.domain:port:ssl port, ldapservername2.domain:port:ssl port)
...
Step 3: Examine the output file and check the setting.
Step1: find out all the ORACLE_HOME registered in Grid Control. I use this query:
with oraclehomevw as
(
SELECT mgmt$target.host_name
, mgmt$target.target_name
, mgmt$target.target_type
, mgmt$target_properties.property_name
, mgmt$target_properties.property_value
FROM mgmt$target , mgmt$target_properties
WHERE ( mgmt$target.target_name = mgmt$target_properties.target_name )
AND ( mgmt$target.target_type = mgmt$target_properties.target_type )
and ( lower(mgmt$target_properties.property_name) like '%%home%')
and mgmt$target_properties.property_value is not null
and lower(mgmt$target_properties.property_name) not in ('domain_home','home_guid','adrhome','javahome')
and (mgmt$target_properties.property_value like '%/%/%' or mgmt$target_properties.property_value like '%\\%')
and mgmt$target.host_name not like '%http%'
)
select distinct 'echo "Checking '||host_name||':'||property_value ||'/network/admin/ldap.ora:" >> /drives/c/dropit/d.txt; sshpass -p $PASSWORD ssh oracleunixuser@'||host_name||' grep -i ldap '||property_value||'/network/admin/ldap.ora >>/drives/c/dropit/d.txt' from oraclehomevw order by 1
/
Save the query output to c:\dropit\ldap.bat, 300+ lines like this...
echo "Checking servername.domain.com:$oracle_home/network/admin/ldap.ora:" >> /drives/c/dropit/d.txt; sshpass -p $PASSWORD ssh oracleunixuser@ servername.domain.com grep -i _SERVERS $oracle_home/network/admin/ldap.ora >>/drives/c/dropit/d.txt
...
Step 2: run this generated query in mobaxterm.
export $PASSWORD=oracleunixaccountpassword
cd /cygdrive/c/dropit/
sh ./ldap.bat
The output t.txt has many lines like this:
Checking servername.domain.com:$oracle_home/network/admin/ldap.ora:
DIRECTORY_SERVERS= (ldapservername1.domain:port:ssl port, ldapservername2.domain:port:ssl port)
...
Step 3: Examine the output file and check the setting.
Comments
Post a Comment