前两天升级Oracle10g的测试库,从10.2.0.1升级到10.2.0.4,中间出了很多问题,还好是测试库。故障的原因也很简单,也因为是测试库,跑在一台虚机上,操作系统的内存只给了512M,Oracle就更小了,导致Java pool的内存太小,从而很多升级任务无法完成。后来加大了java pool之后,升级貌似完成。
这几天我在做一个JDE安装升级测试,跑ESU的时候报错,查看log:提示权限不足,ORA-01031: insufficient privileges. 然后我做了一下异地的sys登录Oracle的动作,居然发现不能登录。以前肯定是可以的啊。至少我映象中是可以的。
后查了资料,原来是没有密码文件。创建密码文件的过程也是很麻烦,对于一般的数据库本身不麻烦,但我这里环境略有点复杂,这台服务器上即有Oracle DB又安装有Oracle Client,所以导致环境变量有点乱。后来把PATH 环境变量改一下,把oracle db的路径放在前面就OK了。
还有一点状况我也比较好奇:在服务器上,由于是以本地管理员登录的,通过sqlplus登录,发现任何用户都可以as sysdba的方式登录。原来以前conn / as sysdba只是个晃子,其实用户名和密码可以随便些,只要你登录计算机账号是服务器Ora_DBA组的成员。
说了一堆,总结两点:
1.没有密码文件,任何Oracle 的账户都无法在非本机登录以as sysdba(除非是以属于服务器计算机管理员或ORA_DBA组
成员)
2.如果是计算机登录账号是服务器计算机管理员或者是Ora_DBA组成员,随便输入用户名和密码都可以登录,不过前提是 as sysdba。
Oracle的一些小问题解决了,可我JDE的问题还挂着,ESU还是打不上去。接着郁闷的调试中。