文章目录

  • 1 OEM简介
  • 1.1 OEM架构
  • 1.2 OEM的两个版本
  • 2 配置OEM
  • 2.1 手动配置
  • 2.1.1 配置dbconsole
  • 2.1.2 重新配置dbconsole
  • 2.1.3 配置过程中出现的问题
  • 2.2 使用DBCA配置OEM
  • 3 进入OEM
  • 4 使用OEM监控和管理数据库
  • 4.1 主目录
  • 4.2 性能
  • 4.3 可用性
  • 4.4 服务器
  • 4.4.1 用户管理
  • 4.4.2 创建表空间
  • 4.4.2 创建用户
  • 4.5 方案
  • 4.6 数据移动
  • 4.7 软件和支持
  • 5 小结


1 OEM简介

OEM是采用直观而且方便的图像化界面来控制和管理ORACLE数据库的工具集,它包含大量对DBA有用的工具。在oracle中,数据库管理和操作都可以使用OEM来完成,如创建用户和角色,权限分配,创建方案对象,进行存储管理等。

1.1 OEM架构

OEM不仅能够管理本地数据库实例,也可以管理网络和RAC环境下数据库实例。无论是管理本地还是网络上的数据库,OEM都通过HTTP/HTTPS访问数据库,它的架构如图下图:

Oracle(OEM与常见故障处理)

OEM架构 oem架构图_数据库


1)Management repository:存储要监控的数据库的管理数据及状态信息。

2)OMS管理服务:监控和管理安装了management agent的数据库,并将获得的管理信息存入management repository。

3)Oracle HTTP Server:内置的apache服务器。

4)OC4J/J2EE:符合J2EE标准的应用服务器。

5)Oracle web cache:用于快速访问web。

6)Management agent:安装在被管理的数据服务器上,用于监控数据库的运行状态,资源使用,信息变更等,将信息转送到OMS,OMS将这些信息存入repository。

1.2 OEM的两个版本

OEM有两个不同的版本,分别是:database control 和grid control。Database control通常用于监控和管理本地单个数据库或者RAC数据库。Grid control则用于管理大规模、复杂的系统环境,它可以管理包括主机、数据库、web服务器、监听器、服务等在内的整个基础设施。
对于database control,通常不用配置任何东西,当使用DBCA或者oracle universal installer创建完数据库后,database control就可以使用了。当然,如果是通过create database语句手工创建的数据库,那么需要通过EMCA(enterprise manager configuration assistant)来配置database control。Grid control则需要和数据库分开安装,安装过程和配置要复杂一些。
Enterprise Manager Database Control 提供了一个基于 Web 的界面,您可以使用这个界面来管理 Oracle 实例和数据库。

2 配置OEM

当通过oracle universal install安装oracle数据库时,如果选择了创建数据库(或者直接通过DBCA创建数据库),会默认安装OEM database control。数据库创建完毕之后会显示OEM的相关信息,database control URL即为OEM的访问地址。

2.1 手动配置

如果通过create database语句手动创建数据库,就需要通过EMCA来配置OEM。EMCA可以设置OEM相关的各个方面,如repository存储区的重建和删除,配置文件的创建和删除等。下面是EMCA常用命令。

  • 创建一个EM资料库
    emca -repos create
  • 重建一个EM资料库
    emca -repos recreate
  • 删除一个EM资料库
    emca -repos drop
  • 配置数据库的 Database Control
    emca -config dbcontrol db
  • 删除数据库的 Database Control配置
    emca -deconfig dbcontrol db
  • 重新配置db control的端口,默认端口在1158
emca -reconfig ports
emca -reconfig ports -dbcontrol_http_port 1160
emca -reconfig ports -agent_port 3940
  • 先设置ORACLE_SID环境变量后,启动EM console服务
    emctl start dbconsole
  • 先设置ORACLE_SID环境变量后,停止EM console服务
    emctl stop dbconsole
  • 先设置ORACLE_SID环境变量后,查看EM console服务的状态
    emctl status dbconsole
2.1.1 配置dbconsole
emca -repos create
emca -config dbcontrol db
emctl start dbconsole
2.1.2 重新配置dbconsole

1.清除原有em

emca -deconfig dbcontrol db -repos drop
emca -deconfig all db -repos drop

若上述两个指令删除失败,则只能暴力删除

drop user SYSMAN cascade;
drop user MGMT_VIEW cascade;
drop role MGMT_USER;
drop public synonym MGMT_TARGET_BLACKOUTS;
drop public synonym SETEMVIEWUSERCONTEXT;

通常暴力删除EM以后,会报错。

