Problem statement: Suppose you are running OMS instance and repository database in Solaris server and running older version of OMS. You want to upgrade OMS to 13.5 or later and at the same time you want to change OS platform from Solaris to Linux. During this process we need to build new OMS instance and repository database in new Linux platform. Once that is done we have to install new agent and run target discovery.Now you can promote targets from the autodiscovery results.
This will be very time-consuming effort if you have very
large number of targets.This article will guide you how to reduce that effort
using emcli utility.
1.
Connect to the repository database as the
sysman user at sqlplus and run the following query
set heading off
set feedback off
set echo off
set linesize 1000
set pagesize 0
|| ManagementEntityEO.ENTITY_NAME
|| '" -type="oracle_database" -host="'
|| ManagementEntityEO.HOST_NAME
|| '" -credentials="UserName:dbsnmp;password:<dbsnmp_PASSWORD>;Role:Normal" -properties="SID:'
||
(SELECT PROPERTY_VALUE
FROM MGMT_TARGET_PROPERTIES
WHERE TARGET_GUID = ManagementEntityEO.ENTITY_GUID
AND (UPPER(PROPERTY_NAME) LIKE '%SID')
)
|| ';Port:'
||
(SELECT PROPERTY_VALUE
FROM MGMT_TARGET_PROPERTIES
WHERE TARGET_GUID = ManagementEntityEO.ENTITY_GUID
AND (UPPER(PROPERTY_NAME) LIKE '%PORT')
)
|| ';OracleHome:'
||
(SELECT PROPERTY_VALUE
FROM MGMT_TARGET_PROPERTIES
WHERE TARGET_GUID = ManagementEntityEO.ENTITY_GUID
AND (UPPER(PROPERTY_NAME) LIKE '%HOME'
AND UPPER(PROPERTY_NAME)!='MW_HOME'
OR PROPERTY_NAME ='INSTALL_LOCATION')
AND ROWNUM = 1
)
|| ';MachineName:'
|| ManagementEntityEO.HOST_NAME
|| ';"'
FROM GC_MANAGEABLE_ENTITIES ManagementEntityEO
WHERE ManagementEntityEO.PROMOTE_STATUS=1 –This flag denotes target is eligible for promotion
AND ManagementEntityEO.MANAGE_STATUS =1 –This flag denotes target is not managed yet
AND ManagementEntityEO.ENTITY_TYPE ='oracle_database'
AND (NOT EXISTS
(SELECT 1
FROM mgmt_type_properties mtp
WHERE mtp.target_type = ManagementEntityEO.entity_type
AND mtp.property_name ='DISCOVERY_FWK_OPTOUT'
AND mtp.property_value='1'
))
AND ManagementEntityEO.HOST_NAME ='&hostname';
· Monitoring Username
emcli login -username=sysman -password=<password>
Examples:
emcli add_target
-name="database"
-type="oracle_database"
-host="myhost.example.com"
-credentials="UserName:dbsnmp;password:dbsnmp;Role:Normal"
-properties="SID:semcli;Port:15091;OracleHome:/oracle;MachineName:smpamp-sun1.example.com"
So you can see that emcli command expect same set of input parameters.So our target is to generate this command string from OMS repository.
Lets see table definition.You can see that we don’t have target name in MGMT_TARGET_PROPERTIES
Describe MGMT_TARGET_PROPERTIES
Name Null Type
--------------- -------- --------------
TARGET_GUID NOT NULL RAW(16 BYTE)
PROPERTY_NAME NOT NULL VARCHAR2(64)
PROPERTY_TYPE NOT NULL VARCHAR2(64)
PROPERTY_VALUE VARCHAR2(4000)
ECM_SNAPSHOT_ID RAW(16 BYTE)
Name Null Type
----------------------- -------- --------------
ENTITY_GUID NOT NULL RAW(16 BYTE)
ENTITY_TYPE NOT NULL VARCHAR2(64)
ENTITY_NAME NOT NULL VARCHAR2(256)
PARENT_ME_GUID NOT NULL RAW(16 BYTE)
PARENT_ME_TYPE VARCHAR2(64)
PARENT_ME_NAME VARCHAR2(256)
MANAGE_STATUS NOT NULL NUMBER(2)
PROMOTE_STATUS NUMBER
DYNAMIC_PROPERTY_STATUS NUMBER
TYPE_META_VER NOT NULL VARCHAR2(8)
CATEGORY_PROP_1 VARCHAR2(64)
CATEGORY_PROP_2 VARCHAR2(64)
CATEGORY_PROP_3 VARCHAR2(64)
CATEGORY_PROP_4 VARCHAR2(64)
CATEGORY_PROP_5 VARCHAR2(64)
TIMEZONE_REGION VARCHAR2(64)
DISPLAY_NAME VARCHAR2(256)
OWNER VARCHAR2(256)
HOST_NAME VARCHAR2(256)
EMD_URL VARCHAR2(1024)
BROKEN_REASON NUMBER
BROKEN_STR VARCHAR2(512)
MONITORING_MODE NUMBER
IS_PROPAGATING NUMBER(1)
DISCOVERED_NAME VARCHAR2(256)
ORG_ID NUMBER
ORACLE_HOME VARCHAR2(256)
ORACLE_CONFIG_HOME VARCHAR2(256)
LOAD_TIMESTAMP NOT NULL DATE
ON_REMOTE_HOST NUMBER
--SID
(SELECT PROPERTY_VALUE
FROM MGMT_TARGET_PROPERTIES
WHERE TARGET_GUID = ManagementEntityEO.ENTITY_GUID
AND (UPPER(PROPERTY_NAME) LIKE '%SID')
)
--PORT
(SELECT PROPERTY_VALUE
FROM MGMT_TARGET_PROPERTIES
WHERE TARGET_GUID = ManagementEntityEO.ENTITY_GUID
AND (UPPER(PROPERTY_NAME) LIKE '%PORT')
)
(SELECT PROPERTY_VALUE
FROM MGMT_TARGET_PROPERTIES
WHERE TARGET_GUID = ManagementEntityEO.ENTITY_GUID
AND (UPPER(PROPERTY_NAME) LIKE '%PORT'))
So above query creates output like below
leHome:/u01/app/odaorahome/oracle/product/19.0.0.0/dbhome_1;MachineName:txxxxxxxxx;"
Home:/u01/app/odaorahome/oracle/product/19.0.0.0/dbhome_1;MachineName:txxxxxxxx"
sync
emcli argfile <textfilename>
./emcli argfile testtargets.txt
Target "<INSTANCE NAME 1>_<HOST NAME>.<DOMAIN>:oracle_database" added successfully.