Skip to content

How to rename listener target in EM Cloud 12c ?






Sometimes it is necessary to rename targets in Enterprise Manager Cloud Control 12c. In my case I have listener targets discovered by EM12c with the hostname at the end of the target name: TESTDBA_LSN_dbserver1

As I work in a Veritas clustered environment, when the target switches to the other node (dbserver2) the listener target is relocated, but its name is always TESTDBA_LSN_dbserver1.

How to rename a listener target in EM Cloud Control 12c?

We use emcli to list the agent’s targets:

oracle@dbserver1:/opt/oracle/agent12c/core/12.1.0.4.0/bin/ [agent12c] ./emctl config agent 
listtargets | grep TESTDBA

[TESTDBA_SITE1.domain.com, oracle_database]

[TESTDBA_LSN_dbserver1, oracle_listener]

From the Oracle Management Repository, we can also run the query:

SQL>SELECT ENTITY_TYPE,ENTITY_NAME,DISPLAY_NAME
FROM SYSMAN.EM_MANAGEABLE_ENTITIES
WHERE MANAGE_STATUS = 2
and DISPLAY_NAME like '%TESTDBA%'
ORDER BY 1;
ENTITY_TYPE           ENTITY_NAME                          DISPLAY_NAME
oracle_database    TESTDBA_SITE1.domain.com             TESTDBA_SITE1.domain.com
oracle_dbsys       TESTDBA_SITE1.domain.com_sys         TESTDBA_SITE1.domain.com_sys
oracle_listener    TESTDBA_LSN_dbserver1                TESTDBA_LSN_dbserver1

Then from OMS server you can change the display_name:

oracle@omsserver:/home/oracle/[oms12c] emcli modify_target 
-name="TESTDBA_LSN_dbserver1" -type="oracle_listener" -display_name="TESTDBA_LSN"

Target "TESTDBA_LSN_dbserver1:oracle_listener" modified successfully

If we run again the previous query the display name is modified in the repository, and the Cloud 12c console display the name correctly:

SQL>SELECT ENTITY_TYPE,ENTITY_NAME,DISPLAY_NAME
FROM SYSMAN.EM_MANAGEABLE_ENTITIES
WHERE MANAGE_STATUS = 2
and DISPLAY_NAME like '%TESTDBA%'
ORDER BY 1;

ENTITY_TYPE           ENTITY_NAME                       DISPLAY_NAME 
oracle_database    TESTDBA_SITE1.domain.com          TESTDBA_SITE1.domain.com 
oracle_dbsys       TESTDBA_SITE1.domain.com_sys      TESTDBA_SITE1.domain.com_sys 
oracle_listener    TESTDBA_LSN_dbserver1             TESTDBA_LSN

 

ren1

 

By the way, we need now to change the target name, we use emcli to rename the target from the OMS server but what a surprise the operation is not allowed and we get the following error message:

oracle@omsserver:/home/oracle/ [oms12c] emcli rename_target -target_type="oracle_listener"
 -target_name="TESTDBA_LSN_dbserver1" -new_target_name="TESTDBA_LSN"

Rename not supported for the given Target Type.

 

If we try to run the procedure from the Oracle Management Repository, we notice we have more details in the error message:

SQL> exec em_target.rename_target('oracle_listener','TESTDBA_LSN_dbserver1','TESTDBA_LSN', 'TESTBA_LSN');
BEGIN 
em_target.rename_target('oracle_listener','TESTDBA_LSN_dbserver1','TESTDBA_LSN', 'TESTBA_LSN'); 
END;
*ERROR at line 1:
ORA-20233: -20233 Not allowed
ORA-06512: at "SYSMAN.EM_TARGET", line 8033
ORA-06512: at line 1

I we look more precisely in the sysman em_target package body source code:

-- we will implement rename of agent side targets when it is fully
-- supported by agent
IF ( l_trec.manage_status = MANAGE_STATUS_MANAGED AND
l_trec.emd_url IS NOT NULL)
THEN
raise_application_error(MGMT_GLOBAL.INVALID_PARAMS_ERR,
MGMT_GLOBAL.INVALID_PARAMS_ERR||' Not allowed') ;
END IF ;

 

I decided to test the following modification; I put the code in comment and recreate and recompile the em_target package body:

-- we will implement rename of agent side targets when it is fully     
-- supported by agent  
-- IF ( l_trec.manage_status = MANAGE_STATUS_MANAGED AND   
--     l_trec.emd_url IS NOT NULL)   
-- THEN     
-- raise_application_error(MGMT_GLOBAL.INVALID_PARAMS_ERR,       
--   MGMT_GLOBAL.INVALID_PARAMS_ERR||' Not allowed') ;   
-- END IF ;

And now the target entity rename is working fine:

Oracle@omsserver:/home/oracle/ [oms12c] emcli rename_target 
-target_type="oracle_listener" -target_name="TESTDBA_LSN_dbserver1" 
-new_target_name="TESTDBA_LSN"

Target TESTDBA_LSN_dbserver1 successfully renamed to TESTDBA_LSN.

Finally my listener target has now a correct name:

SQL>SELECT ENTITY_TYPE,ENTITY_NAME,DISPLAY_NAME
FROM SYSMAN.EM_MANAGEABLE_ENTITIES
WHERE MANAGE_STATUS = 2
and DISPLAY_NAME like '%TESTDBA%'
ORDER BY 1;
ENTITY_TYPE          ENTITY_NAME                         DISPLAY_NAME
oracle_database   TESTDBA_SITE1.domain.com            TESTDBA_SITE1.domain.com
oracle_dbsys      TESTDBA_SITE1.domain.com_sys        TESTDBA_SITE1.domain.com_sys
oracle_listener   TESTDBA_LSN                         TESTDBA_LSN

 

Conclusion:

Don’t forget to back up your Oracle Management Repository database before any modifications in the EM_TARGET package, and once you have done your target name modification, uncomment the code you have modified to return to the original situation.

 

 

Let’s work together

Ready to operate at
the next level?

Tell us about your challenge. We’ll bring the depth, the expertise, and the Swiss precision.

Oracle Team

Oracle Team

Posts published under the Oracle Team account are collective contributions by the dbi services Oracle consultants. The practice covers the full Oracle Database lifecycle: architecture, migration and upgrade, high availability with RAC and Data Guard, backup and recovery, performance tuning, and engineered systems such as Oracle Database Appliance and Exadata. The team holds Oracle certifications up to Certified Master level and operates customer platforms under service level agreements.View Author posts

1,009 posts since December 2010

Leave a Comment

Your email address will not be published. Required fields are marked *