2.配置em

  • 重建资料库
emca -repos recreate
  • 重建em
emca -config dbcontrol db(单节点)
emca -config dbcontrol db -cluster(rac)
[oracle@nxxxxc samples]$ emca -config dbcontrol db

STARTED EMCA at May 10, 2019 4:54:54 PM
EM Configuration Assistant, Version 11.2.0.3.0 Production
Copyright (c) 2003, 2011, Oracle.  All rights reserved.

Enter the following information:
Database SID: nxx				# 数据库 SID
Listener port number: 1521			# 监听程序端口号
Listener ORACLE_HOME [ /opt/oracle/app/product/11.2.0/dbhome_1 ]:
Password for SYS user:  				# SYS 用户的口令
Password for DBSNMP user:  				# DBSNMP 用户的口令
Password for SYSMAN user:  				# SYSMAN 用户的口令
Email address for notifications (optional):							# SYSMAN 用户的口令: 通知的电子邮件地址 (可选):
Outgoing Mail (SMTP) server for notifications (optional):			# 通知的发件 (SMTP) 服务器 (可选)
-----------------------------------------------------------------

You have specified the following settings							# 已指定以下设置

Database ORACLE_HOME ................ /opt/oracle/app/product/11.2.0/dbhome_1

Local hostname ................ nxxxxc
Listener ORACLE_HOME ................ /opt/oracle/app/product/11.2.0/dbhome_1
Listener port number ................ 1521
Database SID ................ nxx
Email address for notifications ...............
Outgoing Mail (SMTP) server for notifications ...............

-----------------------------------------------------------------
Do you wish to continue? [yes(Y)/no(N)]: y
May 10, 2019 4:55:18 PM oracle.sysman.emcp.EMConfig perform
INFO: This operation is being logged at /opt/oracle/app/cfgtoollogs/emca/nxxxxc/emca_2019_05_10_16_54_54.log.
May 10, 2019 4:55:19 PM oracle.sysman.emcp.EMReposConfig uploadConfigDataToRepository
INFO: Uploading configuration data to EM repository (this may take a while) ...
May 10, 2019 4:56:28 PM oracle.sysman.emcp.EMReposConfig invoke
INFO: Uploaded configuration data successfully
May 10, 2019 4:56:28 PM oracle.sysman.emcp.ParamsManager getLocalListener
WARNING: Error retrieving listener for nsfcdc
May 10, 2019 4:56:31 PM oracle.sysman.emcp.util.DBControlUtil secureDBConsole
INFO: Securing Database Control (this may take a while) ...
May 10, 2019 4:56:50 PM oracle.sysman.emcp.util.DBControlUtil secureDBConsole
INFO: Database Control secured successfully.
May 10, 2019 4:56:50 PM oracle.sysman.emcp.util.DBControlUtil startOMS
INFO: Starting Database Control (this may take a while) ...
May 10, 2019 4:57:22 PM oracle.sysman.emcp.EMDBPostConfig performConfiguration
INFO: Database Control started successfully
May 10, 2019 4:57:22 PM oracle.sysman.emcp.EMDBPostConfig performConfiguration
INFO: >>>>>>>>>>> The Database Control URL is https://nsfcdc:1158/em <<<<<<<<<<<
May 10, 2019 4:57:33 PM oracle.sysman.emcp.EMDBPostConfig invoke
WARNING:
************************  WARNING  ************************

Management Repository has been placed in secure mode wherein Enterprise Manager data will be encrypted.  The encryption key has been placed in the file: /opt/oracle/app/product/11.2.0/dbhome_1/nxxxxc_nxxxxc/sysman/config/emkey.ora. Ensure this file is backed up as the encrypted data will become unusable if this file is lost.

***********************************************************
Enterprise Manager configuration completed successfully				# 已成功完成 Enterprise Manager 的配置
FINISHED EMCA at May 10, 2019 4:57:33 PM

3.启动 dbconsole 进程

[oracle@nxxxxc ~]$ emctl start dbconsole
Oracle Enterprise Manager 11g Database Control Release 11.2.0.4.0
Copyright (c) 1996, 2013 Oracle Corporation.  All rights reserved.
https://nxxxxc:1158/em/console/aboutApplication
- An instance of Oracle Enterprise Manager 11g Database Control is already running.

4.查看 dbconsole 进程的状态
执行emctl status dbconsole命令,可以得到OEM是否运行、OEM的访问地址和日志存放位置。执行结果如下

[oracle@nxxxxc ~]$ emctl status dbconsole
Oracle Enterprise Manager 11g Database Control Release 11.2.0.4.0
Copyright (c) 1996, 2013 Oracle Corporation.  All rights reserved.
https://nxxxxc:1158/em/console/aboutApplication
Oracle Enterprise Manager 11g is running.
------------------------------------------------------------------
Logs are generated in directory /opt/oracle/app/product/11.2.0/dbhome_1/nxxxxc_nxxxxc/sysman/log
2.1.3 配置过程中出现的问题
[oracle@nxxxxc ~]$ emca -repos recreate
# 报错
Some of the possible reasons may be:

1) Listener port 1521 provided is incorrect. Provide the correct port.
2) Listener is not up. Start the Listener.
3) Database service nsfcdc.oracle.docker is not registered with listener. Register the database service.
4) Listener is up on physical host and ORACLE_HOSTNAME environment variable is set to virtual host. Unset ORACLE_HOSTNAME environment variable.
5) Listener is up on virtual host. Set environment variable ORACLE_HOSTNAME=<virtual host>.
6) /etc/hosts does not have correct entry for hostname.

解决方法:
1.检查一下$ORACLE_HOME/network/admin/listener.ora里面的端口号是否有正确的设置成1521

2.检查一下 监听器的状态:lsnrctl status 看一下是否正常启动

# 查看监听
[oracle@nxxxxc dbs]$ lsnrctl stat

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 10-MAY-2019 15:05:24

Copyright (c) 1991, 2013, Oracle.  All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date                05-MAY-2019 13:56:05
Uptime                    5 days 1 hr. 9 min. 18 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Log File         /opt/oracle/app/diag/tnslsnr/nxxxxc/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=nsfcdc)(PORT=1521)))
Services Summary...
Service "nxxxxc.oracle.docker" has 1 instance(s).
  Instance "nxxxxc", status READY, has 1 handler(s) for this service...
Service "nxxxxcXDB.oracle.docker" has 1 instance(s).
  Instance "nxxxxc", status READY, has 1 handler(s) for this service...
The command completed successfully

3.如果监听器中没有注册orcl这个实例的服务的话需要注册一下。

[oracle@nxxxxc dbs]$ sqlplus / as sysdba
SQL> alter system register

5.就是说监听器只启动在虚拟主机上,这个要查看你的虚拟主机的ORACLE_HOSTNAME,很有可能是手残一不小心去更改了主机名后导致的错误。

export ORACLE_HOSTNAME= 服务名

6.如果你的服务器是自动获取IP地址的,而你在/etc/hosts下设置的ip地址又是设置成某一个值,一旦IP地址变化了以后就会报这个错误。
步骤:

  • ifconfig 查看一下ip地址是多少。
  • vi /etc/hosts
  • 将里面的ip地址更换一下。

7.如果以上方法都没有用的话,如果报错:用户名密码错误,请先创建口令文件:

orapwd file='/opt/oracle/app/product/11.2.0/dbhome_1/dbs/orapwnxx' password=oracle entries=5 force=y;

说明:

  • FILE参数指定口令文件存放的全路径及文件名。口令文件的命名也应该遵循Oracle公司指定的规范:orapw,在例子中实例名是nsfcdc
  • PASSWORD指定超级用户SYS的密码
  • ENTRIES为整数,指定最多有多少用户称为超级用户(SYSDBA)
  • FORCE取值为“Y”或者“N”,指定是否强行覆盖已经存在的口令文件

默认密码:

  • system默认:manager
  • sys默认:change_on_install
    使用SQL Plus登录数据库时,system使用密码manager可直接登录。
    但如果是sys用户,密码必须加上as sysdba,即完整密码为:change_on_install as sysdba

2.2 使用DBCA配置OEM

DBCA提供了图形化创建OEM的方式,首先启动DBCA。

OEM架构 oem架构图_oracle_02


OEM架构 oem架构图_数据库_03


OEM架构 oem架构图_OEM架构_04


OEM架构 oem架构图_数据库_05


这样,采用OEM database control管理这个数据库就配置完成,这种方式十分简单,全部通过DBCA可视化完成。

3 进入OEM

安装好ORACLE后,最后一个窗口会提示登录OEM的地址

(如果忘记了,也没有关系;可以到$ORACLE_HOME/11g/install/ 中查看portlist.ini 文件中的HTTP端口,或者看此目录中的readme.txt文件)

登录地址格式为: https://hostname:1158/em (10g 11g 的默认端口是1158)

步骤:

1.以oracle用户登录

2.开启监听:lsnrctl start

3.如果页面还是无法显示,则开启OEM服务:emctl start dbconsole

4.登录OEM

