前提
- 我已经安装了Oracle Enterpriser Manager 13.4,主机名为oms1,地址10.0.2.14
- 我已经安装了2节点RAC,数据库版本为21.6,主机名为primary,地址10.0.0.79
虽然不是必需,但为了性能和方便考虑,我采用了以下的设置:
- 单实例数据库使用的是OCI Oracle Database Cloud Service,对于on-premises的数据库也是一样的
- OEM使用OCI marketplace上的映像安装
- OEM和数据库服务都位于OCI同一个Region
设置主机名解析
在EM上主机文件中配置受管对象的主机名解析,最简单的方法就是拷贝并粘贴受管对象主机上/etc/hosts中的条目:
10.0.0.79 primary.sub07290808380.training.oraclevcn.com primary
在受管节点即2个RAC主机上添加对EM主机的解析,拷贝em主机上/etc/hosts中的条目即可:
10.0.2.14 oms1
设置网络连通性
在受管数据库服务器上执行以下命令,设置防火墙:
iptables -I INPUT -p tcp -m tcp --dport 3872 -j ACCEPT
iptables -I INPUT -p tcp -m tcp --dport 1521 -j ACCEPT
service iptables save
service iptables reload
有时为了方便,可以直接停掉防火墙,并用以下命令确认
not running
在监控目标上建立agent目录
以root用户在数据库服务器上执行以下命令,建立agent目录:
cd /u01/app
mkdir em13agent
chown oracle:oinstall em13agent/
设置登录监控目标的秘钥
请参考文章通过Oracle Enterprise Manager管理OCI上的RAC相同章节。
添加Host目标
手工添加Host Target。 进入菜单Setup>Add Target>Add Targets Manually ,单击Add Host Targets下的Install Agent on Host。 输入受管主机的主机名和平台类型,主机名可以在目标主机上通过运行hostname -f 获得:
输入之前设置完毕的agent安装的目录及登录的SSH秘钥: 单击Deploy Agent : 如果这一步出现错误,大多是由防火墙配置,和主机名解析有关。
如果成功,会显示以下界面: 在受管主机上,可以看到oms agent已启动,且agent监听端口已占用:
[oracle@primary ~]$ netstat -an|grep 3872
tcp 0 0 0.0.0.0:3872 0.0.0.0:* LISTEN
tcp 0 0 10.0.0.79:3872 10.0.2.14:41852 ESTABLISHED
tcp 0 0 10.0.0.79:3872 10.0.0.193:17791 ESTABLISHED
udp 0 0 0.0.0.0:3872 0.0.0.0:*
[oracle@primary ~]$ cd /u01/app/em13agent
[oracle@primary em13agent]$ ./agent_inst/bin/emctl status agent
Oracle Enterprise Manager Cloud Control 13c Release 4
Copyright (c) 1996, 2020 Oracle Corporation. All rights reserved.
---------------------------------------------------------------
Agent Version : 13.4.0.0.0
OMS Version : 13.4.0.0.0
Protocol Version : 12.1.0.1.0
Agent Home : /u01/app/em13agent//agent_inst
Agent Log Directory : /u01/app/em13agent//agent_inst/sysman/log
Agent Binaries : /u01/app/em13agent/agent_13.4.0.0.0
Core JAR Location : /u01/app/em13agent/agent_13.4.0.0.0/jlib
Agent Process ID : 64612
Parent Process ID : 64341
Agent URL : https://primary.sub07290808380.training.oraclevcn.com:3872/emd/main/
Local Agent URL in NAT : https://primary.sub07290808380.training.oraclevcn.com:3872/emd/main/
Repository URL : https://oms1:4900/empbs/upload
Started at : 2022-09-19 01:50:43
Started by user : oracle
Operating System : Linux version 4.14.35-2047.510.5.5.el7uek.x86_64 (amd64)
Number of Targets : 3
Last Reload : (none)
Last successful upload : 2022-09-19 02:02:48
Last attempted upload : 2022-09-19 02:02:48
Total Megabytes of XML files uploaded so far : 0.28
Number of XML files pending upload : 0
Size of XML files pending upload(MB) : 0
Available disk space on upload filesystem : 82.20%
Collection Status : Collections enabled
Heartbeat Status : Ok
Last attempted heartbeat to OMS : 2022-09-19 02:04:55
Last successful heartbeat to OMS : 2022-09-19 02:04:55
Next scheduled heartbeat to OMS : 2022-09-19 02:05:55
---------------------------------------------------------------
Agent is Running and Ready
到目前为止,Host类型的Target已添加成功。下一步需要添加Database类型的Target。
添加Database目标
先进入菜单Setup/Add Target/ Add Targets Manually ,在Add Non-Host Targets Using Guided Process 中,单击Add Using Guided Process: 选择Oracle Database …一行,单击Add... : 通过搜索,指定目标主机:
在下一步,我们需要使用dbsnmp用户进行监控,但此用户默认已锁定,因此需要先解锁并设置口令:
SQL> select lock_date from dba_users where username = 'DBSNMP';
LOCK_DATE
11-JUN-22
conn / as sysdba
alter user dbsnmp identified by "w3Lc0mE_1^";
alter user dbsnmp account unlock;
SQL> select lock_date from dba_users where username = 'DBSNMP';
LOCK_DATE
下面这步比较关键!输入dbsnmp口令后,单击Test Connection,报错!我们发现这个主机名有点怪异。 可以在Configure菜单中将主机名改正确。然后Test Connection成功。
此时单击下一步: 再次单击Save: 运气不好,遇到了以下的错误,但实际上Target已经加上,只不过PDB没加上。
报错:Failed
DBIM_primary.sub07290808380.training.oraclevcn.com : Failed to promote credential change to agent for 3 targets
按照文章1 和文章2的说法,将Target删除后,通过在Setup/Add Target/ Auto Discovery Results 菜单中Promote实例Target,成功了。 还比较智能,他知道这个实例是ADG中的Primary。
参考
|