oem是Oracle提供的一个基于java的治理数据库的图形工具,他是一个中心控制台,集成了oracle的所有治理工具,包括实例治理器,存储治理器,模式治理器、等等。可以使用他治理 the environment sUCh as databases, web servers and listeners等等oracle服务。oem有两种工作方式,一种是独立启动,一种是oms方式,两种方式最基本的差别,就在使用功能上,oms可以完成所有的治理功能(例如在oem中使用rman做备份,就必须在oms方式下)。很多用户碰到了这样的问题,可以使用oem的独立启动方式(dba studio方式),但不能使用oms方式,这是因为假如使用oms方式,需要做一定的配置,具体配置步骤大致如下,1.使用emca创建资料档案库。2.在oracle server(一般就是你安装oracle database的那台主机。)上启动oracle agent.3.配置。
A. 熟悉EM(企业治理器)的体系结构
=====================================
Oracle EnterPRise Manager (EM) 2.x 实现了一个3层结构,其组成如下:
第一层 First-tier: 第一层是客户端工具,如:EM Console, DBA Management Pack和其他集成的Oracle应用。这些工具是从Windows NT, Windows 95, Windows 98或Sun Solaris等机器的本地启动的。这些工具也可以是通过浏览器下载下来的JAVA applet。
中间层 Middle-tier: 中间层(也就是第二层) 由安装在Windows NT或Sun Solaris server上的Oracle Management Server (OMS)构成。 要使用EM Console(企业治理器的控制台)和Job&Event subsystem(任务与事件子系统),必须有一个配置好的Oracle Management Server。
OMS提供了: - 访问EM库(Repository)中的信息 - 分派控制台的请求 - 控制任务执行 - 监控事件 - 通过电子邮件或寻呼提示任务的完成或事件发生
多个OMS能够提供: - 无需额外的治理,就可以实现负载的分布 - 工作量能够自动地被共享和均衡 - 容错:一个OMS可以重做另外一个OMS的工作量
第三层 Third-tier: 第三层是智能代理(Intelligent Agent),是在每个server上必须安装的,用来执行任务和监控发生在该服务器各被治理对象上的事件的软件. 被治理对象包括网络节点(服务器)、数据库、侦听程序(listener)以及其他安装在这些结点上的Oracle服务。 这三层可以是在同一台机器上,不同的机器上,或任意的组合,都可以。
B. 企业治理器(EM)框架的设置
================================
为了配置简便,每层配置后,应先验证是否配置正确,然后到下一层。方便的构造过程是从第三层到第一层。
I. 配置第三层: 为了治理结点和结点上的oracle服务,必须在结点上配置并运行一个智能代理(Intelligent Agent)。 智能代理是由Oracle Server CD上安装的。具体安装信息,参考Oracle Server安装指南和Intelligent Agent用户指南。
假如被治理的结点是一个Windows NT系统:
Checklist -
o 启动智能代理
o 设置一个有"Logon as Batch Job"权限的Windows NT 治理员用户
1. 启动智能代理/Intelligent Agent:
启动一个Windows NT上的Intelligent Agent, 操作如下:
a. 双点[控制面板/Control Panel;文件夹中的服务/Services图标。
b. 选择名为Oracle<oracle homeAgent的服务。
c. 点击[开始/Start]按钮,启动这个代理。
停止一个Windows NT上的Intelligent Agent, 操作如下:
a. 双点[控制面板/Control Panel]文件夹中的服务/Services图标。
b. 选择名为Oracle<oracle homeAgent的服务。
c. 点击[停止/Stop ]按钮,停止这个代理。
验证此代理是否在运行,进行下面操作的任意组合:
a. 在控制面板的服务中检查Oracle<oracle homeAgent的状态
b. 验证NT任务治理器中是否有进程dbsnmp.exe。
c. 在命令行中执行net start命令。Oracle<oracle homeAgent应当出现在服务列表中。
2. 设置用于运行任务和事件监控的Windows NT用户的账户
Checklist -
o 确定Windows NT系统的类型
o 创建一个和治理员等同的账号(用户)
o 给新用户授予"Logon as a Batch Job" 的权限 因为Windows NT是一个安全的操作系统,NT上的智能代理必须通过一个拥有"Logon as a Batch Job"权限的NT用户来执行任务和事件。此特权 可以赋给一个一存在的本地用户或域用户,或者一个新的NT用户。
1、下面是如何设置Windows NT用户的帐号。(Refer to the EM Configuration Guide for additional information.) 注重:要创建或修改NT上的账号,必须以有"Administrator" (治理员)特权的用户登录。
先判定ORACLE安装在一个什么类型的Windows NT系统上:主域控制器(PDC), 备份控制器 (BDC), 独立的(member) Server还是一个工作站。
假如机器是PDC或BDC,按照一下步骤建立或修改一个域用户。
假如NT系统不是PDC或BDC,从“设置一个本地用户”一节开始。
设置一个域用户: 运行域的用户治理器 选择 Start = Programs =Administrative Tools = User Manager for Domains 窗口的标题条应该是"USER MANAGER - <Domain Name" ,
设置一个本地用户: 运行用户治理器(for Domains) 选择 Start = Programs = Administrative Tools = User Manager (For Domains) 窗口的标题条应该是: USER MANAGER - \\ <machine name 假如标题条中列出了域的名字,选User = Select Domain。 输入"\\<server name" (例如.\\bobpc) 注重: 假如已有一个Windows NT账号account will be used by the Intelligent Agent, skip to the section "Grant Logon as a Batch Job Privilege" (step (d) below).
2、创建一个用户:
a. 选中一个治理员账号,选菜单User = Copy,拷贝这个账号及其权限.
b. 为EM账号输入新的用户名和口令 (如EMUSER)
c. 验证确保仅有"口令永不过期"被打上钩。选择Add。 注重:假如在域中存在相同的名字的域用户和本地用户,口令必须有区别。口令是区分大小写的。 并且本地帐户优先。
3、在第三层上为用户授予本地的"Logon as Batch Job"权限:
a.选中在步骤(a)中创建的用户。 选择菜单 Policies =User Rights。
b. Click on the box next to Show advanced user rights.
c. 选择Rights权限下拉列表中的“Logon as a Batch Job”。 假如有账号曾被授予过这个权限, "Grant to" 列表中将包含这个账号的名字。
d. 选择Add。确保FROM中列出的是正确的名字: (1) 域名,假如你想创建一个域用户的话 ; 或 (2) 本地机器名,假如你要创建一个本地用户 假如名字不正确,选择下拉列表,选择正确的机器名或域名。
e. 点 Show Users。找到刚刚创建的用户,点Add。 此账号将出现在Add Names的底部。假如名字正确,就点OK。此用户就被加到Grant To: 中。 然后,点OK关闭对话框。关闭User Manager。
注重:假如授予权限的用户已经登录了系统,需要重新注册,授权才会生效。
-----------------------------------------------------
假如被治理结点是个UNIX系统:
Checklist -
o 确认已经运行了post-installation脚本 (root.sh)。
o 验证智能代理Intelligent Agent (dbsnmp) 执行文件的访问许可
o 启动智能代理Intelligent Agent
1. 运行 root.sh: 每一次oracle安装之后,都必须运行root.sh脚本。
该脚本设置了智能代理的执行文件(dbsnmp)的访问权限。 此脚本还创建或更新/etc/oratab文件
,这个文件是oracle提供的启动脚本的开关控制。对于每个创建的数据库,都有下列格式的一项: <SID:<$ORACLE_HOME:[Y/N] 验证oratab文件列出了系统中的每个数据库,并且遵循了正确的语*。 root.sh shell脚本文件应当已经写下了Oracle Home和SID的值。 假如oratab中没有项目, 按如下步骤操作: su root $ORACLE_HOME/orainst ./root.sh 回答提出的问题。对于每个创建的数据库,项目的格式为: <SID:<$ORACLE_HOME:[Y/N] 你将自动地退出root.sh。 正常情况下,此代理被root.sh配置为一个setuid程序。假如root.sh执行成功,此代理将被安装成"setuid root",这样agent就可以以 EM Console中为该结点设定的Preferred Credentials中给的用户名和口令执行任务。
2. 检查dbsnmp的文件访问权限:
为了验证root.sh已被成功的执行了.
检查dbsnmp的文件访问权限: cd $ORACLE_HOME/bin
列出关于dbsnmp的相关具体信息: ls -al dbsnmp 此命令的输出应当是如下格式的: -rwsr-xr-x 1 root dba 1497980 Jun 12 21:04 dbsnmp In this example, root is the owner and the group is dba. The first 10 characters (-rwxr-xr-x) represent the level of permissions set on the executable. The first 4 character (-rws) represents the owners permissions. For example, the owner has (r)read, (w)write, and (s)setuid on execute. The next 3 characters (r-x) repr