监听和OEM服务都开启,但是https://nxxxxc:1158/em登录不了,显示拒绝访问的解决办法:

用IP地址登录:https://192.xxx.x.162:1158/em

原因是:nxxxxc可能存在重名,但是IP地址是唯一的,所以登录不上可能是网络原因。

OEM架构 oem架构图_数据库_06

4 使用OEM监控和管理数据库

OEM提供了非常强大的监控和管理功能,下面介绍几种常见操作。
1.使用OEM启动和关闭数据库
首先确定监听已经运行

[oracle@nxxxxc ~]$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 13-MAY-2019 11:12:00

Copyright (c) 1991, 2013, Oracle.  All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date                10-MAY-2019 15:35:31
Uptime                    2 days 19 hr. 36 min. 28 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Log File         /opt/oracle/app/diag/tnslsnr/nxxxxc/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=nsfcdc)(PORT=1521)))
Services Summary...
Service "nxxxxc.oracle.docker" has 1 instance(s).
  Instance "nxxxxc", status READY, has 1 handler(s) for this service...
Service "nxxxxcXDB.oracle.docker" has 1 instance(s).
  Instance "nxxxxc", status READY, has 1 handler(s) for this service...
The command completed successfully

2.查看EM状态

[oracle@nxxxxc ~]$ emctl status dbconsole
Oracle Enterprise Manager 11g Database Control Release 11.2.0.4.0 
Copyright (c) 1996, 2013 Oracle Corporation.  All rights reserved.
https://nxxxxc:1158/em/console/aboutApplication
Oracle Enterprise Manager 11g is running. 
------------------------------------------------------------------
Logs are generated in directory /opt/oracle/app/product/11.2.0/dbhome_1/nxxxxc_nxxxxc/sysman/log

3.访问EM的URL,单击“启动”按钮

OEM架构 oem架构图_bc_07


4.进入主界面,单击“启动”,进入下面的界面,填写好了之后单击右上角的“确定”。

OEM架构 oem架构图_oracle_08


OEM架构 oem架构图_OEM架构_09

4.1 主目录

主目录部分呈现了数据库实例的整体状态,它通过图形的形式呈现,而更具体的指标和内容可以单击相应的内容获得。例如:要获得CPU具体情况,可以单击CPU图下面的带下划线的数据。其他情况类似,如下图所示:

OEM架构 oem架构图_oracle_10


单机监听程序:

OEM架构 oem架构图_数据库_11


OEM架构 oem架构图_数据库_12

4.2 性能

性能部分主要提供了主机监控、用户连接监控及i/o性能,还有其他相关的连接选项用于辅助判断。

  • 主机监控
    监控是否存在cpu瓶颈。它呈现了cpu使用率的曲线图,清晰地呈现出不同时段cpu使用率的高低。如果发现某段时间内cpu使用率极高,并且已经出现了性能问题,如终端用户反映应用系统变慢,那么这时就需要分析用户会话,看那些sql正在消耗cpu资源。
  • 平均活动会话监控
    这是分析性能问题的关键部分,它呈现了实例中某个时间段内会话正在等待哪些事件,以及哪些会话正在等待那些事件,事件会用不同的颜色表示。
    性能-查看数据-历史(显示7天的)
  • 重复的sql:
    显示实例中重复次数较多的sql,开发人员可以使用参数绑定修改这些sql,提高cpu的利用率

4.3 可用性

可用性部分主要针对备份和恢复的设置和管理,下面将使用OEM进行备份。

OEM架构 oem架构图_bc_13


进入备份设置页面:

OEM架构 oem架构图_数据库_14


OEM架构 oem架构图_bc_15


填写主机身份证明,用户名oracle,磁盘的备份采用默认,并行度为Q,最后单击“测试磁盘备份”。如果成功则设置完毕,否则根据提示重新填写。

OEM架构 oem架构图_数据库_16


OEM架构 oem架构图_OEM架构_17


OEM架构 oem架构图_bc_18


单击“备份集”标签,填写备份片大小,压缩算法,单击“确定”完成设置。

OEM架构 oem架构图_OEM架构_19


单击“策略”标签,可以对备份策略、保留策略及其他策略进行设置,此处采用默认设置

OEM架构 oem架构图_数据库_20


设置完毕后,点击“确定”

OEM架构 oem架构图_oracle_21


备份设置完毕后,需要进行调度备份设置

OEM架构 oem架构图_oracle_22


填写正确的身份证明,单击“调度定制备份”

OEM架构 oem架构图_OEM架构_23


OEM架构 oem架构图_数据库_24


OEM架构 oem架构图_OEM架构_25


OEM架构 oem架构图_bc_26


