Tell the detail how you login. Such as is that you are using password file or OS login, or whether "tnsping" ok?

解决方案 »

  1.   

    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 home>Agent的服务。  
         c. 点击[开始/Start]按钮,启动这个代理。 
       
         停止一个Windows NT上的Intelligent Agent, 操作如下:  
         a. 双点[控制面板/Control Panel]文件夹中的服务/Services图标。  
         b. 选择名为Oracle<oracle home>Agent的服务。  
         c. 点击[停止/Stop ]按钮,停止这个代理。  
      
         验证此代理是否在运行,进行下面操作的任意组合:  
         a. 在控制面板的服务中检查Oracle<oracle home>Agent的状态  
         b. 验证NT任务管理器中是否有进程dbsnmp.exe。  
         c. 在命令行中执行net start命令。Oracle<oracle home>Agent应当出现在服务列表中。  
          
         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。 
         注意:如果授予权限的用户已经登录了系统,需要重新注册,授权才会生效。  
      

  2.   

    ----------------------------------------------------- 
         如果被管理结点是个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) 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上启动智能代理: 在UNIX系统上, 智能代理是由"lsnrctl" 程序来启动和停止dbsnmp进程的。控制代理的命令如下:  
         在UNIX平台上启动代理 lsnrctl dbsnmp_start  
         在UNIX平台上停止代理 lsnrctl dbsnmp_stop  
         验证代理的状态 lsnrctl dbsnmp_status  
    ===================================== 
         II. 配置中间层 - Oracle 管理服务器  
         Checklist -  
         o 验证用于存储EM数据的数据库符合安装前的要求。  
         o 运行Enterprise Manager Configuration Assistant来升级或创建新的EM存储库。  
         o 启动Oracle Management Server. Oracle管理服务器(OMS)提供了在EM客户端和被管理结点之间的集中控制。 OMS必须安装在Sun Solaris (2.6以上) 或 Windows NT 4.0 SP4以上,或Linux。  
          
         1. 安装前的设置 OMS要有一个EM库(Repository)来存储所有的系统数据,应用数据和环境中被管理结点的状态。  
         a. EM Repository是存储在网络上可访问到的一个Oracle8x服务器上的一个模式中。它是OMS所需要的表,视图,索引,存储过程等对象的集合。  
         b. Oracle建议将EM Repository建立在一个非产品的实例中,这样实例可以被完全管理,不影响EM Repository的状态。  
         c. 在存放EM Repository的数据库的init<sid>.ora文件中,参数"processes ="至少应设为200。实例必须被重起以使设置生效。  
         d. EMCA 2.1将在数据库中创建oem_REPOSITORY表空间(如果它不存在的话)。当然你也可以手工创建这个表空间。 要手工创建表空间,在Oracle 8.x数据库上运行下面的脚本。此脚本创建一个带一个初始大小为5M的数据文件的表空间,此数据文件可以自动扩展到80M。 CREATE TABLESPACE "oem_REPOSITORY" DATAFILE '<datafile_specification>' SIZE 5M AUTOEXTEND ON NEXT 25M MAXSIZE 80M DEFAULT STORAGE (INITIAL 128K NEXT 128K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0 ) MINIMUM EXTENT 128K  
          
         2. 运行企业管理器配置助理 Enterprise Manager Configuration Assistant:  
         企业管理器配置助理 (EMCA) 在每次OMS安装的最后都将被自动启动,用来创建和更新EM repository。  
         注意: 在安装后,启动EMCA: - 选择菜单 Programs => Oracle<oracle home> => Enterprise Management => Configuration Assistant  
         在命令行中输入: emca EMCA可以完成如下任务:  
         - 创建 repository用户  
         - 为repository用户创建模式/schema对象  
         - 向EM repository中加载OMS registry数据.  
         - 设置OMS将使用的配置文件  
         - 从一个用户模式中清除repository。  
         - 修改OMS连到哪个repository。        
         创建一个新的EM repository:  
         a. 启动EMCA, 选择 Create 选项。  
         b. 输入一个拥有DBA权限的数据库用户的用户名。此用户用来创建EM Repository模式的拥有者。 对于服务名信息, Oracle建议使用JDBC连接串(<host>:<port>:<sid> )来连接数据库。使用这种类型的连接串时,将不使用本地的TNSNAMES.ORA文件。相同的JDBC连接串将被存储在<OMS_oracle_home/sysman/config/> omsconfig.properties 文件中并在建立OMS到EM Repository的连接的时候使用。  
         c. 输入EM Repository模式的名字: repository用户名是用于存储repository的数据库用户模式。 它既可以是一个已存在的用户,也可以是一个EMCA创建的新用户。 如果你计划在同一个intranet创建多个repository, repository的所有者的用户名必须是唯一的。  
         d. 如果是EMCA创建的新用户,必须为用户指定缺省表空间和临时表空间。 否则,repository将创建在用户所给的缺省表空间中。缺省的表空间是 oem_REPOSITORY。  
         e. EMCA将自动弹出一个屏幕显示整个配置过程完成的不同步骤的详细信息。配置成功结束后, 将有一个进行新的操作的提示。到这里,配置已经完成了。  
         The next step will be to start the OMS.  
      
         3. 启动Oracle Management Server: 在Windows NT上启动OMS, 执行如下步骤:  
         a. 双点[控制面板/ Control Panel]中的服务/Services图标。  
         b. 选择服务 - OracleManagementServer 。  
         c. 点按钮[启动/Start]来启动这个服务。 在Solaris上: 在命令行中,输入: oemctrl start oms& 如果启动OMS失败,请察看在目录$ORACLE_HOME/sysman/log 下的日志文件oms.log中的详细信息。对于EM 2.1的Solaris版本,日志文件的名字是oms.nohup。  
      

  3.   

    ===================================== 
         III - 配置第一层  
         Checklist -  
         o 启动EM Console控制台 
         o 发现被管理结点及其被管理的服务  
         o 设定缺省登录验证字  
         o 测试配置  
         o 启动DBA管理工具  
          
         1. 启动企业管理器控制台(EM Console)  
         在Windows NT上启动控制台: 点 Programs => Oracle<oracle home> => Enterprise Management => Configuration Assistant 或者从命令行,输入: oemapp console 从Solaris上: 在命令行输入: oemapp console 缺省的EM登录名是: sysman / oem_temp 在输入了缺省的登录名之后,你将被强制要求修改初始密码,改完后要记住啊! 登录完成后,可以设定另外的EM用户。这些用户只是EM console和OMS的用户。 他们不是数据库账号,但是这些用户是存储在EM Repository的一个表中。 
           
         2. 发现和寻找被管理结点 为了在EM控制台中管理各结点和数据库的任务和事件,这些结点必须被EM控制台发现。 为了找到一个结点,这个结点上的智能代理(Intelligent Agent )必须正运行着。在OMS机器和结点之间,必须存在TCP/IP的解析。为了验证网络解析,你必须能在OMS机器上ping到服务器的主机名和ip地址,也能从服务器上ping到OMS机器的主机名和ip地址。如果主机名不能双向的ping通,请咨询局域网的管理员。 在EM控制台中, 选择菜单Navigator => Discover Nodes。输入你想找到的机器的TCP主机名。 完成后,导航板中出现代表这个服务器上的服务的条目。. EM直接读取服务器上的智能代理写在文件services.ora中的信息。如果这些信息看上去不对,智能代理的发现过程将出错。 在执行了发现过程之后,可以通过选择菜单: System => Update TNS Alias来更新本地的TNSNAMES.ORA文件。如果设置了TNS_ADMIN变量,tnsnames.ora文件必须被复制到那里。 
      
         3. 设置缺省登录验证字 为了对被发现的服务执行任务和时间,需要在EM控制台上设定登录验证字。在提交任务和事件的时候,这些验证字将被传给服务器的Intelligent Agent。 在EM Console中, 进入菜单 System => Preferences,进入Preferred Credentials页。 - 对于每个数据库类型的服务,必须输入数据库的用户。 - 对于每个节点类型的服务,必须输入操作系统的用户。 注意: 对于Unix节点, 可以使用Oracle用户。 对于Windows NT节点,必须使用一个有Logon as a Batch Job权限的用户。 
       
         4. 测试配置  
         为了验证第三层、第二层和第一层是否配置正确,创建一个简单的测试任务。  
         a) 在EM Console中, 选择菜单Job => Create Job。  
         b) 在 General 页中,给出任务名字,并选择任务运行在哪个数据库上。  
         c) 在Tasks页中,选择"Run SQL*Plus Script" 。  
         d) 在Parameters 页中,在文本框script中输入select * from dual] 。 点击窗口底部的Submit按钮。 在Jobs pane中的Active页中, 你应该看到任务开始运行了。当任务完成后,它将被移到History页中。到 History页中去察看这个任务的状态是"Completed" 还是 "Failed"。 如果任务的状态是"Completed", 那么EM任务系统就配置好了。 如果任务的状态是"Failed", 在History页中双点这个任务,将打开一个"Edit Job"窗口。 在这个窗口中,选中有"failed"的一行,点击按钮"Show Output"。任务输出窗口将显示出错误信息。 
       
         5. 从控制台之外,启动DBA工具  
         1) 在Windows NT/95/98上: 工具可以从程序组或命令行中单独启动。  
         命令行的语*如下:  
         首先转换到ORACLE_HOME\bin目录下:  
         C> oemapp dbastudio  
         C> oemapp security  
         C> oemapp schema  
         C> oemapp instance  
         C> oemapp storage  
         C> oemapp worksheet  
         2) 在Unix系统上: 在命令行中可以如此启动那些工具:  
         $ oemapp dbastudio  
         $ oemapp security  
         $ oemapp schema  
         $ oemapp instance  
         $ oemapp storage  
         $ oemapp worksheet  
         注意: 在EM Console之外启动这些工具的时候, service name必须要么是JDBC连接串,要么是TNSNAMES.ORA文件中已有的别名。 Tnsnames.ora文件位于<EM Oracle Home>/network/admin 或者在变量TNS_ADMIN中指定的目录下。