您的位置:首页 > 数据库 > Oracle

在Win7安装Oracle10g记录

2010-11-16 16:20 375 查看
在Win7旗舰版安装oracle9i,但是由于版本不兼容,装不上去,改装oracle10g,前面都正常,但是在创建数据库时报:创建数据库提示:ora-12546 tns permission denied
重新配置tnslistener,新建数据库还是同样的错误。
在命令行执行oracle.exe,然后在任务管理器,查看不到oracle进程,说明oracle没有安装上。

原来是由于:oracle 10g for windows有好几个版本的。不同操作系统不同。
Win7需要使用“oracle 10g for vista and windows2K8 x86”这个版本。
可以下载:
http://www.oracle.com/technology/global/cn/software/products/database/oracle10g/htdocs/10203vista.html
或者到http://www.oracle.com/technology/software/products/database/xe/htdocs/102xewinsoft.html
下载Express版本。选:Oracle Database 10g Express Edition (Universal),只有一个语言。

因为我不需要使用很高级的数据库管理功能,所以下载Express版本。200多M,下载很快,大概20多分钟。

因为我已经装了一个oracle10g,所以需要先将它卸载。但是比较土的,我竟然没有找到可以卸载的地方(不像8i),所以采用下面方法卸载。
删除oracle安装程序,然后把注册表里面software里面的oracle删了,把注册表里面services里面的oracle相关服务删了就完了。

网上有些资料,提示按照下面步骤做些修改。但是这些修改是当如果oracle安装的时候,报版本不匹配的话,你再去改那个配置文件,否则不用的。我在我的Win7上安装,没有出现提示版本不匹配的情况,所以我没有做修改。留下蛮记录。
将oralce 10G的安装镜像解压都硬盘,找到/stage/prereq/db/下的refhost.xml文件添加如下内容:
mN8Df UC,^11792383<!--Microsoft Windows 7-->
YEr8t;g`2`*u11792383<OPERATING_SYSTEM>
*p9CP#`8O(C2h11792383<VERSION VALUE="6.1"/>
G3E)Cg(?e p+d6fZ11792383</OPERATING_SYSTEM>
_/]"{J t11792383ITPUB个人空间1@7pFG3h h
再到install目录中找到oraparam.ini文件,添加如下内容:
Al Z&w-f0w ^~"I11792383[Windows-6.1-required]ITPUB个人空间_ap1ag o
#Minimum display colours for OUI to runITPUB个人空间0nA9RgiZ5Qj.D4I"?
MIN_DISPLAY_COLORS=256ITPUB个人空间@&X?Tq
#Minimum CPU speed required for OUI
'P0K8_e8N*U3/r#b+p11792383#CPU=300
CLn3_T11792383[Windows-6.1-optional]

装oracle10g Express版本,过程很快,也很顺利。数据库装上了。但是发现没有数据库。
采用新建表空间,然后在表空间中创建数据库的方式来解决这个问题。Express版本启动的那个页面,内容很简单,所以采用命令行方式进行下述操作。

以sys用户登录
打开命令行,
sqlplus /nolog
conn sys/manager as sysdba
创建表空间
create tablespace demo datafile 'demo.dat' size 50m reuse autoextend on next 5m;
创建用户
create user demo identified by demo default tablespace demo;
授权
grant dba to demo;
以新建用户登录
conn demo/demo
导入数据
@ D:/f盘/自动化平台安装包/V2.0/售前演示数据.sql

导入后出现下述错误
values ('A2550526187961000004', 'WebElement', '单击寿险2007版FF核心业务系统(用户ITPUB个人空间H/"ut!C mI
测试)', 'T', 'A247120722A251000001', '寿险2007版FF核心业务系统(用户测试)', 'ClicITPUB个人空间$x%s`-`.lt
k', null, null, null, '0', 1, null, 'A2471207221561000001')ITPUB个人空间'Ch wO`/#z i+t
*ITPUB个人空间 P zz%?R*} Sn
第2行出现错误:ITPUB个人空间(Km7Hm+vF./u3i
ORA-12899:列"DEMO"."TF_STEP"."STEP_NAME"的值太大(实际值: 53,最大值: 50)
由于原来创建数据库时,字符集选择错误,现有字符集支持单字符,而待导入数据为双字符,故现有字符集不支持该数据。下面需要修改数据库的字符集。

select * from nls_database_parameters
得知现有字符集为:AL16UTF16。
NLS_NCHAR_CHARACTERSETITPUB个人空间w'CMF-g1Po@-d0/
AL16UTF16

下面开始修改数据库字符集。
shutdown
startup nomoout(无挂载数据库方式启动)
alter database mount exclusive;
alter system enable restricted session;
alter system set job_queue_processes=0;
alter database open;
alter database character set INTERNAL_USE zhs16gbk
SELECT VALUE$ FROM SYS.PROPS$ WHERE Name = 'NLS_CHARACTERSET';

修改完字符集后,需要重新创建表空间,导入数据。
drop tablespace demo;
drop user demo cascade;
重新创建
create tablespace demo datafile 'demo.dat' size 50m reuse autoextend on next 5m;ITPUB个人空间il#V(C-l.pXx%^
create user demo identified by demo default tablespace demo;
B q*r*b/^A w11792383grant dba to demo;ITPUB个人空间;T{U:Dw;U!Bb+N:{
conn demo/demo
@ D:/f盘/自动化平台安装包/V2.0/售前演示数据.sql
这回数据导入成功
记得要执行commit,否则断开连接,数据将丢失。
commit;

创建SampleCenter数据库环境
创建表空间等均类似。在导入数据时,先导入:create_sql_oracle.sql,然后再导入init_data.sql。在导入init_data.sql时提示:
ERROR:ITPUB个人空间|Yj!EU"AXA
ORA-01756:引号内的字符串没有正确结束
a ]3JC Y(bM E"]jm11792383经检查,文件中脚本没有异常,决定一片一片导入,此次可以导入,怀疑为文件中的注释语句问题。
记住需要执行commit。

如何查看这个express版本的服务名
select instance_name from v$instance
结果为:xe。

可参考资料:
http://www.apex-blog.com/oracle-apex/windows-7-oracle-xe-open-source-161.html
http://www.dbaportal.eu/?q=node/137
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: