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. 选择名为OracleAgent的服务。
c. 点击[开始/Start]按钮,启动这个代理。
停止一个Windows NT上的Intelligent Agent, 操作如下:
a. 双点[控制面板/Control Panel]文件夹中的服务/Services图标。
b. 选择名为OracleAgent的服务。
c. 点击[停止/Stop ]按钮,停止这个代理。
验证此代理是否在运行,进行下面操作的任意组合:
a. 在控制面板的服务中检查OracleAgent的状态
b. 验证NT任务治理器中是否有进程dbsnmp.exe。
c. 在命令行中执行net start命令。OracleAgent应当出现在服务列表中。
2. 设置用于运行任务和事件监控的Windows NT用户的账户
Checklist -
o 确定Windows NT系统的类型
o 创建一个和治理员等同的账号(用户)
o 给新用户授予"Logon as a Batch Job" 的权限
因为Windows NT是一个安全的操作系统,NT上的智能代理必须通过一个拥有"Logon as a Batch Job"权限的NT用户来执行任务和事件。 此特权 可以赋给一个一存在的本地用户或域用户,或者一个新的NT用户。下面是如何设置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 - " ,
设置一个本地用户:
运行用户治理器(for Domains)
选择 Start = Programs = Administrative Tools = User Manager (For Domains)
窗口的标题条应该是: USER MANAGER - \\
假如标题条中列出了域的名字,选User = Select Domain。 输入"\\" (例如.\\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).
创建一个用户:
a. 选中一个治理员账号,选菜单User = Copy,拷贝这个账号及其权限.
b. 为EM账号输入新的用户名和口令 (如EMUSER)
c. 验证确保仅有"口令永不过期"被打上钩。选择Add。
注重:假如在域中存在相同的名字的域用户和本地用户,口令必须有区别。口令是区分大小写的。 并且本地帐户优先。
在第三层上为用户授予本地的"Logon as Batch Job"权限:
d.选中在步骤(a)中创建的用户。
选择菜单 Policies =User Rights。
e. Click on the box next to Show advanced user rights.
f. 选择Rights权限下拉列表中的“Logon as a Batch Job”。 假如有账号曾被授予过这个权限, "Grant to" 列表中将包含这个账号的名字。
g. 选择Add。确保FROM中列出的是正确的名字:
(1) 域名,假如你想创建一个域用户的话 ; 或
(2) 本地机器名,假如你要创建一个本地用户
假如名字不正确,选择下拉列表,选择正确的机器名或域名。
h. 点 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)的访问权限。 此脚本还创建或更新智能代理所用来确定是否系统上的所有数据库都可以发现的oratab文件。对于每个创建的数据库,都有下列格式的一项:
::[Y/N]
验证oratab文件列出了系统中的每个数据库,并且遵循了正确的语法。
root.sh shell脚本文件应当已经写下了Oracle Home和SID的值。 假如oratab中没有项目, 按如下步骤操作:
su root
$ORACLE_HOME/orainst
./root.sh
回答提出的问题。对于每个创建的数据库,项目的格式为: ::[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) represent the groups permissions. For example, (r)read,
(x)execute. Group does not have write permissions. The last 3 characters (r-x) represents the permissions of everyone else or "world". If root is the owner
and -rwsr-xr-x are the permissions, then root.sh has been ran sUCcessfully.
假如dbsnmp的所有者是root,访问权限是-rwsr-xr-x,说明root.sh被成功的执行了。
3. 在Unix上启动智能代理: