Using built-in specs.
Configured with: /var/tmp/gcc/gcc-5659~1/src/configure
–disable-checking –enable-werror –prefix=/usr –mandir=/share/man
–enable-languages=c,objc,c++,obj-c++
–program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ –with-slibdir=/usr/lib
–build=i686-apple-darwin10 –program-prefix=i686-apple-darwin10-
–host=x86_64-apple-darwin10 –target=i686-apple-darwin10
–with-gxx-include-dir=/include/c++/4.2.1
gcc version 4.2.1 (Apple Inc. build 5659)
dscl . -create /groups/dba
dscl . -append /groups/dba gid 5400
dscl . -append /groups/dba passwd “*”
建用户:
dscl . -create /users/oracle
dscl . -append /users/oracle uid 5300
dscl . -append /users/oracle gid 5400
dscl . -append /users/oracle shell /bin/bash
dscl . -append /users/oracle home /Users/oracle
dscl . -append /users/oracle realname “Oracle software owner”
dscl . -append /Groups/dba GroupMembership oracle
mkdir /Users/oracle
chown oracle:dba /Users/oracle
defaults write /Library/Preferences/com.apple.loginwindow HiddenUsersList -array-add oracle
passwd oracle
sysctl kern.sysv.semmsl # 87381
sysctl kern.sysv.semmns # 87381
sysctl kern.sysv.semmni # 87381
sysctl kern.sysv.semmnu # 87381
sysctl kern.sysv.semume # 10
sysctl kern.sysv.shmall # 2097152
sysctl kern.sysv.shmmax # max SGA you need.(参考设置:2147483648)
sysctl kern.sysv.shmmni # 4096
sysctl kern.maxfiles # 65536
sysctl kern.maxfilesperproc # 65536
sysctl net.inet.ip.portrange.first # 1024
sysctl net.inet.ip.portrange.last # 65000
sysctl kern.corefile # core
sysctl kern.maxproc # 2068
sysctl kern.maxprocperuid # 2068
可以通过设置值,为了避免麻烦,直接全部些人文件 sysctl.conf
vi /etc/sysctl.conf
格式:
kern.sysv.semmsl=87381
kern.sysv.semmns=87381
……
重启系统,检查参数
设置oracle安装目录,建立/oracle并把其所有权给oracle用户
mkdir /oracle
chown oracle:dba /oracle
chmod 775 /oracle
由于给oracle指定的是bash这个shell,在其目录下建立一个.bash_profile
su – oracle
查看当前shell
echo $SHELL
用oracle用户去建,下次oracle用户登录就会执行其中的命令,设置些环境变量
修改ulimit,文档上说得IPServices没有找到,就添加到profile一样的效果
# Must match kern.maxfilesperproc
ulimit -Hn 65536
ulimit -Sn 65536
umask 022
export DISPLAY=:0.0
export ORACLE_BASE=/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export DYLD_LIBRARY_PATH=$ORACLE_HOME/lib
export ORACLE_SID=orcl
export ORACLE_HOSTNAME=qisnow.local
export NLS_LANG=”SIMPLIFIED CHINESE_CHINA.UTF8″
PATH=$PATH:/$ORACLE_HOME/bin
注意ORACLE_HOSTNAME是主机名,这个需要在/etc/hosts中配置,和hostname看到的一样,要能ping通
开始安装
安装需要有x11的环境,因此在上面设置了DISPLAY的值(没有x11安装程序启动不了)
设置DISPLAY环境变量, 运行图形程序(如xclock)时会收到如下错误:
Error: Can’t open display: :0.0
这是因为X11服务器默认情况下不允许别的用户的图形程序的图形显示在当前屏幕上. 如果需要别的用户的图形显示在当前屏幕上, 则应以当前登陆的用户, 也就是切换身份前的用户执行如下命令
xhost +
解决方案来自:
在10.6以后,直接用su – oracle的方式使用xclock命令打不开x11界面了,需要注销当前用户,从图形登录界面登录oracle用户,使用终端安装
下载并解压好文件(放到/oracle下):
cd /oracle/db/Disk1
据说从MACOX 10.6以后直接用./runInstaller不行了,会报错,经测试真会报错,需要带上下面的参数
./runInstaller -J-d32
——必须在32位环境安装
需要启动一个自己的xwindow,不然会报错
Exception in thread “main” java.lang.InternalError: Can’t connect to window server – not enough permissions.
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1823)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1720)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1045)
at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:50)
at java.security.AccessController.doPrivileged(Native Method)
at sun.awt.NativeLibLoader.loadLibraries(NativeLibLoader.java:38)
at sun.awt.DebugHelper.<clinit>(DebugHelper.java:29)
at java.awt.Component.<clinit>(Component.java:567)
现在可以调出oracle的安装界面了
在makefile的时候会有个错误
需要修改文件
vi /oracle/product/10.2.0/db_1/rdbms/lib/ins_rdbms.mk
注释掉$(HSODBC_LINKLINE)
如:#$(HSODBC_LINKLINE)
然后点重试
后面还有错误(OUI- 25031错误,这个错误也是因为启动netca和dbca图形界面出不来,需要设置java在32位下运行):
已通过 Configuration Assistant “Oracle Net Configuration Assistant” 生成输出:
Command
= /oracle/product/10.2.0/db_1/bin/netca /orahome
/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
/oracle/product/10.2.0/db_1/network/install/netca_typ.rsp
UnsatisfiedLinkError exception loading native library: njni10
修改这个java文件
vi $ORACLE_HOME/jdk/bin/java
加一个参数:变成java -d32 后面的其他参数不变,这样以后的netca和dbca等都会按照32位运行(这样netca已经能正常创建了)
安装过程中,还需要Raimonds Simanovskis提供的补丁文件,不然dbca创建数据库可能不成功,如下:
cd $ORACLE_HOME/bin
curl -O http://rayapps.com/downloads/oracle_ee.zip
unzip oracle_ee.zip
chmod ug+s oracle
rm oracle_ee.zip
注意:安装企业版使用oracle_ee.zip
安装标准版使用oracle_se.zip
然后返回安装程序,点击“重试”。
最后提示要用root权限执行两个脚本,这就与在linux下安装一样了
======按照上面的步骤,替换后再执行那个网络配置和数据库配置的话,最后提示只执行root.sh一个
sudo /oracle/oraInventory/orainstRoot.sh
sudo /oracle/product/10.2.0/db_1/root.sh
最后你会看到提示:安装成功!
注意了,如果安装过程中配置数据库的时候有错误,可以先不管,后面可以使用dbca命令删掉错误的重新建一个数据库
配置好数据库以后,可以到目录/oracle/product/10.2.0/db_1/network/admin看看listener.ora和tnsnames.ora是否都是按照本机的实际情况配置的,如果不是做适当修改:
listener.ora(红色的没有用,可以删掉):
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = qisnow.local)(PORT = 1521))
)
)
=====================
tnsnames.ora:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = qisnow.local)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
安装成功了以后运行命令:
启动监听:
lsnrctl start
查看状态
lsnrctl status
LSNRCTL for MacOS X Server: Version 10.2.0.4.0 – Production on 23-3月 -2011 21:39:45
Copyright (c) 1991, 2007, Oracle. All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
LISTENER 的 STATUS
————————
别名 LISTENER
版本 TNSLSNR for MacOS X Server: Version 10.2.0.4.0 – Production
启动日期 23-3月 -2011 21:18:23
正常运行时间 0 天 0 小时 21 分 22 秒
跟踪级别 off
安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件 /oracle/product/10.2.0/db_1/network/admin/listener.ora
监听程序日志文件 /oracle/product/10.2.0/db_1/network/log/listener.log
监听端点概要…
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=qisnow.local)(PORT=1521)))
服务摘要..
服务 “PLSExtProc” 包含 1 个例程。
例程 “PLSExtProc”, 状态 UNKNOWN, 包含此服务的 1 个处理程序…
服务 “orcl” 包含 1 个例程。
例程 “orcl”, 状态 READY, 包含此服务的 1 个处理程序…
服务 “orclXDB” 包含 1 个例程。
例程 “orcl”, 状态 READY, 包含此服务的 1 个处理程序…
服务 “orcl_XPT” 包含 1 个例程。
例程 “orcl”, 状态 READY, 包含此服务的 1 个处理程序…
命令执行成功
上面有个状态是unknown的,不过不影响使用
可以登录sqlplus了:
sqlplus sys/passw0rd as sysdba
qisnow:admin oracle$ sqlplus sys/passw0rd as sysdba
SQL*Plus: Release 10.2.0.4.0 – Production on 星期三 3月 23 22:27:12 2011
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。
SQL> select sysdate from dual;
SYSDATE
————
23-3月 -11
关闭数据库:
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
停止监听:
qisnow:admin oracle$ lsnrctl stop
LSNRCTL for MacOS X Server: Version 10.2.0.4.0 – Production on 23-3月 -2011 21:47:24
Copyright (c) 1991, 2007, Oracle. All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
命令执行成功
安装完成之后isqlplus已经启动了,可以通过http://qisnow.local:5560/isqlplus访问
启停命令:
isqlplusctl start
isqlplusctl stop