-
Oracle公司目前尚无支持Ubuntu Linux的计划
所以我们需要修改配置来完成安装。
-
目录
1. 安装准备
-
-
1.1. 设置用户
1.2. 创建目录和设置权限
1.3. 更改配置
1.4. 安装
1.5. 启动/停止Oracle
1. 安装准备
安装开始前,确认你的系统符合Oracle的最小安装要求:
- 500 MB 内存
- 1 GB 交换分区
- 确认你已经安装了gcc, make, binutils, lesstif2, libc6, 和 rpm
*最好确认 dns 和/或 你的 /etc/hosts 文件已经正确配置了,以保证你的IP地址和hostname能正确解析.
1.1. 设置用户
我们需要为安装程序创建一个oracle 用户和两个组. 首先检查它们是否已经存在:
$grep oinstall /etc/group $grep dba /etc/group $grep nobody /etc/group
如果它们还不在系统中,那么创建它们。
#addgroup oinstall #addgroup dba #addgroup nobody #useradd -g oinstall -G dba -p passwd -d /home/oracle -s /bin/bash oracle #usermod -g nobody nobody
1.2. 创建目录和设置权限
注意: oracle缺省目录是 /u01 和 /u02. 我们为了和FHS有更好的兼容性,更改为 /opt/oracle 和 /opt/oradata:
#mkdir -p /opt/oracle #mkdir -p /opt/oradata #chown -R oracle:oinstall /opt/ora* #chmod -R 775 /opt/ora*
1.3. 更改配置
添加以下行到 /etc/sysctl.conf 文件中:
kernel.shmall = 2097152 kernel.shmmax = 2147483648 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000
更新系统, 运行:
#sysctl -p
添加以下行到 /etc/security/limits.conf 文件中:
* soft nproc 2407 * hard nproc 16384 * soft nofile 1024 * hard nofile 65536
建立软连接:
#ln -s /usr/bin/awk /bin/awk #ln -s /usr/bin/rpm /bin/rpm #ln -s /usr/bin/basename /bin/basename
通过创建一个新文件/etc/redhat-release并添加以下行,欺骗安装程序让它以为我们的系统是RedHat:
Red Hat Linux release 2.1 (drupal)
1.4. 安装
用oracle用户登录,将安装文件拷贝到一个临时目录.
#su oracle $cp -r /installer/files/here/ `mktemp -d`
启动安装程序。注意:如果系统说显示变量错误,试一试重启gdm(gnome显示管理器),然后用oracle用户登录.
$./runInstaller
当正确运行时,你将看到一个GUI窗口界面。安装过程中,安装程序将两次提醒你用root权限停止和运行脚本。当它第一次提醒你时,让它过,它只是设置相应的权限,第二次时,它要求运行root.sh脚本,你需要先做下面的事情:
#mkdir /etc/rc.d #ln -s /etc/rc0.d /etc/rc.d/rc0.d #ln -s /etc/rc2.d /etc/rc.d/rc2.d #ln -s /etc/rc3.d /etc/rc.d/rc3.d #ln -s /etc/rc4.d /etc/rc.d/rc4.d #ln -s /etc/rc5.d /etc/rc.d/rc5.d #ln -s /etc/rc6.d /etc/rc.d/rc6.d #ln -s /etc/init.d /etc/rc.d/init.d #/path/to/root.sh
Oracle在系统中安装一个init.cssd服务. root.sh脚本将等待 600 秒 (10 分钟) 让这个服务启动,当它在等待时,你需要做一些设置。控制台消息会显示: Expecting the CRS daemons to be up within 600 seconds. 需要做三件事情,首先, 修改 /etc/inittab 文件,将 运行级从35(RedHat和Suse缺省值)改到23 (Debian缺省值) :
将 :
h1:35:respawn:/etc/init.d/init.cssd run >/dev/null 2>&1 </dev/null
改成
h1:23:respawn:/etc/init.d/init.cssd run >/dev/null 2>&1 </dev/null
然后, inittab 将运行 /etc/rc.d/init.d/init.cssd. 退出这个脚本, 修改第 83 行, 替换:
SU="/bin/su -l"
为
SU="/bin/su"
最后,重启服务:
#init q
root.sh 将继续运行直至成功,图形安装界面会显示结束.
1.5. 启动/停止服务
这里我们需要添加另外一个init脚本来使得Oracle在重启系统后自动启动,首先,删除安装程序创建的一些损坏的连接.
#rm /etc/rc2.d/[SK]96* #rm /etc/rc3.d/[SK]96* #rm /etc/rc5.d/[SK]96* #update-rc.d init.cssd defaults 96
下面这个init脚本内,我为我们的需求定制了启动/停止Oracle实例、监听器方式和企业管理器web界面.
#!/bin/bash # # /etc/init.d/oracledb # # Run-level Startup script for the Oracle Instance, Listener, and # Web Interface export ORACLE_HOME=/your/oracle/home/goes/here export ORACLE_SID=oraclesidgoeshere export PATH=$PATH:$ORACLE_HOME/bin ORA_OWNR="oracleownergoeshere" # if the executables do not exist -- display error if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ] then echo "Oracle startup: cannot start" exit 1 fi # depending on parameter -- startup, shutdown, restart # of the instance and listener or usage display case "$1" in start) # Oracle listener and instance startup echo -n "Starting Oracle: " su $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl start" su $ORA_OWNR -c $ORACLE_HOME/bin/dbstart touch /var/lock/oracle su $ORA_OWNR -c $ORACLE_HOME/bin/emctl start dbconsole echo "OK" ;; stop) # Oracle listener and instance shutdown echo -n "Shutdown Oracle: " su $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop" su $ORA_OWNR -c $ORACLE_HOME/bin/dbshut rm -f /var/lock/oracle su $ORA_OWNR -c $ORACLE_HOME/bin/emctl stop dbconsole echo "OK" ;; reload|restart) $0 stop $0 start ;; *) echo "Usage: `basename $0` start|stop|restart|reload" exit 1 esac exit 0
将这个文件放到指定的位置并让它可执行, 将它连接到所有的运行级:
#chmod 755 /etc/init.d/oracledb #update-rc.d oracledb defaults 99
在我们运行这个配置文件前哦我们还需要做一些相关的定制工作. 下面这些文件需要为我们的安装程序更改它们的环境变量:
/usr/local/bin/dbhome -- 更改 ORAHOME, ORASID, 和 ORATAB (/etc/oratab) $ORACLE_HOME/bin/dbhome -- 同上 $ORACLE_HOME/bin/dbstart -- 更改 ORATAB $ORACLE_HOME/bin/dbshut -- 同上
如果你希望在系统启动时启动你创建的所有数据库实例,那么需要修改 /etc/oratab 文件. 下面是一个例子:
oracle:/opt/oracle/:N
修改为
oracle:/opt/oracle:Y
现在你可以开始运行了。重启你的系统,先通过命令行设置ORACLE_HOME, ORACLE_SID, 和 PATH 变量variables(或者用户配置文件,如 .bashrc); 可以试一试运行sqlplus或者通过web登录管理界面(http://urlhere.com:5500/em) 来测试