通过Oracle Enterprise Manager管理单实例数据库

Posted dingdingfish

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过Oracle Enterprise Manager管理单实例数据库相关的知识,希望对你有一定的参考价值。

前提

  • 我已经安装了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中的条目:

# entries in OMS host file: /etc/hosts
10.0.0.79  primary.sub07290808380.training.oraclevcn.com  primary

在受管节点即2个RAC主机上添加对EM主机的解析,拷贝em主机上/etc/hosts中的条目即可:

# add below entry in file /etc/hosts on all RAC hosts
10.0.2.14 oms1

设置网络连通性

在受管数据库服务器上执行以下命令,设置防火墙:

# for EM agent and Oracle database listener
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

有时为了方便,可以直接停掉防火墙,并用以下命令确认

# systemctl stop firewalld
# or
# systemctl stop iptables

# sudo firewall-cmd --state
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。

参考

以上是关于通过Oracle Enterprise Manager管理单实例数据库的主要内容,如果未能解决你的问题,请参考以下文章

通过Oracle Enterprise Manager管理OCI上的ADG

通过Oracle Enterprise Manager管理OCI上的RAC

通过Oracle Enterprise Manager管理OCI上的RAC

通过Oracle Enterprise Manager管理OCI上的RAC

通过Oracle Enterprise Manager管理单实例数据库

通过Oracle Enterprise Manager管理单实例数据库