今天突发奇想在苹果上安装个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/
jack
2010年11月10日 @ 20:00
刚才直接粘贴楼主的命令,好像也不行。
jack
2010年11月11日 @ 21:22
@ern
谢谢啊!
确实是我的命令敲得有问题。
我在runInstaller脚本里面找到了-J-d,改了改,粘到命令窗口就行了。
弄了好久了。
jack
2010年11月11日 @ 21:44
@ern
安装到最后出现oui-25031的错误,和#33楼的错误一样。我在$ORACLE_HOME/lib下面看到libnini10.xxxx的文件,但没有libnjni10.so文件。怎么才能通过编译方法产生这个文件啊?
jack
2010年11月12日 @ 18:57
已经解决了。
改了脚本就好了。
tidus
2010年11月18日 @ 06:39
你好,现在在学oracle,看到您的文章就想照着您的方法来。刚买的新的macbook pro所以直接看的是您的文章最后贴的那个10.6的教程,但是有一步进行不下去了。就是在oracle用户下vi .bash_profile 之后敲入
export DISPLAY=:0.0
export ORACLE_BASE=$HOME
umask 022
ulimit -Hn 65536
ulimit -Sn 65536
之后无法保存,说.bash_profile 无法打开和写 错误212。我猜测是oracle用户没有这个权限,所以请问在root下怎么给oracle这个用户修改bash_profile的权限。我刚刚接触mac os基本的命令不太熟。所以请教一下,谢谢。。。不甚感激,打扰了。。。期待回复。。。
ern
2010年11月18日 @ 21:58
@tidus
su – oracle这个指令执行了没有?
真心求教
2011年2月14日 @ 19:49
我的就是runInstaller打不开,打开了程序页面还没出来就自动关闭了,有没有邮箱或者QQ之类的可以在线探讨的?拜托了.我的QQ114139904
ern
2011年2月14日 @ 21:18
@真心求教
./runInstaller -J-d32
这敲对了么?注意有点有减号哦
真心求教
2011年2月14日 @ 21:50
@ern
现在俺装好了.问题来了.
oracle$ sqlplus
-bash: sqlplus: command not found
这怎么办.
ern
2011年2月14日 @ 21:56
@真心求教
环境参数设置了么?特别是:
PATH=/usr/local/bin:/Users/oracle/oracle/product/10.2.0/bin:$PATH
真心求教
2011年2月14日 @ 22:04
@ern
环境变量是oracle用户文件夹下的.bash_profile吗?顺便问下.这个是放在oracle用户文件夹下的么?
ern
2011年2月14日 @ 22:11
@真心求教
是,可以改oracle用户Home下的.bash_profile里
真心求教
2011年2月14日 @ 22:13
怎么改?就把PATH=/usr/local/bin:/Users/oracle/oracle/product/10.2.0/bin:$PATH加进去还是怎么?我快疯了
@ern
真心求教
2011年2月14日 @ 22:18
我又砍了一遍.明明是加上了,但是还是这个样子.咋办@ern
ern
2011年2月14日 @ 22:26
@真心求教
重启一下试试
或者输入env
结果贴上来看看
真心求教
2011年2月14日 @ 22:28
更要命的是我刚才cd进了bin文件夹下直接运行sqlplus都是这个.但是我进bin文件夹下看也有sqlplus这个文件啊.完全搞不懂了@ern
真心求教
2011年2月14日 @ 22:29
TERM=xterm-color
SHELL=/bin/bash
NLS_LANG=AMERICAN_AMERICA.UTF8
USER=oracle
ORACLE_SID=macora
ORACLE_BASE=/Users/oracle/oracle
PATH=/usr/local/bin:/Users/oracle/oracle/product/10.2.0/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
PWD=/Users/oracle
SHLVL=1
HOME=/Users/oracle
DYLD_LIBRARY_PATH=/Users/oracle/oracle/product/10.2.0/lib
DISPLAY=127.0.0.1:0
ORACLE_HOME=/Users/oracle/oracle/product/10.2.0
_=/usr/bin/env
这是env的结果
ern
2011年2月14日 @ 22:29
@真心求教
这么诡异?
那你chmod +x sqlplus试试
或者运行./sqlplus
ern
2011年2月14日 @ 22:40
@真心求教
好像没啥问题
./sqlplus看看吧
真心求教
2011年2月14日 @ 22:55
@ern
~ oracle$ ./sqlplus
-bash: ./sqlplus: No such file or directory
ern
2011年2月14日 @ 23:21
@真心求教
在bin目录里啊,试试?
真心求教
2011年2月15日 @ 08:48
@ern
试过了。我重新卸载删除用户重新装,结果装都装不上了。还有我用命令创建的oinstall 的groups但是在偏好设置 用户里看不到。而且直接在偏好设置里再创建oinstall 的groups提示我已经存在。怎么用命令给它删除掉?我linux不是很熟
真心求教
2011年2月15日 @ 08:50
@ern
还有。我在一个地方好像看到过这么一个条件要求Apple Mac OS X Server 10.5.4以上,我不知道我的系统是不是server的。这个怎么看?是不是需要这个?但是我的mysql可以正常使用。
真心求教
2011年2月15日 @ 14:23
今天又重新安装了一次,现在sqlplus可以执行了,执行sqlplus /nolog可以出现SQL>
但是执行sqlplus /as sysdba出现
ERROR:
ORA-01031: insufficient privileges
然后提示输入用户名和密码,我输入了scott和tiger之后出现
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Mac OS X Error: 2: No such file or directory
弄一次oracle怎么这么麻烦.
(监听器通过lsnrctl start启动了)
ern
2011年2月15日 @ 18:31
@真心求教
官方是这个要求啊,所以才这么麻烦。你的系统正常都不是Server版。
ern
2011年2月15日 @ 18:33
@真心求教
sqlplus /nolog
connect sys/oracle as sysdba
startup
真心求教
2011年2月20日 @ 02:14
SQL> connect sys/oracle as sysdba
ERROR:
ORA-01031: insufficient privileges
SQL> startup
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file ‘/Users/oracle/oracle/product/10.2.0/dbs/initmacora.ora’
ern
2011年2月20日 @ 12:28
@真心求教
你设的sys密码是什么啊,是不是”oracle”啊
真心求教
2011年2月23日 @ 21:02
还有.我用终端dscl . -create /groups/oinstal创建的oinstall用户组,但是在偏好设置-用户里看不到.我在偏好设置里新建一个用户组叫oinstall提示我说已经有用户是用这个名字,请问有没有办法把这个用户组删掉,通过终端?我不会…重装系统的心都有了.@ern
真心求教
2011年2月23日 @ 21:03
我想把那个oracle用户和这个oinstall用户组都删掉之后在偏好设置里手动创建用户和用户组再装一遍试试.快崩溃了.
真心求教
2011年2月23日 @ 21:12
sudo dscl . delete /groups/oinstall
已经通过这个删除了.按你的装一遍再看看.有问题再请教.麻烦了
真心求教
2011年3月2日 @ 20:15
到这里基本就完成了准备工作,命令行进入目录,运行./runInstaller[10.6以后,请手工修改runInstaller,将其中的/System/Library/Frameworks/JavaVM.framework/Versions/1.4.2改为/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0。
我的这个文件夹里有1.3 1.3.1 1.4 1.4.2 1.5 1.5.0 1.6 1.6.0 还用改吗?前面不是说需要把1.4.2放第一顺序,那怎么还给改成1.5.0?我这个是需要怎么弄?把1.4.2以及以前的都删了?
ern
2011年3月2日 @ 23:08
@真心求教
你不管吧,继续往后做就是了。
Apple
2011年3月29日 @ 20:37
感谢sharing
但是,我下玩db.zip时,进行解压缩的时候 竟然有提示错误
无法将“db.zip”解压缩至“apple”。
(错误1-操作不被允许。)
这是什么情况,望解答。 感激不尽
我的邮箱 bigbigboy10086@gmail.com
ern
2011年3月29日 @ 21:31
这估计是你下载的包坏了,重新下载吧
杨过
2011年4月3日 @ 21:44
Initializing Java Virtual Machine from /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home/bin/java. Please wait…
jimmyyangmatoMacBook-Pro: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)
我也没成功,卡在jdk这里了,最新版的10.6.6 上,jdk环境从1.3到1.6.0全都有,我改成1.6.0也还是这样,貌似是缺某个类,哎,放弃了,最终在mac机上安装vmware,然后把windows安装在虚拟机里,然后再安装oracle,呵呵
天堂
2011年4月13日 @ 10:37
Starting Oracle Universal Installer…
No pre-requisite checks found in oraparam.ini, no system pre-requisite checks will be executed.
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2011-04-13_10-33-30AM. Please wait …
DISPLAY not set. Please set the DISPLAY and try again.
Depending on the Unix Shell, you can use one of the following commands as examples to set the DISPLAY environment variable:
– For csh: % setenv DISPLAY 192.168.1.128:0.0
– For sh, ksh and bash: $ DISPLAY=192.168.1.128:0.0; export DISPLAY
Use the following command to see what shell is being used:
echo $SHELL
Use the following command to view the current DISPLAY environment variable setting:
echo $DISPLAY
– Make sure that client users are authorized to connect to the X Server.
To enable client users to access the X Server, open an xterm, dtterm or xconsole as the user that started the session and type the following command:
% xhost +
To test that the DISPLAY environment variable is set correctly, run a X11 based program that comes with the native operating system such as ‘xclock’:
%
If you are not able to run xclock successfully, please refer to your PC-X Server or OS vendor for further assistance.
Typical path for xclock: /usr/X11R6/bin/xclock
大哥帮帮忙看看,最近才学的java和数据库
新买了mac,不会装oracle,按照你的文章修改了下,你帮忙看看
ern
2011年4月13日 @ 14:38
@天堂
什么问题?没有窗口弹出么?提示里的这个
$DISPLAY=192.168.1.128:0.0; export DISPLAY
执行了么
天堂
2011年4月13日 @ 22:00
@ern
我是在终端里面敲的,运行run的时候 就报这些错,并没有跳出其他窗口,“提示里的这个
$DISPLAY=192.168.1.128:0.0; export DISPLAY
执行了么” 怎么执行?具体执行哪个? 还有大哥 方便给一个联系方式 QQ或者什么的吗?因为最新学习需要,希望进一步交流!
Aofei
2012年2月15日 @ 18:23
来求教来了⋯⋯
我10.7.3版本的系统按照您的方法安装,一步一步的来,到最后运行runInstaller的时候,一串各种错误,是不是10.7.3的系统不能用这种方法了?
ern
2012年2月15日 @ 21:35
10.7.3下我真没有测试过,你看下我文末的外站链接,里面有更新么?
Aofei
2012年2月16日 @ 20:29
我成功运行安装窗体了,但是到Configuration Assistant的时候出现OUI-25031错误,以下是错误信息:已通过 Configuration Assistant “Oracle Net Configuration Assistant” 生成输出:
Command = /Users/oracle/oracle_db_home/product/10.2.0/bin/netca /orahome /Users/oracle/oracle_db_home/product/10.2.0 /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_db_home/product/10.2.0/network/install/netca_typ.rsp
UnsatisfiedLinkError exception loading native library: njni10
Configuration Assistant “Oracle Net Configuration Assistant” 失败
—————————————————————————–
“/Users/oracle/oracle_db_home/product/10.2.0/cfgtoollogs/configToolFailedCommands” 脚本包含所有失败的, 跳过的或取消的命令。可使用此文件在 OUI 外运行这些 Configuration Assistant。请注意, 执行此脚本前, 您可能需要用口令 (如果有) 来更新此脚本。—————————————————————————–已通过 Configuration Assistant “Oracle Net Configuration Assistant” 生成输出:
Command = /Users/oracle/oracle_db_home/product/10.2.0/bin/netca /orahome /Users/oracle/oracle_db_home/product/10.2.0 /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_db_home/product/10.2.0/network/install/netca_typ.rsp
Configuration Assistant “Oracle Net Configuration Assistant” 失败
—————————————————————————–
“/Users/oracle/oracle_db_home/product/10.2.0/cfgtoollogs/configToolFailedCommands” 脚本包含所有失败的, 跳过的或取消的命令。可使用此文件在 OUI 外运行这些 Configuration Assistant。请注意, 执行此脚本前, 您可能需要用口令 (如果有) 来更新此脚本。—————————————————————————–@ern
ern
2012年2月21日 @ 20:59
@Aofei
你这个应该是Oracle Net配置运行出错,不会影响整个数据库的,手工设置一下NETWORK/Admin文件夹下面的几个ora文件就行了。你上网搜一下手工配置oracle net的方法吧。
Antony
2012年3月11日 @ 11:14
你好,
我这里直接用 sqlplus 就报错
dyld: Library not loaded: /b/227/rdbms/lib/libodm10.dylib
Referenced from: /opt/app/oracle/product/10.2.0/bin/oracle
Reason: image not found
ERROR:
ORA-12547: TNS:lost contact
但是使用下面的方式就OK
sqlplus myuser/mypass@$ORACLE_SID
这问题很久都没解决了
ern
2012年3月11日 @ 14:06
环境变量设置正确么?
Antony
2012年3月12日 @ 19:26
export ORACLE_BASE=/opt/app/oracle
export ORACLE_SID=orcl
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0
export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:$ORACLE_HOME/lib
export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:$ORACLE_HOME/rdbms/lib
export PATH=$PATH:$ORACLE_HOME/bin
和oracle用户的环境变量完全一样,也在dba组里面,唯一的问题是要带个 $ORACLE_SID 才不报错
似乎是环境变量里面的ORACLE_SID没起作用,我是全新安装,不存在安装目录变成stuff 组的问题
只是非oracle 用户才有这问题
wenrensaoke
2012年9月20日 @ 09:48
大侠有安装包吗,官网的下不下来了
ern
2012年9月20日 @ 11:38
手边没有哦,官网一般都挺稳定啊,你换个时间试试
warldge
2014年8月12日 @ 13:28
Mac安装Oracle完整傻瓜式教程 比任何一个教程都好 http://blog.sina.com.cn/s/blog_be59e93c0102uyhu.html
ern
2014年8月12日 @ 14:04
还是10.6的。可惜我现在不搞Oracle了,不然可以全面更新一下,呵呵。