我打算安装Oracle 10g作为开发数据库,但是由于Oracle 10g太老了,兼容性问题严重,在windows 10和windows 7下安装均遇到困难。经过我两天的反复摸索和实验,终于找到完美方案。记录如下:
1、下载
Oracle 10g 32位下载链接:https://pan.。baidu.。com/s/1OepGJvfrVv1sb3wtX9eEFg (删除句号)提取码:u4tg
Oracle 10g 64位下载链接:链接:https://pan.。baidu.。com/s/18pDJAxl2DAsnnj3lvqqQEA (删除句号)提取码:9xj4
2、准备
下载好后找到setup.exe执行,会发现操作系统版本错误:“检查操作系统版本:必须是5.0, 5.1, or 5.2。 实际为6.2”,如下图:
解决办法:
(1)修改oracle安装盘的操作系统认证版本
在安装盘中搜索refhost.xml在CERTIFIED_SYSTEMS标签内最后新增如下内容,以新增三个操作系统的支持。
<OPERATING_SYSTEM>
<VERSION VALUE="6.0"/>
</OPERATING_SYSTEM>
<OPERATING_SYSTEM>
<VERSION VALUE="6.1"/>
</OPERATING_SYSTEM>
<OPERATING_SYSTEM>
<VERSION VALUE="6.2"/>
</OPERATING_SYSTEM>
在安装盘中搜索oraparam.ini和oraparam.stage并修改之,以新增三个操作系统的支持。
首先,把Certified Versions标签内Windows=4.0,5.0,5.1,5.2修改为:
Windows=4.0,5.0,5.1,5.2,6.0,6.1,6.2
其次,在Certified Versions标签内最后新增如下行:
#Windows .net use winver.exe to find version
[Windows-6.0-required]
#Minimum display colours for OUI to run
MIN_DISPLAY_COLORS=256
#Minimum CPU speed required for OUI
#CPU=300
[Windows-6.0-optional]
#Windows .net use winver.exe to find version
[Windows-6.1-required]
#Minimum display colours for OUI to run
MIN_DISPLAY_COLORS=256
#Minimum CPU speed required for OUI
#CPU=300
[Windows-6.1-optional]
#Windows .net use winver.exe to find version
[Windows-6.2-required]
#Minimum display colours for OUI to run
MIN_DISPLAY_COLORS=256
#Minimum CPU speed required for OUI
#CPU=300
[Windows-6.2-optional]
注意以上修改涉及的版本号是windows操作系统内置版本号,需要使用winver命令查看,win7是6.1,但是我在win10下执行winver的截图如下:
上图显示版本为1903,实际上应该配置为6.2。
修改后重新执行setup.exe,操作系统版本错误没有出现。
但是会出现新的问题,提示“程序异常终止”,如下截图:
(2)修改安装程序兼容性来消除“程序异常错误”
点中setup.exe选中右键菜单“属性”来打开setup.exe文件属性,win10如下图:
点击“运行兼容性疑难解答”,win10操作系统会给出兼容模式建议。
win7如下图:
不要点击“帮助我选择设置”,需要选择右键菜单“兼容性疑难解答”,
win7操作系统会帮助给出兼容模式建议。
然后,选中“以管理员身份运行此程序”。
3、正式安装
经过以上准备后,正式执行setup.exe,以下仅仅列出win7下的关键安装步骤。
(1)选择安装方法
如下图,如果选择“基本安装”,则修改主目录位置,例如:d:\oracle,再输入口令。随后安装就按部就班即可。
如果选择“高级安装”,那么安装过程中可以控制更多。以下步骤以高级安装为准。
(2)选择安装类型
如上图,选“企业版”。
(3)指定主目录详细信息
上图,修改路径,例如:d:\oracle
(4)先决条件检查
如上图,安装程序自动检测安装条件,符合则提示“通过”,不符合则会给出失败提示,例如:如果操作系统ip是通过DHCP获取的,那么会提示“失败”,如下图:
解决办法是修改网卡IP地址为固定地址,如下图:
上图左边是执行ipconfig/all的结果,右边是网卡IPv4设置界面,建议设置的值参考左边的结果,快捷而又不易出错。
(5)安装配置选项
如上图,选择“创建数据库”。
(6)数据库配置
如上图,选择“高级”。之后,会显示概要和javaw的防火墙通过允许提示框,如下图:
应选择“允许访问”,再点击“安装”按钮。
(7)自动安装
随后是自动安装,不用人工干预。但是有可能出现“无法定位程序输入点GetProcessImageFilenameW于动态链接库PSAPI.DLL”,如下图:
这个问题很可能不影响使用,因此直接点“确定”即可,一旦出现就可能出现三次,三次都点“确定”,后续使用中我没有遇到不妥之处。
但是,本着工匠精神,我深入发现操作系统自带的PSAPI.DLL文件存在GetProcessImageFileNameW这个函数,PSAPI.DLL文件位于windows\system32目录,如下图:
另外还有一个同名文件位于oracle创建的临时目录,版本和大小都不同,oracle这个文件版本是5.0,如下图:
显然,oracle自带的文件比操作系统自带的文件要老很多。
为了进一步确认,我下载了dependencywalker程序来查看内部函数,下载链接:http://www.dependencywalker.com/
win7自带的程序内部如下:
存在GetProcessImageFileNameW函数,而oracle自带的文件却不存在,如下:
微软官网能找到相关资料,链接:https://learn.microsoft.com/zh-cn/windows/win32/api/psapi/nf-psapi-getprocessimagefilenamew
其中也说明了GetProcessImageFileNameW函数用于检索指定进程的可执行文件的名称,感觉检索出错不会影响大局。还给出这种问题的解决办法,他们说:
文件Psapi.dll安装在 %windir%\System32 目录中。 如果计算机上存在此 DLL 的另一个副本,则当在系统上运行应用程序时,可能会导致以下错误:“过程入口点 GetProcessImageFileName 无法位于动态链接库中PSAPI.DLL。若要解决此问题,请找到不在 %windir%\System32 目录中的任何版本并删除或重命名它们,然后重启。
可惜的是,oracle自带的PSAPI文件无法替换,因为javaw正在使用它。我决心一定要找到办法,功夫不负有心人,终于在MSDN一个论坛上查到有人在问这个问题,链接:https://social.msdn.microsoft.com/Forums/en-US/b565c99d-30d2-4f72-a7c0-0b4bbc121d70/psapidll-error-whilst-trying-to-install-oracle-10g-rc2?forum=embeddedwindowscomponents,最后给出的办法是:
This one is the best solution. Just to add into this after coping PSAPI.dll into temp installer folder we must make it read only. I tried without making it read only and failed a few times. Hence concluded that it is must to make it read only.
也就是说,安装oracle遇到这个问题点“确定”后就“停止安装”,如下图:
然后把操作系统自带的PSAPI拷贝到oracle临时目录中,修改为“只读”,最后重新安装,oracle欲替换,却受阻,从而解决问题。
(8)数据库创建选项
需要确认数据库文件路径,例如:d:\oracle\oradata。第11步,需要选择安装哪些模块,按默认安装,可以不用修改。
(9)安装成功
4、测试
在另外一台计算机上安装Oracle SQL Developer,下载链接:https://www.oracle.com/database/sqldeveloper/technologies/download/
新建链接,如下图:
双击连接数据用户成功后,新建一张表:
编写脚本并执行:
5、主机连接VMWare虚拟机上的Oracle数据库
最好把数据库安装在另外一台服务器上,但是没有服务器的情况下可以把oracle安装在VMWare虚拟机上。
但是,主机和虚拟机要在同一个子网上,需要设置两步:
(1)修改主机的虚拟网卡设置
在VMWare Workstation中选中“编辑”-->“虚拟网络编辑器”,如下图
选择VMnet8虚拟网卡作为和虚拟机通信的网卡,设置网络地址为192.168.195.0。
(2)修改虚拟机的虚拟网卡设置
虚拟机右键菜单“设置”,如下图:
在“自定义:特定虚拟网络”中指定VMnet8,然后到虚拟机中设置IP地址为192.168.195.130.
最后,主机和虚拟机互相ping,如果都能ping通,则表示设置成功,否则重新检查配置是否正确。
【文章原创作者:大丰网站制作公司 http://www.1234xp.com/dafeng.html 提供,感恩】