A 认识EM(企业管理器)的体系结构
=====================================
Oracle Enterprise Manager (EM) x 实现了一个层结构其组成如下:
第一层 Firsttier:
第一层是客户端工具如EM Console DBA Management Pack和其他集成的Oracle应用这些工具是从Windows NT Windows Windows 或Sun Solaris机器的本地启动的这些工具也可以是通过浏览器下载下来的JAVA applet
中间层 Middletier:
中间层(也就是第二层) 由安装在Windows NT或Sun Solaris server上的Oracle Management Server (OMS)构成
要使用EM Console(企业管理器的控制台)和Job&Event subsystem(任务与事件子系统)必须有一个配置好的Oracle Management Server
OMS提供了:
访问EM库(Repository)中的信息
分派控制台的请求
控制任务执行
监控事件
通过电子邮件或寻呼提示任务的完成或事件发生
多个OMS能够提供:
无需额外的管理就可以实现负载的分布
工作量能够自动地被共享和均衡
容错一个OMS可以重做另外一个OMS的工作量
第三层 Thirdtier:
第三层是智能代理(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 管理员用户
启动智能代理/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任务管理器中是否有进程dbsnmpexe
c 在命令行中执行net start命令OracleAgent应当出现在服务列表中 设置用于运行任务和事件监控的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中列出的是正确的名字
() 域名如果你想创建一个域用户的话 或
() 本地机器名如果你要创建一个本地用户
如果名字不正确选择下拉列表选择正确的机器名或域名
h 点 Show Users找到刚刚创建的用户点Add
此账号将出现在Add Names的底部如果名字正确就点OK此用户就被加到Grant To: 中
然后点OK关闭对话框关闭User Manager
注意:如果授予权限的用户已经登录了系统需要重新注册授权才会生效
如果被管理结点是个UNIX系统
Checklist
o 确认已经运行了postinstallation脚本 (rootsh)
o 验证智能代理Intelligent Agent (dbsnmp) 执行文件的访问许可
o 启动智能代理Intelligent Agent
运行 rootsh:
每一次oracle安装之后都必须运行rootsh脚本该脚本设置了智能代理的执行文件(dbsnmp)的访问权限 此脚本还创建或更新智能代理所用来确定是否系统上的所有数据库都可以发现的oratab文件对于每个创建的数据库都有下列格式的一项
:<$ORACLE_HOME>:[Y/N] 验证oratab文件列出了系统中的每个数据库并且遵循了正确的语法 rootsh shell脚本文件应当已经写下了Oracle Home和SID的值 如果oratab中没有项目 按如下步骤操作
> su root
> $ORACLE_HOME/orainst
> /rootsh
回答提出的问题对于每个创建的数据库项目的格式为: :<$ORACLE_HOME>:[Y/N] 你将自动地退出rootsh
正常情况下此代理被rootsh配置为一个setuid程序如果rootsh执行成功此代理将被安装成setuid root这样agent就可以以 EM Console中为该结点设定的Preferred Credentials中给的用户名和口令执行任务
检查dbsnmp的文件访问权限:
为了验证rootsh已被成功的执行了检查dbsnmp的文件访问权限
> cd $ORACLE_HOME/bin
列出关于dbsnmp的相关详细信息:
> ls al dbsnmp
此命令的输出应当是如下格式的
rwsrxrx root dba Jun : dbsnmp
In this example root is the owner and the group is dba The first characters (rwxrxrx) represent the level of permissions set on the executable The first character (rws) represents the owners permissions
For example the owner has (r)read (w)write and (s)setuid on execute The next characters (rx) represent the groups permissions For example (r)read
(x)execute Group does not have write permissions The last characters (rx) represents the permissions of everyone else or world If root is the owner
and rwsrxrx are the permissions then rootsh has been ran successfully
如果dbsnmp的所有者是root访问权限是rwsrxrx说明rootsh被成功的执行了
在Unix上启动智能代理: