10g异机恢复后EM无法启动故障处理一例
程序员文章站
2024-04-03 23:53:52
...
之前在自己的测试环境上做了个异机恢复,原来的库上是配置过EM的,但是在恢复的库上去启动EM就报错了,下面看具体解决过程:PS:原主机名为zlm,恢复出来的主机名为bak [root@bak ~]# su - oracle[oracle@bak ~]$ emctl status dbconsole TZ set to PRCOC4J C
之前在自己的测试环境上做了个异机恢复,原来的库上是配置过EM的,但是在恢复的库上去启动EM就报错了,下面看具体解决过程: PS:原主机名为zlm,恢复出来的主机名为bak[root@bak ~]# su - oracle [oracle@bak ~]$ emctl status dbconsole
TZ set to PRC OC4J Configuration issue. /u01/app/oracle/product/10.2.0/db_1/oc4j/j2ee/OC4J_DBConsole_bak_ora10g not found. [oracle@bak ~]$ cd /u01/app/oracle/product/10.2.0/db_1/oc4j/j2ee/ [oracle@bak j2ee]$ ll total 24 -rw-r--r-- 1 oracle oinstall 256 Aug 22 16:42 deploy_db.ini drwxr-x--- 15 oracle oinstall 4096 Aug 22 16:29 home drwxr-x--- 9 oracle oinstall 4096 Aug 22 16:24 isqlplus drwxr-x--- 3 oracle oinstall 4096 Aug 22 16:24 oc4j_applications drwxr-x--- 5 oracle oinstall 4096 Aug 22 16:24 OC4J_DBConsole drwxr-x--- 7 oracle oinstall 4096 Aug 25 11:25 OC4J_DBConsole_zlm_ora10g
既然提示文件找不到,很显然是因为主机名变更的缘故,那么把名字变一下,用mv命令
[oracle@bak j2ee]$ mv -r OC4J_DBConsole_zlm_ora10g/ OC4J_DBConsole_bak_ora10g/ [oracle@bak j2ee]$ ll total 24 -rw-r--r-- 1 oracle oinstall 256 Aug 22 16:42 deploy_db.ini drwxr-x--- 15 oracle oinstall 4096 Aug 22 16:29 home drwxr-x--- 9 oracle oinstall 4096 Aug 22 16:24 isqlplus drwxr-x--- 3 oracle oinstall 4096 Aug 22 16:24 oc4j_applications drwxr-x--- 5 oracle oinstall 4096 Aug 22 16:24 OC4J_DBConsole drwxr-x--- 7 oracle oinstall 4096 Oct 20 10:58 OC4J_DBConsole_bak_ora10g [oracle@bak j2ee]$ emctl status dbconsole
TZ set to PRC EM Configuration issue. /u01/app/oracle/product/10.2.0/db_1/bak_ora10g not found. [oracle@bak j2ee]$ cd /u01/app/oracle/product/10.2.0/db_1/
[oracle@bak db_1]$ ll total 260 drwxr-x--- 7 oracle oinstall 4096 Aug 22 16:24 assistants drwxr-xr-x 2 oracle oinstall 12288 Aug 22 16:42 bin drwxr-x--- 3 oracle oinstall 4096 Aug 22 16:33 cdata drwxr-x--- 6 oracle oinstall 4096 Aug 25 11:08 cfgtoollogs drwxr-x--- 4 oracle oinstall 4096 Aug 22 16:24 clone drwxr-x--- 2 oracle oinstall 4096 Aug 22 16:33 config drwxr-x--- 6 oracle oinstall 4096 Aug 22 16:24 crs drwxr-x--- 7 oracle oinstall 4096 Aug 22 16:33 css drwxr-x--- 10 oracle oinstall 4096 Aug 22 16:33 ctx drwxr-x--- 2 oracle oinstall 4096 Oct 20 09:17 dbs drwxr-x--- 3 oracle oinstall 4096 Aug 22 16:24 demo drwxr-x--- 3 oracle oinstall 4096 Aug 22 16:24 diagnostics drwxr-x--- 3 oracle oinstall 4096 Aug 22 16:24 has drwxr-x--- 6 oracle oinstall 4096 Aug 22 16:42 hs drwxr-x--- 5 oracle oinstall 4096 Aug 25 11:27 install -rw-r----- 1 oracle oinstall 37 Aug 22 16:24 install.platform drwxr-x--- 12 oracle oinstall 4096 Aug 22 16:42 inventory drwxr-x--- 7 oracle oinstall 4096 Aug 22 16:24 javavm drwxr-x--- 4 oracle oinstall 4096 Aug 22 16:31 jdbc drwxr-x--- 7 oracle oinstall 4096 Aug 22 16:32 jdk drwxr-x--- 2 oracle oinstall 4096 Aug 22 16:32 jlib drwxr-x--- 3 oracle oinstall 4096 Aug 22 16:24 jre drwxr-x--- 13 oracle oinstall 4096 Aug 22 16:33 ldap drwxr-x--- 3 oracle oinstall 12288 Aug 22 16:42 lib drwxr-x--T 3 oracle oinstall 4096 Aug 25 11:24 log drwxr-x--- 6 oracle oinstall 4096 Aug 22 16:24 md drwxr-x--- 2 oracle oinstall 4096 Aug 22 16:25 mesg drwxr-x--- 7 oracle oinstall 4096 Aug 22 16:32 mgw drwxr-x--- 11 oracle oinstall 4096 Aug 22 16:42 network drwxr-x--- 6 oracle oinstall 4096 Aug 22 16:24 nls drwxr-x--- 15 oracle oinstall 4096 Aug 22 16:42 oc4j drwxr-x--- 6 oracle oinstall 4096 Aug 22 16:24 odbc drwxr-x--- 5 oracle oinstall 4096 Aug 22 16:24 olap drwxr-x--- 4 oracle oinstall 4096 Aug 22 16:32 OPatch drwxr-x--- 7 oracle oinstall 4096 Aug 22 16:32 opmn drwxr-x--- 4 oracle oinstall 4096 Aug 22 16:24 oracore -rw-r--r-- 1 oracle oinstall 63 Aug 22 16:22 oraInst.loc drwxr-x--- 8 oracle oinstall 4096 Aug 22 16:24 ord drwxr-x--- 7 oracle oinstall 4096 Aug 22 16:32 oui drwxr-x--- 4 oracle oinstall 4096 Aug 22 16:24 owm drwxr-x--- 6 oracle oinstall 4096 Aug 22 16:24 perl drwxr-x--- 7 oracle oinstall 4096 Aug 22 16:25 plsql drwxr-x--- 7 oracle oinstall 4096 Aug 22 16:24 precomp drwxr-x--- 7 oracle oinstall 4096 Aug 22 16:33 racg drwxr-x--- 13 oracle oinstall 4096 Aug 22 16:42 rdbms drwxr-x--- 4 oracle oinstall 4096 Aug 22 16:31 relnotes -rwxr-xr-x 1 oracle oinstall 9522 Aug 22 16:42 root.sh -rwxr-xr-x 1 oracle oinstall 0 Jun 7 2005 root.sh.old drwxr-x--- 3 oracle oinstall 4096 Aug 22 16:24 slax drwxr-x--- 3 oracle oinstall 4096 Aug 22 16:24 sqlj -rw-r----- 1 oracle oinstall 9338 Aug 25 11:42 sqlnet.log drwxr-x--- 9 oracle oinstall 4096 Aug 22 16:33 sqlplus drwxr-x--- 12 oracle oinstall 4096 Aug 22 16:33 srvm drwxr-x--- 12 oracle oinstall 4096 Aug 22 16:33 sysman drwxr-x--- 4 oracle oinstall 4096 Aug 22 16:24 uix drwxr-x--- 3 oracle oinstall 4096 Aug 22 16:24 wwg drwxr-x--- 6 oracle oinstall 4096 Aug 22 16:30 xdk drwxr----- 3 oracle oinstall 4096 Aug 25 11:25 zlm_ora10g
这次是找不到zlm_ora10g目录,同样的,也mv为bak_ora10g
[oracle@bak db_1]$ mv zlm_ora10g bak_ora10g [oracle@bak db_1]$ emctl status dbconsole TZ set to PRC Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0 Copyright (c) 1996, 2005 Oracle Corporation. All rights reserved. http://zlm:1158/em/console/aboutApplication Oracle Enterprise Manager 10g is not running. ------------------------------------------------------------------ Logs are generated in directory /u01/app/oracle/product/10.2.0/db_1/bak_ora10g/sysman/log [oracle@bak j2ee]$ emctl start dbconsole
TZ set to PRC Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0 Copyright (c) 1996, 2005 Oracle Corporation. All rights reserved. http://zlm:1158/em/console/aboutApplication Starting Oracle Enterprise Manager 10g Database Control .................................. started. ------------------------------------------------------------------ Logs are generated in directory /u01/app/oracle/product/10.2.0/db_1/bak_ora10g/sysman/log
无法启动,看到url里的信息是原主机zlm,分析一下提示的错误日志
[oracle@bak j2ee]$ cd /u01/app/oracle/product/10.2.0/db_1/bak_ora10g/sysman/log
[oracle@bak log]$ ll total 1656 -rw-r----- 1 oracle oinstall 180 Aug 25 11:28 emagentfetchlet.log -rw-r----- 1 oracle oinstall 180 Aug 25 11:28 emagentfetchlet.trc -rw-r----- 1 oracle oinstall 500 Oct 20 11:06 emagent.log -rw-r----- 1 oracle oinstall 42010 Oct 20 11:14 emagent.trc -rw-r----- 1 oracle oinstall 9816 Oct 20 11:05 emdb.nohup -rw-r----- 1 oracle oinstall 4096 Oct 20 11:05 emdb.nohup.lr -rw-r----- 1 oracle oinstall 0 Aug 25 11:25 emdctl.log -rw-r----- 1 oracle oinstall 7330 Oct 20 11:14 emdctl.trc -rw-r----- 1 oracle oinstall 802261 Aug 25 11:45 emoms.log -rw-r----- 1 oracle oinstall 802261 Aug 25 11:45 emoms.trc [oracle@bak log]$ cat emoms.log
2014-08-25 11:26:23,952 [Orion Launcher] WARN jdbc.ConnectionCache _getConnection.303 - Got a fatal exeption when getting a connection; Error code = 17002; Cleaning up cache and retrying 2014-08-25 11:26:23,991 [Orion Launcher] WARN jdbc.ConnectionCache _getConnection.306 - Io exception: The Network Adapter could not establish the connection java.sql.SQLException: Io exception: The Network Adapter could not establish the connection at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:254) at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:386) at oracle.jdbc.driver.PhysicalConnection.
刷屏了,中间省略相同错误一堆,按Ctrl+C才终止的
2014-08-25 11:29:24,713 [HttpRequestHandler-23603795] ERROR conn.ConnectionService verifyRepositoryEx.433 - Invalid Connection Pool. ERROR = Io exception: The Network Adapt
怀疑是否是因为监听没起来的缘故,先启动监听
[oracle@bak log]$ lsnrctl status
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 20-OCT-2014 11:15:26
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521)) TNS-12541: TNS:no listener TNS-12560: TNS:protocol adapter error TNS-00511: No listener Linux Error: 111: Connection refused [oracle@bak log]$ lsnrctl start
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 20-OCT-2014 11:15:29
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Starting /u01/app/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 10.2.0.1.0 - Production Log messages written to /u01/app/oracle/product/10.2.0/db_1/network/log/listener.log Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=bak)(PORT=1521)))
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521)) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production Start Date 20-OCT-2014 11:15:29 Uptime 0 days 0 hr. 0 min. 0 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Log File /u01/app/oracle/product/10.2.0/db_1/network/log/listener.log Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=bak)(PORT=1521))) The listener supports no services The command completed successfully [oracle@bak log]$ lsnrctl status
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 20-OCT-2014 11:16:17
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521)) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production Start Date 20-OCT-2014 11:15:29 Uptime 0 days 0 hr. 0 min. 48 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Log File /u01/app/oracle/product/10.2.0/db_1/network/log/listener.log Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=bak)(PORT=1521))) Services Summary... Service "ora10g" has 1 instance(s). Instance "ora10g", status READY, has 1 handler(s) for this service... Service "ora10gXDB" has 1 instance(s). Instance "ora10g", status READY, has 1 handler(s) for this service... Service "ora10g_XPT" has 1 instance(s). Instance "ora10g", status READY, has 1 handler(s) for this service... The command completed successfully [oracle@bak log]$ emctl status dbconsole TZ set to PRC Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0 Copyright (c) 1996, 2005 Oracle Corporation. All rights reserved. http://zlm:1158/em/console/aboutApplication Oracle Enterprise Manager 10g is not running. ------------------------------------------------------------------ Logs are generated in directory /u01/app/oracle/product/10.2.0/db_1/bak_ora10g/sysman/log
显然,EM启动不了不是监听的问题,那么重新配置一下EM是否会有效呢?
[oracle@bak log]$ emca -config dbcontrol db
STARTED EMCA at Oct 20, 2014 11:22:43 AM EM Configuration Assistant, Version 10.2.0.1.0 Production Copyright (c) 2003, 2005, Oracle. All rights reserved.
Enter the following information: --注意,此处信息需要手动输入 Database SID: ora10g Database Control is already configured for the database ora10g You have chosen to configure Database Control for managing the database ora10g This will remove the existing configuration and the default settings and perform a fresh configuration Do you wish to continue? [yes(Y)/no(N)]: y Listener port number: 1521 Password for SYS user: Password for DBSNMP user: Password for SYSMAN user: Password for SYSMAN user: oEmail address for notifications (optional): Invalid email. Email address for notifications (optional): Outgoing Mail (SMTP) server for notifications (optional): -----------------------------------------------------------------
You have specified the following settings
Database ORACLE_HOME ................ /u01/app/oracle/product/10.2.0/db_1
Database hostname ................ bak Listener port number ................ 1521 Database SID ................ ora10g Email address for notifications ............... Outgoing Mail (SMTP) server for notifications ...............
----------------------------------------------------------------- Do you wish to continue? [yes(Y)/no(N)]: y Oct 20, 2014 11:24:36 AM oracle.sysman.emcp.EMConfig perform INFO: This operation is being logged at /u01/app/oracle/product/10.2.0/db_1/cfgtoollogs/emca/ora10g/emca_2014-10-20_11-22-43-AM.log. Oct 20, 2014 11:24:49 AM oracle.sysman.emcp.util.DBControlUtil stopOMS INFO: Stopping Database Control (this may take a while) ... Oct 20, 2014 11:25:53 AM oracle.sysman.emcp.ParamsManager getLocalListener WARNING: Error retrieving listener for bak Oct 20, 2014 11:26:15 AM oracle.sysman.emcp.EMConfig perform SEVERE: Cannot start Database Control. The following ports are already in use: [EM agent port:3938]. Refer to the log file at /u01/app/oracle/product/10.2.0/db_1/cfgtoollogs/emca/ora10g/emca_2014-10-20_11-22-43-AM.log for more details. Could not complete the configuration. Refer to the log file at /u01/app/oracle/product/10.2.0/db_1/cfgtoollogs/emca/ora10g/emca_2014-10-20_11-22-43-AM.log for more details. [oracle@bak log]$ cat /u01/app/oracle/product/10.2.0/db_1/cfgtoollogs/emca/ora10g/emca_2014-10-20_11-22-43-AM.log
发现也是一堆报错,其中有一段是这样的,显示地主机命名还是之前旧的信息(原来的主机名为zlm,现在的为bak):
CONFIG: emdProps: /u01/app/oracle/product/10.2.0/db_1/bak_ora10g/sysman/config/emd.properties url: http://zlm:1158/em Oct 20, 2014 11:24:49 AM oracle.sysman.emcp.EMDBPreConfig isDBControlSecure CONFIG: isDbcSecure: false Oct 20, 2014 11:24:49 AM oracle.sysman.emcp.ParamsManager setFlag CONFIG: Flag 'IS_DBCONSOLE_SECURED' set to false Oct 20, 2014 11:24:49 AM oracle.sysman.emcp.util.DBControlUtil stopOMS INFO: Stopping Database Control (this may take a while) ... Oct 20, 2014 11:24:49 AM oracle.sysman.emcp.util.PlatformInterface getSortedEnvArray CONFIG: New Env List: [DISPLAY=, NEED_EXIT_CODE=1, ORACLE_SID=ora10g, PATH=/usr/sbin:/u01/app/oracle/product/10.2.0/db_1/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/mysql/bin:/usr/local/mysql/bin:/home/oracle/bin, TZ=] Oct 20, 2014 11:24:49 AM oracle.sysman.emcp.util.PlatformInterface executeCommand CONFIG: Starting execution: /u01/app/oracle/product/10.2.0/db_1/bin/emctl stop dbconsole Oct 20, 2014 11:25:43 AM oracle.sysman.emcp.util.PlatformInterface executeCommand CONFIG: Exit value of 0 Oct 20, 2014 11:25:43 AM oracle.sysman.emcp.util.PlatformInterface executeCommand CONFIG: Execution of /u01/app/oracle/product/10.2.0/db_1/bin/emctl stop dbconsole completed successfully Oct 20, 2014 11:25:43 AM oracle.sysman.emcp.util.PlatformInterface executeCommand CONFIG: TZ set to PRC Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0 Copyright (c) 1996, 2005 Oracle Corporation. All rights reserved. http://zlm:1158/em/console/aboutApplication Stopping Oracle Enterprise Manager 10g Database Control ... ... Stopped.
看来仅仅重新配置一下EM资料库是不行的,需要重建一下(先删除,后创建)
[oracle@bak log]$ emca -repos recreate shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory Error occurred during initialization of VM java.lang.Error: Properties init: Could not determine current working directory.
该错误表示 getcwd 命令无法定位到当前工作目录。一般来说是因为 cd 到了某个目录之后又rm 了这个目录
这时去执行某些命令就会报 getcwd 错误?,只需要 cd 到任何一个实际存在的目录下在执行命令即可。
出现这种现象的原因还有,当前用户没有当前目录的可执行权限,如没有正确设置ORACLE_SID环境变量,我这里属于这种情况。
[oracle@bak log]$ set ORACLE_SID=ora10g [oracle@bak log]$ emca -repos recreate
STARTED EMCA at Oct 20, 2014 11:49:36 AM EM Configuration Assistant, Version 10.2.0.1.0 Production Copyright (c) 2003, 2005, Oracle. All rights reserved.
Enter the following information: Database SID: ora10g Listener port number: 1521 Password for SYS user: Password for SYSMAN user: Password for SYSMAN user: Do you wish to continue? [yes(Y)/no(N)]: y Oct 20, 2014 11:49:59 AM oracle.sysman.emcp.EMConfig perform INFO: This operation is being logged at /u01/app/oracle/product/10.2.0/db_1/cfgtoollogs/emca/ora10g/emca_2014-10-20_11-49-36-AM.log. Oct 20, 2014 11:50:01 AM oracle.sysman.emcp.EMReposConfig dropRepository --删除 INFO: Dropping the EM repository (this may take a while) ... Oct 20, 2014 11:54:25 AM oracle.sysman.emcp.EMReposConfig invoke INFO: Repository successfully dropped Oct 20, 2014 11:54:25 AM oracle.sysman.emcp.EMReposConfig createRepository --创建 INFO: Creating the EM repository (this may take a while) ... Oct 20, 2014 11:59:58 AM oracle.sysman.emcp.EMReposConfig invoke INFO: Repository successfully created Enterprise Manager configuration completed successfully FINISHED EMCA at Oct 20, 2014 11:59:58 AM
可以看到3个successfully,重建后并把em配置也重新刷了一遍
[oracle@bak log]$ emctl status dbconsole TZ set to PRC Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0 Copyright (c) 1996, 2005 Oracle Corporation. All rights reserved. http://bak:1158/em/console/aboutApplication --重建EM资料库后,现在的主机名已经更正为“bak”了 Oracle Enterprise Manager 10g is not running.
再次重新启动EM
[oracle@bak log]$ emctl start dbconsole TZ set to PRC Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0 Copyright (c) 1996, 2005 Oracle Corporation. All rights reserved. http://bak:1158/em/console/aboutApplication Agent Version : 10.1.0.4.1 OMS Version : Unknown Protocol Version : 10.1.0.2.0 Agent Home : /u01/app/oracle/product/10.2.0/db_1/bak_ora10g Agent binaries : /u01/app/oracle/product/10.2.0/db_1 Agent Process ID : 29136 Parent Process ID : 28566 Agent URL : http://zlm:3938/emd/main --agent还是有原主机残留信息,没有更新,不过不影响登陆EM Started at : 2014-10-20 11:05:11 Started by user : oracle Last Reload : 2014-10-20 11:05:11 Last successful upload : (none) Last attempted upload : (none) Total Megabytes of XML files uploaded so far : 0.00 Number of XML files pending upload : 40 Size of XML files pending upload(MB) : 5.84 Available disk space on upload filesystem : 5.14% Agent is already started. Will restart the agent Stopping agent ... stopped. Starting Oracle Enterprise Manager 10g Database Control ........ started. ------------------------------------------------------------------ Logs are generated in directory /u01/app/oracle/product/10.2.0/db_1/bak_ora10g/sysman/log [oracle@bak log]$ emctl status dbconsole TZ set to PRC Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0 Copyright (c) 1996, 2005 Oracle Corporation. All rights reserved. http://bak:1158/em/console/aboutApplication Oracle Enterprise Manager 10g is running. ------------------------------------------------------------------ Logs are generated in directory /u01/app/oracle/product/10.2.0/db_1/bak_ora10g/sysman/log [oracle@bak log]$
通过重建EM后,就可以用web浏览器登陆EM管理界面了,新的url为:http://bak:1158/em
总结:
遇到各种原因造成的EM无法登陆的问题,通常是因为旧的EM资料库配置有问题,或者是因为改变了主机或IP地址所造成,可以使用emca -repos recreate重建,就能直接解决问题,仅仅通过emca -config dbconsole db来重新配置是不够彻底的,因为还会有之前错误信息的残留,除了这几个命令外,emca还有很多其他参数,可以通过emca --help查看,这里就不列举了。
上一篇: 困扰已久的IIS伪静态的有关问题了