7

完美方案:win7/win10下正确安装oracle 10g

 1 year ago
source link: https://blog.51cto.com/u_5526964/5890942
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

完美方案:win7/win10下正确安装oracle 10g

推荐 原创

我打算安装Oracle 10g作为开发数据库,但是由于Oracle 10g太老了,兼容性问题严重,在windows 10和windows 7下安装均遇到困难。经过我两天的反复摸索和实验,终于找到完美方案。记录如下:

Oracle 10g 32位下载链接:https://pan.。baidu.。com/s/1OepGJvfrVv1sb3wtX9eEFg (删除句号)提取码:u4tg

Oracle 10g 64位下载链接:链接:https://pan.。baidu.。com/s/18pDJAxl2DAsnnj3lvqqQEA (删除句号)提取码:9xj4

下载好后找到setup.exe执行,会发现操作系统版本错误:“检查操作系统版本:必须是5.0, 5.1, or 5.2。  实际为6.2”,如下图:

完美方案:win7/win10下正确安装oracle 10g_windows10

解决办法:

(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的截图如下:

完美方案:win7/win10下正确安装oracle 10g_windows10_02

上图显示版本为1903,实际上应该配置为6.2。

修改后重新执行setup.exe,操作系统版本错误没有出现。

完美方案:win7/win10下正确安装oracle 10g_oracle 10g_03

但是会出现新的问题,提示“程序异常终止”,如下截图:

完美方案:win7/win10下正确安装oracle 10g_数据库_04

(2)修改安装程序兼容性来消除“程序异常错误”

点中setup.exe选中右键菜单“属性”来打开setup.exe文件属性,win10如下图:

完美方案:win7/win10下正确安装oracle 10g_兼容性_05

点击“运行兼容性疑难解答”,win10操作系统会给出兼容模式建议。

完美方案:win7/win10下正确安装oracle 10g_数据库_06

win7如下图:

完美方案:win7/win10下正确安装oracle 10g_oracle 10g_07

不要点击“帮助我选择设置”,需要选择右键菜单“兼容性疑难解答”,

完美方案:win7/win10下正确安装oracle 10g_oracle 10g_08
完美方案:win7/win10下正确安装oracle 10g_兼容性_09

win7操作系统会帮助给出兼容模式建议。

完美方案:win7/win10下正确安装oracle 10g_数据库_10

然后,选中“以管理员身份运行此程序”。

3、正式安装

 经过以上准备后,正式执行setup.exe,以下仅仅列出win7下的关键安装步骤。

(1)选择安装方法

如下图,如果选择“基本安装”,则修改主目录位置,例如:d:\oracle,再输入口令。随后安装就按部就班即可。

完美方案:win7/win10下正确安装oracle 10g_数据库_11

如果选择“高级安装”,那么安装过程中可以控制更多。以下步骤以高级安装为准。

完美方案:win7/win10下正确安装oracle 10g_windows10_12

(2)选择安装类型

完美方案:win7/win10下正确安装oracle 10g_windows10_13

如上图,选“企业版”。

(3)指定主目录详细信息

完美方案:win7/win10下正确安装oracle 10g_兼容性_14

上图,修改路径,例如:d:\oracle

(4)先决条件检查

完美方案:win7/win10下正确安装oracle 10g_oracle 10g_15

如上图,安装程序自动检测安装条件,符合则提示“通过”,不符合则会给出失败提示,例如:如果操作系统ip是通过DHCP获取的,那么会提示“失败”,如下图:

完美方案:win7/win10下正确安装oracle 10g_windows7_16

解决办法是修改网卡IP地址为固定地址,如下图:

完美方案:win7/win10下正确安装oracle 10g_windows10_17

上图左边是执行ipconfig/all的结果,右边是网卡IPv4设置界面,建议设置的值参考左边的结果,快捷而又不易出错。

(5)安装配置选项

完美方案:win7/win10下正确安装oracle 10g_windows10_18

如上图,选择“创建数据库”。

(6)数据库配置

完美方案:win7/win10下正确安装oracle 10g_windows10_19

如上图,选择“高级”。之后,会显示概要和javaw的防火墙通过允许提示框,如下图:

完美方案:win7/win10下正确安装oracle 10g_windows7_20

应选择“允许访问”,再点击“安装”按钮。

(7)自动安装

随后是自动安装,不用人工干预。但是有可能出现“无法定位程序输入点GetProcessImageFilenameW于动态链接库PSAPI.DLL”,如下图:

完美方案:win7/win10下正确安装oracle 10g_windows7_21

这个问题很可能不影响使用,因此直接点“确定”即可,一旦出现就可能出现三次,三次都点“确定”,后续使用中我没有遇到不妥之处。

但是,本着工匠精神,我深入发现操作系统自带的PSAPI.DLL文件存在GetProcessImageFileNameW这个函数,PSAPI.DLL文件位于windows\system32目录,如下图:

完美方案:win7/win10下正确安装oracle 10g_windows10_22

另外还有一个同名文件位于oracle创建的临时目录,版本和大小都不同,oracle这个文件版本是5.0,如下图:

完美方案:win7/win10下正确安装oracle 10g_数据库_23
完美方案:win7/win10下正确安装oracle 10g_数据库_24

显然,oracle自带的文件比操作系统自带的文件要老很多。

为了进一步确认,我下载了dependencywalker程序来查看内部函数,下载链接:http://www.dependencywalker.com/

win7自带的程序内部如下:

完美方案:win7/win10下正确安装oracle 10g_oracle 10g_25

存在GetProcessImageFileNameW函数,而oracle自带的文件却不存在,如下:

完美方案:win7/win10下正确安装oracle 10g_windows10_26

微软官网能找到相关资料,链接: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遇到这个问题点“确定”后就“停止安装”,如下图:

完美方案:win7/win10下正确安装oracle 10g_windows10_27

然后把操作系统自带的PSAPI拷贝到oracle临时目录中,修改为“只读”,最后重新安装,oracle欲替换,却受阻,从而解决问题。

(8)数据库创建选项

需要确认数据库文件路径,例如:d:\oracle\oradata。第11步,需要选择安装哪些模块,按默认安装,可以不用修改。

完美方案:win7/win10下正确安装oracle 10g_windows10_28

(9)安装成功

完美方案:win7/win10下正确安装oracle 10g_windows7_29

在另外一台计算机上安装Oracle SQL Developer,下载链接:​ ​https://www.oracle.com/database/sqldeveloper/technologies/download/​

新建链接,如下图:

完美方案:win7/win10下正确安装oracle 10g_数据库_30

双击连接数据用户成功后,新建一张表:

完美方案:win7/win10下正确安装oracle 10g_windows10_31

编写脚本并执行:

完美方案:win7/win10下正确安装oracle 10g_windows10_32

5、主机连接VMWare虚拟机上的Oracle数据库

最好把数据库安装在另外一台服务器上,但是没有服务器的情况下可以把oracle安装在VMWare虚拟机上。

完美方案:win7/win10下正确安装oracle 10g_兼容性_33

但是,主机和虚拟机要在同一个子网上,需要设置两步:

(1)修改主机的虚拟网卡设置

在VMWare Workstation中选中“编辑”-->“虚拟网络编辑器”,如下图

选择VMnet8虚拟网卡作为和虚拟机通信的网卡,设置网络地址为192.168.195.0。

(2)修改虚拟机的虚拟网卡设置

虚拟机右键菜单“设置”,如下图:

完美方案:win7/win10下正确安装oracle 10g_windows10_34

在“自定义:特定虚拟网络”中指定VMnet8,然后到虚拟机中设置IP地址为192.168.195.130.

最后,主机和虚拟机互相ping,如果都能ping通,则表示设置成功,否则重新检查配置是否正确。

完美方案:win7/win10下正确安装oracle 10g_windows10_35

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK