今天发现一个奇怪现象,远程桌面连接到用户提供的一台开发服务器,然后想要用sqlplus / as sysdba命令连接到数据库做切换数据库到mount状态的操作,居然命令hang住而无法连接到数据库。然而客户端连接到服务器时,无论是pl/sql还是sqlpplus都能正常连接,且能够完成数据库的正常读取和存储操作。于是远程桌面重新连接到用户服务器,尝试查看数据库其他组件状态,具体情况是检查相关组件输入如下命令时,oracle均无法正常连接,并hang机
C:\Users\dell>sqlplus / as sysdba
--无任何反应
C:\Users\dell>lsnrctl status
--无任何反应
C:\Users\dell>rman target /
--无任何反应
另外,在执行上面三组命令时,查看alert日志,均发现对应到具体操作时间点上产生如下错误
OER 7451 in Load Indicator : Error Code = OSD-04500: 指定了非法选项
O/S-Error: (OS 1) 函数不正确。 !
Mon Jun 16 13:36:11 2014
OER 7451 in Load Indicator : Error Code = OSD-04500: 指定了非法选项
O/S-Error: (OS 1) 函数不正确。 !
OER 7451 in Load Indicator : Error Code = OSD-04500: 指定了非法选项
O/S-Error: (OS 1) 函数不正确。 !
查了下,原来这个错误跟环境配置相关,oracle软件是32位的,但安装在了windows是64位的操作系统上,才导致报这个问题,如果解决只能重新安装数据库软件为64位的软件。
具体查看数据库和操作系统版本和位数的命令如下
select * from v$version; --查看数据库版本和位数
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 – Production
Systeminfo --查看操作体统版本和位数
主机名: LOCAL-WIN7
OS 名称: Microsoft Windows 7 企业版
OS 版本: 6.1.7601 Service Pack 1 Build 7601
OS 制造商: Microsoft Corporation
OS 配置: 独立工作站
OS 构件类型: Multiprocessor Free
注册的所有人: LOCAL
注册的组织:
......
系统类型: x64-based PC