一次Windows 注册表中注册表项目丢失导致的Oracle 数据库启动问题。

一次Windows  注册表中注册表项目丢失导致的Oracle 数据库启动问题。

环境说明:

1.windows 2008操作系统 x64bit

2.Oracle database 11.2.0.1 32bit

3.sqlplus / as sysdba进不去,报错:

c:\user\administrator>sqlplus / as sysdba
Error 6 initializing SQL*Plus
Message file sp1<lang>.msb not found
SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory

插曲:

也许有人会问:sqlplus 进不去,你怎么断定这个oracle database 是32bit的,我是用的如下的方法来断定的:

进入到bdump下,随便打开一个trc,在该trc文件的前面几行就可以看到了。

经过检查发现:如下的注册表项目丢失

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE

于是:

我就在我的win 7 64bit环境中,安装了一次Oracle database 11.2.0.1的32bit server software,然后将win 7中的HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE导出来,在 Windows 2008 x64bit环境中导入进去,之后sqlplus / as sysdba能顺利进入。

也许有人问:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE --->是这个?
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE ---->为啥不是这个?

因为这是32bit的Oracle database server software 安装在x64bit的windows上。

额外说明:

1. Oracle Database server software的bit数 必须与os 的bit数匹配,即:要么都是32bit,要么都是x64bit, 否则,Oracle support 是不予支持的。(oracle  不予支持跟能不能安装,以及装了能不能用,是两个概念)

2. Oracle Database Client software的bit数 可以不与os 的bit数相匹配。

时间: 2024-10-06 01:42:04

一次Windows 注册表中注册表项目丢失导致的Oracle 数据库启动问题。的相关文章

王道数据结构——线性表中顺序表的一些综合应用题

1.长度为n的顺序表中,编写一个时间复杂度为O(n),空间复杂度为O(1)的算法,用于删除线性表中所有值为x的数据元素.(满足要求的数放在第k位上) 1 #include <cstdio> 2 3 /*输出数组名为a.长度为n的数组*/ 4 void print(int *a, int n){ 5 for(int i = 0;i < n; i++){ 6 printf("%d ", a[i]); 7 } 8 puts(""); 9 } 10 11

[解决办法]windows的非administrator账户无法通过plsql工具登录oracle数据库

环境:windows2008服务器.使用的非administrator账户,而是新建了一个windows2008账户.安装好了plsql工具. 问题:使用administrator账户可以用plsql工具连接成功oracle数据库:但是使用非administrator账户用plsql工具连接oracle数据库失败,如下图: 原因:经过反复排查,是因为plsql工具没有获取系统的权限,而且加入了administrators组也是无效,主要原因是windows在vista系统之后新增了一个UAC(用

WPS显示无法创建对象,请确认对象已在系统注册表中注册

第一种方法:在系统的开始--所有程序找到WPS--WPS office工具--配置工具--高级--兼容设置,在这里勾选兼容第三方系统和软件. 第二种方法: xp/win7系统:拷贝packager.exe到系统目录如C:\windows\system32 第三种方法: 点击“开始-运行”,输入:regedit 进入注册表 1.HKEY_CURRENT_USER\Software\Kingsoft\Office 选中office,点击右键-删除 2.HKEY_LOCAL_MACHINE\SOFTW

sqlSever excel数据导入表中,表的ID格式化生成。

1.查询 itemList表. SELECT * FROM dbo.itemList 如图: <图一> itemList 共有 28条数据 现在我要实现,从excel数据导入itemList这个表,要求 itemId 里面的值 符合P*********格式,并且是接着递增,如在新增应为P000000029, 但是这个itemId是程序生成的,如何在插入时候自动生成,P000000030,P000000031...格式呢. 1.将excel数据格式导入数据库,这时候生成表 temp. 2.查询t

sql筛选查询A表中B表已经存在的数据

SELECT *FROM A LEFT OUTER JOIN B ON A.ID = B.IDWHERE B.ID IS NULL 开发实例: SELECT Position_Car.Area, Position_Car.CarMapNum, Position_Car.CheweiID, Position_Car.CarlotName, Position_Car.PointsFROM Position_Car LEFT OUTER JOIN TRelation_Equipment_Positio

windows操作系统下使用ssh操作linux系统下的oracle数据库

1.配置ssh:host:192.168.110.129 user:root  输入密码进入.. 2.su - oracle 3.sqlplus /nolog 4.conn sys/change_on_install as sysdba;

Linux 中 Oracle 数据库启动和关闭

有时候你需要重启Linux 上的 Oracle 数据库. 注意先启动数据库,然后在启动数据库监听. su oracle sqlplus /nolog connect /as sysdba startup //开启监听前先退出 sqlplus exit lsnrctl start //关闭数据库 shutdown immediate a.startup 参数 不带参数,启动数据库实例并打开数据库,以便用户使用数据库,在多数情况下,使用这种方式! nomount,只启动数据库实例,但不打开数据库,在

mysql查看表中列信息

查看所有数据库中所有表的数据库名和表名 SELECT `TABLES`.`TABLE_SCHEMA`, `TABLES`.`TABLE_NAME` FROM `information_schema`.`TABLES` 查看所有数据库中所有基本表的数据库名和表名 SELECT `TABLES`.`TABLE_SCHEMA`, `TABLES`.`TABLE_NAME` FROM `information_schema`.`TABLES` WHERE `TABLES`.`TABLE_TYPE` =

mysql A库a表 B库b表 将a表导入b表中

今天接到开发妹子的需求,导入指定月份的数据到测试服mysql指定的表中(表名称不一样) 首先看了下线上的表的整体大小 mysql> SELECT sum(DATA_LENGTH)+sum(INDEX_LENGTH)  FROM information_schema.TABLES where TABLE_SCHEMA='库名' AND TABLE_NAME='表名'; +------------------------------------+ | sum(DATA_LENGTH)+sum(IND