erp oracle数据库连接失败,今天解决的问题:SAP无法连接Oracle故障解决
SAP
无法连接Oracle故障解决
原因:
晚上8点多,远程用户认为小型机反应太慢,重起了小型机。然后重新启动Oracle,启动SAP的时候无法连接成功Oracle。
故障分析;
昨天下午改过很多操作系统和数据库的密码。其中Oracle用户system/sys/sapr3都更改了密码。
Startsap的部分log:startdb.log显示:
------------------------------ Thu Jan 10 18:39:59 CST 2002
starting database
Oracle Server Manager Release 3.1.7.0.0 - Production
Copyright (c) 1997, 1999, Oracle Corporation. All Rights Reserved.
Oracle8i Enterprise Edition Release 8.1.7.2.0 - Production
With the Partitioning option
JServer Release 8.1.7.2.0 - Production
Connected.
ORACLE instance started.
Total System Global Area 281587604 bytes
Fixed Size 73620 bytes
Variable Size 127455232 bytes
Database Buffers 153001984 bytes
Redo Buffers 1056768 bytes
Database mounted.
Database opened.
Server Manager complete.
------------------------------ Thu Jan 10 18:40:05 CST 2002
Connect to the database to verify, that the database is now open
R3trans check finished with return code: 12
*** ERROR: Startup of database failed
Notify Database Administrator.
------------------------------ Thu Jan 10 18:40:06 CST 2002
/usr/sap/DEV/SYS/exe/run/startdb: Terminating with error code 2
使用R3trans , 查看用法,有-w 生成日志文件选项。
执行命令:
R3trans –x –w /home/devadm/trans.log,分析log:
4 ETW000 [developertrace,0] Got ORACLE_SID=DEV from environment
4 ETW000 133 0.192962
4 ETW000 [developertrace,0] Got NLS_LANG=AMERICAN_AMERICA.WE8DEC from environment
4 ETW000 69 0.193031
4 ETW000 [developertrace,0] Logon as OPS$-user to get SAPR3's password
4 ETW000 39 0.193070
4 ETW000 [developertrace,0] Connecting as /@DEV on connection 0 ...
4 ETW000 37 0.193107
4 ETW000 [developertrace,0] -->oci_logon(con_hdl=0, user='', dbname='DEV')
4 ETW000 44 0.193151
4 ETW000 [developertrace,0] Thu Jan 10 18:42:38 2002 81677 0.274828
4 ETW000 [developertrace,0] Now I'm connected to ORACLE 69 0.274897
4 ETW000 [developertrace,0] Got SAPR3's password from table SAPUSER
4 ETW000 1172 0.276069
4 ETW000 [developertrace,0] Disconnecting from connection 0 ...
4 ETW000 37 0.276106
4 ETW000 [developertrace,0] -->oci_logoff(con_hdl=0) 56 0.276162
4 ETW000 [developertrace,0] Now I'm disconnected from ORACLE
4 ETW000 869 0.277031
4 ETW000 [developertrace,0] Try to connect with the password I got from OPS$-user
4 ETW000 39 0.277070
4 ETW000 [developertrace,0] Connecting as SAPR3/@DEV on connection 0 ...
4 ETW000 40 0.277110
4 ETW000 [developertrace,0] -->oci_logon(con_hdl=0, user='SAPR3', dbname='DEV')
4 ETW000 43 0.277153
4 ETW000 [dboci.c ,0] *** ERROR => OCI-call 'olog' failed: rc = 1017
4 ETW000 88638 0.365791
4 ETW000 [dbsloci.,0] *** ERROR => CONNECT failed with sql error '1017'
4 ETW000 51 0.365842
4 ETW000 [dblink ,627] ***LOG BY2=>sql error 1017 performing CON
4 ETW000 153 0.365995
4 ETW000 [dblink ,627] ***LOG BY0=> 26 0.366021
2EETW169 no connect possible: "DBMS = ORACLE --- dbs_ora_tnsname = 'DEV'"
可以看到,其实SAP的OS用户DEVADm是可以正常连接数据库的。问题出现在sapr3这个数据库用户无法连接到Oracle这个问题上。错误原因是1017,就是错误的用户名/口令。
所以知道是SAPR3的口令不对。但是实际上SAPR3的口令就是默认的SAP。可以用sapr3/sap正常连接数据库。
根据log文件显示,这个口令是从ops$devadm用户的唯一的表sapuser里面取出来的。所以可能是ops$devadm的表里面的记录的密码和数据库的dba_users里面的表的记录的值不一样。
根据另外的一套系统的值,更新ops$devadm用户的表SAPUSER里面的密码记录,启动SAP成功。
解决方案:
更新OPS$DEVADM用户的表SAPUSER里面的密码记录,改成和产品数据库的一样。
经验:
不能直接在Oracle里面修改SAPR3的用户的口令。因为他的口令记录在dba_users和ops$devadm用户的SAPUSER里面。可能导致数据库不一致,SAP无法正常启动。
文章来自于网络,如果侵犯了您的权益,请联系站长删除!