设置调度频率,选择“一次(立即)”,单击下一步

OEM架构 oem架构图_OEM架构_27


OEM架构 oem架构图_oracle_28


编辑脚本

OEM架构 oem架构图_数据库_29


提交作业

OEM架构 oem架构图_数据库_30


可以查看作业

OEM架构 oem架构图_oracle_31


调度备份成功后,可以“管理当前备份”

OEM架构 oem架构图_bc_32


OEM架构 oem架构图_数据库_33

4.4 服务器

服务器包括存储、数据库配置、调度、统计、资源、安全、查询优化及更改数据管理功能

OEM架构 oem架构图_OEM架构_34

4.4.1 用户管理

该界面以列表形式呈现了表空间的一些关键指标,如已分配大小、已用空间、是否自动扩展、空闲的已分配空间等

OEM架构 oem架构图_OEM架构_35

4.4.2 创建表空间

创建用户首先要创建表空间

OEM架构 oem架构图_oracle_36


添加数据文件

OEM架构 oem架构图_oracle_37


OEM架构 oem架构图_数据库_38


OEM架构 oem架构图_数据库_39


单击“确定”后,表空间创建完毕

4.4.2 创建用户

创建用户,首先进入用户管理界面

OEM架构 oem架构图_oracle_40


创建用户

OEM架构 oem架构图_oracle_41


输入相关信息

OEM架构 oem架构图_oracle_42

点击“角色”,为用户分配角色,单击“编辑列表”

OEM架构 oem架构图_OEM架构_43


OEM架构 oem架构图_bc_44


点击“确定”,创建用户

OEM架构 oem架构图_数据库_45

4.5 方案

方案部分主要包括对数据库对象、程序、物化视图、字变更管理、用户自定义类型、XML数据库、工作区管理器及文本管理器的管理

OEM架构 oem架构图_oracle_46


使用最多的是“表”管理,下面为TEST用户新建一张表

OEM架构 oem架构图_数据库_47


OEM架构 oem架构图_oracle_48


OEM架构 oem架构图_OEM架构_49


有一个报错信息,是因为没指定BIRTH列的属性和大小

OEM架构 oem架构图_数据库_50


查看结果

OEM架构 oem架构图_数据库_51

4.6 数据移动

数据移动包括移动行数据、移动数据文件、流管理及高级复制功能等。

OEM架构 oem架构图_OEM架构_52


下面利用移动行数据的导出功能,导出TEST方案

OEM架构 oem架构图_OEM架构_53


角色错误的解决办法,不能以sysdba的角色登录,所以可以更换为system用户登录操作

OEM架构 oem架构图_OEM架构_54


重新导出

OEM架构 oem架构图_数据库_55


OEM架构 oem架构图_oracle_56


OEM架构 oem架构图_数据库_57


OEM架构 oem架构图_oracle_58


OEM架构 oem架构图_bc_59


OEM架构 oem架构图_bc_60


OEM架构 oem架构图_bc_61


OEM架构 oem架构图_数据库_62


导出文件位置是data_dump_dir目录所在位置

OEM架构 oem架构图_oracle_63


OEM架构 oem架构图_OEM架构_64


查看详细信息

OEM架构 oem架构图_oracle_65


到所在目录下查看

[oracle@nxxxxc ~]$ cd /opt/oracle/app/admin/nxxxxc/dpdump/
[oracle@nxxxxc dpdump]$ ll
total 12
-rw-r-----. 1 oracle oinstall  116 Oct 19  2018 dp.log
-rw-r-----. 1 oracle oinstall 4096 May 14 09:31 EXPDAT01.DMP
-rw-r--r--. 1 oracle oinstall  191 May 14 09:33 EXPDAT.LOG

4.7 软件和支持

软件和支持部分提供了丰富的软件管理内容,包括软件的配置管理、补丁管理、real application testing和部署过程管理器。

OEM架构 oem架构图_oracle_66

  • 配置管理
    主机的配置,状态信息及资源使用率信息等。
  • 补丁管理
    可以查看当前的补丁建议,安装补丁的前提要求及应用补丁程序。
  • real application testing
    包括数据库重放和sql性能分析程序。
  • 部署过程管理器
    管理当前已经部署好的过程,包括编辑、查看、运行及监控部署好的过程。

5 小结

虽然OEM是图形化的,看起来比手敲命令要简单的多,但是在实际生产环境中,EM使用的并不多。因为EM 消耗服务器性能,一旦出现资源紧张,EM是第一个启动不来的,因此备份放在上面并不可靠。手敲命令熟练了,还是命令更方便。