<< 返回文章列表

Oracle 20C OEM Database Express配置监控CDB和PDB

2020年3月12日
章芋文
419

原文链接:https://www.modb.pro/db/22215 

Oracle 20c已经发布,我们来看一看在20c中Enterprise Manager Database Express的一些改变,以及如何同时登录CDB和PDB。

在DBCA时可以设置是否配置EM,以及端口号,配置后会自动注册到监听

[oracle@pr7 ~]$ lsnrctl status |grep 5500

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=pr7)(PORT=5500))(Presentation=HTTP)(Session=RAW))


数据库种查看是否启动EM以及端口号:

[oracle@pr7 ~]$ sqlplus / as sysdba


SQL*Plus: Release 20.0.0.0.0 - Production on Sat Feb 1 22:28:23 2020

Version 20.2.0.0.0


Copyright (c) 1982, 2020, Oracle.  All rights reserved.



Connected to:

Oracle Database 20c Enterprise Edition Release 20.0.0.0.0 - Production

Version 20.2.0.0.0


SQL> select dbms_xdb_config.gethttpsport FROM DUAL;


GETHTTPSPORT

------------

        5500

浏览器中打开https://ip:5500/em登录(如果浏览器报证书错误需要在钥匙串中设置为始终信任),输入sys或者system账号密码,容器名为空,不过20c中没有了as sysdba的选项(也有可能是未发布)。

1584002873205064727.png


登录之后,目前只有performance菜单,首页依次是database home、sql monitor和incidents三大模块。

1584002907060054135.png

1584002944919093355.png

查看performance hub页面,有时间负载总览信息,ASH(包含活动会话数、TOP SQL、TOP 会话)、SQL monitoring、ADDM、负载(CPU、等待时间等):

1584002982322085128.png

1584003016277084574.png


查看SQL detail页面,有该SQL时间维度的信息,有SQL的详细信息以及执行计划:

1584003140569075785.png

我们再来看看如何登录PDB查看PDB级别的数据,有两种方法,第一是直接切换到PDB容器中设置新的端口5501,然后通过新的端口直接访问,如:


SQL> alter session set container=PDB1;


Session altered.


SQL> exec DBMS_XDB_CONFIG.SETHTTPSPORT(5501);


PL/SQL procedure successfully completed.


第二种是设置setglobalportenabled(TRUE),也就是全局端口,如果再PDB数量多的情况下非常实用,只需要一个端口,通过输入不同的PDB名称进入不同的PDB内。


--首先停止现有的cdb和pdb的em端口

[oracle@pr7 ~]$ sqlplus / as sysdba


SQL*Plus: Release 20.0.0.0.0 - Production on Sun Feb 2 00:15:20 2020

Version 20.2.0.0.0


Copyright (c) 1982, 2020, Oracle.  All rights reserved.



Connected to:

Oracle Database 20c Enterprise Edition Release 20.0.0.0.0 - Production

Version 20.2.0.0.0


SQL> show pdbs   


    CON_ID CON_NAME                       OPEN MODE  RESTRICTED

---------- ------------------------------ ---------- ----------

         2 PDB$SEED                       READ ONLY  NO

         3 PDB1                           READ WRITE NO

SQL> alter session set container=PDB1;


Session altered.


SQL> exec DBMS_XDB_CONFIG.SETHTTPSPORT(0);


PL/SQL procedure successfully completed.


SQL> conn /as sysdba

Connected.

SQL> exec DBMS_XDB_CONFIG.SETHTTPSPORT(0);


PL/SQL procedure successfully completed.


--设置setglobalportenabled

SQL> exec dbms_xdb_config.setglobalportenabled(TRUE);


PL/SQL procedure successfully completed.

--打开5500的em端口

SQL> exec DBMS_XDB_CONFIG.SETHTTPSPORT(5500);


PL/SQL procedure successfully completed.

登录时输入容器名为pdb1即可:

1584003198992024869.png

此时登录进入的就是PDB:

1584003236237049279.png