MAC OS X安装Oracle 10.2.0.4简要[更新至OS X 10.6]
今天突发奇想在苹果上安装个Oracle数据库,到OTN主页一查,居然Oracle 10.2.0.4 for MAC还刚刚发布不及,立刻下载按照文档动手。结果还是发现不少问题,简单记录一下吧。
第一个步骤自然是下载db.zip,然后解压缩。
之后就是为安装Oracle建立用户组和用户。一般需要建立一个安装用户组oinstall,一个DBA用户组dba,用户oracle,它们都应当具有admin组的权限。在官方文档和一些帖子里都是推荐用dscl增加用户,这需要root权限。更简单的方法就是在系统偏好设置——账户里添加,可以看看下面的图,分别是增加群组和对用户进行设置。

安装过Linux平台Oracle的可能知道Oracle对组件和Java环境有一些要求。Leopard上就简单很多,只需要安装DVD里自带的Xcode(当然也可以下载最新版本),并将Java 1.4.2环境放到Java应用程序第一优先顺序就可以了。[MAC OS X 10.6以后没有了1.4.2,后续需要修改一些内容,将在方括号中提示]
下面就是准备系统内核参数了。这里建议大家还是开启root用户。在应用程序——实用工具——目录实用工具——编辑中启用。命令行su到root用户,然后建立/etc/sysctl.conf:
kern.sysv.shmmax=1073741824
kern.sysv.shmall=2097152
kern.maxfiles=65536
kern.maxfilesperproc=65536
kern.maxproc=2068
kern.maxprocperuid=2068
net.inet.ip.portrange.first=1024
重新启动系统就生效了。其他参数在Leopard(10.5.6)下不用更改。具体还可以参考安装文档(在下载的db.zip里就有)。特别提醒一点,如果真的完全按照安装文档上进行修改,有可能会出现这个错误:
TNS-01114: LSNRCTL could not perform local OS authentication with the listener
TNS-01115: OS error 22 creating shared memory segment of 127 bytes with key xxxxxxx
这个问题困扰了我很久,最后进行广泛搜索,受到一个Linux安装求助贴的启发,将kern.sysv.shmmin重新修改为1,就恢复了(文档上要求修改为4096)。
继续看文档,又会发现IPServices是找不到的,不管了,改/etc/rc.common咯,在最后增加:
ulimit -Hu 2068
ulimit -Su 2068
ulimit -Hn 65536
ulimit -Sn 65536
现在把db.zip解压的文件夹放到oracle用户下,并chown给oracle,su – oracle。给自己建立一个.bash_profile吧,可以参照下面内容设定环境参数:
ORACLE_BASE=/Users/oracle/oracle
ORACLE_SID=macora
ORACLE_HOME=/Users/oracle/oracle/product/10.2.0
PATH=/usr/local/bin:/Users/oracle/oracle/product/10.2.0/bin:$PATH
export ORACLE_BASE
export ORACLE_SID
export ORACLE_HOME
export PATH
DYLD_LIBRARY_PATH=$ORACLE_HOME/lib
export DYLD_LIBRARY_PATH
DISPLAY=127.0.0.1:0
export DISPLAY
ulimit -Hn 65536
ulimit -Sn 65536
export NLS_LANG="AMERICAN_AMERICA.UTF8"
如果最后不设置DISPLAY,就会在启动runInstaller的时候报错,提示无法创建窗口。如果不设置DYLD_LIBRARY_PATH就会在创建数据库中提示没有监听器等错误。这些参数需要重启shell环境生效,比如重新su – oracle。
到这里基本就完成了准备工作,命令行进入目录,运行./runInstaller[10.6以后,请手工修改runInstaller,将其中的/System/Library/Frameworks/JavaVM.framework/Versions/1.4.2改为/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0。另一种解决思路是
sudo ln -s /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0 /System/Library/Frameworks/JavaVM.framework/Versions/1.4.2
./runInstaller -J-d32
]。后面就和其他平台安装一样了,安装到最后,需要开一个窗口以root权限运行$ORACLE_HOME/root.sh。
[继续补充10.6一些问题:
如果链接时遇到调用目标 ‘all_no_orcl ipc_g ihsodbc32' 错误,那么不要退出安装程序,直接打开终端,修改文件$ORACLE_HOME/rdbms/lib/ins_rdbms.mk,用#号注释掉$(HSODBC_LINKLINE)开头的行,然后返回安装程序,点击 “Retry”。
Java GUI工具(NETCA和DBCA)运行时也可能出错。那么修改 $ORACLE_HOME/jdk/bin/java脚本,将"java -Xbootclasspath…"改成"java -d32 -Xbootclasspath…"
安装时还可能提示ORA-3113错误,此问题Raimonds Simanovskis通过提供补丁文件解决了。
cd $ORACLE_HOME/bin
curl -O http://rayapps.com/downloads/oracle_ee.zip
unzip oracle_se.zip
chmod ug+s oracle
rm oracle_se.zip
]
最后再提供一些安装帮助:
在 Mac OS X 上安装 Oracle 数据库 10g 和 PHP by Matt Rohrer:http://www.oracle.com/technology/global/cn/pub/articles/rohrer_macosx_10g.html
how to install oracle 10.2.0.4 on mac os x by Ronald Rood: http://ronr.blogspot.com/2009/04/how-to-install-oracle-10204-on-intel.html
另一个英文版安装指南,on MAC Intel,推荐:http://blog.rayapps.com/2009/04/12/how-to-install-oracle-database-10g-on-mac-os-x-intel/
最后提供两个版本上的快速安装指南 by Raimonds Simanovskis[本文关于10.6的修改就是来源于此,当然,感谢留言的网友Alan,促使我更新此文档,并提供了最新进展]:http://www.pythian.com/news/1937/quick-install-guide-for-oracle-10g-release-2-on-mac-os-x-leopard-intel/
10.6上:http://blog.rayapps.com/2009/09/14/how-to-install-oracle-database-10g-on-mac-os-x-snow-leopard/
下面就是准备系统内核参数了。这里建议大家还是开启root用户。在应用程序——实用工具——目录实用工具——编辑中启用。命令行su到root用户,然后建立/etc/sysctl.conf:
这里不明白??
希望能够指点一下,谢谢
修改内存参数等等需要root权限,MAC OS X 10.5.6默认是关闭root用户的,也可以用管理员帐户通过sudo来临时提升自己权限,但是这样很麻烦,所以建议在安装过程中临时打开root用户,也就是“应用程序——实用工具——目录实用工具——编辑”,这个界面就可以启用root用户了。
“建立/etc/sysctl.conf”就是新建文本文件并保存成这个文件名(系统默认也是没有的),然后写入后续的内容并保存,系统重新启动后会自动调用这里的设置。这个步骤需要用root用户,也就是你启动命令行,然后su – root,输入你设置的密码就可以了。
不知道这样解释你是不是明白?
很开心看到这篇文章,因为介绍在mac上装oracle都文章是在是太少了,
不过,我安装你介绍都步骤安装后 运行sqlplus 是没有反应的 完全没反应
这个问题很苦恼
运行sqlplus没有反应?你是在命令行输入么?要启动数据库应该要:
sqlplus /nolog
conn / as sysdba
startup
看看会报错么?如果提示sqlplus是非法指令,那应该是你环境变量里PATH问题
我用的是 mac os x 10.5.8
sqlplus /nolog 是什么提示都没有
不报任何错 就过去了
就过去了?不出现比如
SQL >
这样的提示符,和SQLPlus的版本说明之类的?你安装过程中没有报错么?
MAC-BOOK:~ oracle$ sqlplus
MAC-BOOK:~ oracle$
就这样才郁闷,有提示还好.都不知道什么问题?
安装是没有提示错误
嗯?这个确实很奇怪哦,我上面写的你是不是都做了?
@admin
是呀 只是我系统上没有/etc/rc
只有 rc.common rc.netboot
我就新建了一个rc 添加上去
第一次安装忘记先装xcode了 装了 xcode后 再安装就没有再抛错了
那真的很奇怪了,你试下重装看看?
我发了个邮件 到你gmail
删除用户/组和文件夹后 重启机器后 再安装成功了.
好像一定要重启,要不安装程序不跑.
哈哈 太谢谢你,
本来仲打算为oracle装个linux嘅.现在唔使再搞啦.
哈哈,是啊,那些设置重启以后比较好点,用户那些好像注销也是可以的
能搞定就好啦
求助博主,我在使用snow leopard安装时,前面都设置好了,到了最后,运行runInstall时出现了找不到JRE的错误,我不知道是设置错误还是真缺乏(MAC难道不是自带JRE)吗?
错误提示:“在 /System/Library/Frameworks/JavaVM.framework/Versions/1.4.2/Home/bin/java 中未找到 Java 运行时环境。因此, 无法运行 Oracle Universal Installer。
请访问 http://www.javasoft.com 并安装 JRE 版本 1.3.1 或更高版本, 然后重试”
你看看实用工具里的Java偏好设置中优先顺序对不对
@admin
楼主,有一个问题,你是在是snow leopard下装好的ORACLE吗?还是装好了之后升级到SL的?
现在好像纯的SL装ORACLE还是会有问题。
详见http://blog.rayapps.com/2009/09/14/how-to-install-oracle-database-10g-on-mac-os-x-snow-leopard/
目前我是在升级到SL的。我先看下你的帖子,然后看有没有办法找个虚拟机或者新的硬盘测试。
呵呵,多谢了,唉,我昨天折腾到4点半发现这个问题,我google的结果重暂时没有任何答案,简直崩溃了~
还有,你或许应该在帖子里更新一下,
1,在全新安装的snow leopard下装oracle,在运行./runInstaller时,应该先打开修改./runInstaller,里面默认的使用的是JRE 1.4.2,但是全新安装的SL里没有1.4.2了,将./runInstaller中的1.4.2改为1.5.0。并且在运行./runInstaller时,后面要加上参数,如“./runInstaller -J -d32″
2,在安装过重,某个地方进度走到59%的时候会卡住,这个时候需要修改一个文件,这个在我#16楼的回复中的帖子里有提到,可以去看看。
3,数据库软件安装成功之后,在创建数据库的时候,会出现ORA-03113问题,目前我还没有搜索到解决方法。
@Alan
看到一个帖子说:
modify $ORACLE_HOME/jdk/bin/java script and change …java -Xbootclasspath… to …java -d32 -Xbootclasspath…“.
你看看是不是有用。
另外找到一个帖子:http://www.pythian.com/news/1937/quick-install-guide-for-oracle-10g-release-2-on-mac-os-x-leopard-intel/
@admin
呵呵,这个我也看过,对于最后出现的ORA-03113问题解决没有什么帮助
终于在SL里装上ORACLE了。
Raimonds Simanovskis在今天放出了一个新的帖子,里面针对我提到的ORA-03113问题提出了一个解决方案,具体的就在这个帖子里(他提供了一个下载包来解决这个问题)
http://blog.rayapps.com/2009/09/14/how-to-install-oracle-database-10g-on-mac-os-x-snow-leopard/
多谢提供最新消息,已经重新修改了文章
很高兴能读到这篇文章,帮助我顺利的安装完成,这里还是有几个问题想请教,我在启动lsnrctl的时候,说坚挺程序不支持服务不知到事什么意思呢,而且,我sqlplus /nolog,然后conn / as sysdba,然后报错ERROR:
ORA-01031: insufficient privileges很希望得到你的回答
你要检查一下你当前用户的用户组等权限,文章中提到的用户组你增加了么?你打算运行sqlplus /nolog的这个用户有这个dba用户组的权限么?
lsnrctl启动错误,可能你要看看listener.ora里面的配置对不对。
困扰了好久。
安装时总是提示下面的错误提示,请问是什么原因。先谢谢了。
正在从 /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/bin/java 初始化 Java 虚拟机。请稍候…
chen-ninrinmatoiMac:Disk1 oracle$ Exception in thread “main” java.lang.NoClassDefFoundError:
Caused by: java.lang.ClassNotFoundException:
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
@老四
是否10.6的系统?有没有按照我帖子里方括号的部分修改?
谢谢回答。
是10.6的系统。我是直接修改runInstaller文件为1.5.0的。按照方框里的也做过。大致一样的错误提示。
xcode的安装是不是有问题?
@老四
照理应该不是Xcode问题,主要只是引用JRE。
我记得http://ronr.blogspot.com/2009/04/how-to-install-oracle-10204-on-intel.html的贴主提供了一个修改了的runInstaller,你到那里看看,不过可能需要FQ。
我最近也没装了,不知道在最新的10.6.4上是不是又有改变。
提示信息中没有URLClassLoader.java,ClassLoader.java等文件。在mac中查找了,确实未发现此文件。是不是JAVA安装得有问题?
Oracle无法下载啊.
到官方网站下载啊,不行的话多试几次,另外我记得VeryCD上有网友发布过
@ern
什么时候弄个图文教程啊?这方面的资料太少了.
操作起来有点困难啊,最后稀里胡 途还是没成功.
谢谢!
安装到最后出现oui-25031的错误,是是什么原因
信息: 开始执行 Configuration Assistant
信息: Command = /Users/oracle/oracle/product/10.2.0/db_1/bin/netca /orahome /Users/oracle/oracle/product/10.2.0/db_1 /orahnam OraDb10g_home1 /instype typical /inscomp client,oraclenet,javavm,server,ano /insprtcl tcp /cfg local /authadp NO_VALUE /nodeinfo NO_VALUE /responseFile /Users/oracle/oracle/product/10.2.0/db_1/network/install/netca_typ.rsp
UnsatisfiedLinkError exception loading native library: njni10
Command = /Users/oracle/oracle/product/10.2.0/db_1/bin/netca has failed
Execution Error :
java.lang.UnsatisfiedLinkError: oracle.net.common.NetGetEnv.jniGetOracleHome()Ljava/lang/String;
at oracle.net.common.NetGetEnv.jniGetOracleHome(Native Method)
at oracle.net.common.NetGetEnv.getOracleHome(Unknown Source)
at oracle.net.ca.NetCA.main(Unknown Source)
Oracle Net Services 配置失败。退出代码是-1
在最后出现oui-25031错误怎么解决
@lc
你的系统参数设置了没有?就是.bash_profile,特别是其中的DYLD_LIBRARY_PATH=$ORACLE_HOME/lib
还有,你找下libnjni10.so这个编译是否成功了?就是是否有这个文件?
@lc
还有个方法,你试试设置参数:
export DYLD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32