在Ubuntu 7.10中Linux安装 Oracle 11g
这里是最新更新:在Ubuntu 7.10中Linux安装 Oracle 11g
环境准备:
环境准备:
OS版本:Ubuntu 7.10 (实际上在8.04中也没有问题)
Oracle版本:11gR1
安装方式:本地安装
本文是参考Installing Oracle 11g on Ubuntu 7.10 ,但实际上是半翻译性质,加入了自己在实际中遇到的问题,以及解决方法,但是所有的命令以及画面截图都没有替换,还是使用原来作者的截图。或许在实际安装中会有一些出入。
这里描述的是完全从0 开始安装Oracle,如果是几次安装失败然后重新安装的话,不必从这里重新开始,自己判断从下面的某一步开始继续您的操作,我在实际中遇到了一些问题,导致安装失败,基本上都是从建立Oracle安装目录,运行安装界面开始的。在安装中遇到过不少问题,也反复过好多次,每次重新安装的时候都是将已经安装上的旧文件删除,然后从头安装。在Linux中安装或许这个是一大好处。
1,安装前准备
首先确认一下自己的版本,然后更新一下系统。
root@idlebox:~# uname -a Linux idlebox 2.6.22-14-server #1 SMP Sun Oct 14 23:34:23 GMT 2007 i686 GNU/Linux root@idlebox:~# apt-get update (...) root@idlebox:~# apt-get upgrade Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be upgraded: libssl0.9.8 tzdata 2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 3479kB of archives. After unpacking 262kB of additional disk space will be used. Do you want to continue [Y/n]?
安装一些安装Oracle所必须的包:(你可以使用sudo su来进入root)
root@idlebox:~# apt-get install gcc make binutils libaio1 gawk ksh libc6-dev rpm libmotif3 alien lsb-rpm libtool Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: autotools-dev cpp cpp-4.1 debhelper dpkg-dev gcc-4.1 gcc-4.1-base gettext html2text intltool-debian libbeecrypt6 libice6 libneon25 librpm4 libsm6 libx11-6 libx11-data libxau6 libxdmcp6 libxext6 libxml2 libxmu6 libxp6 libxt6 linux-libc-dev patch po-debconf x11-common Suggested packages: lintian binutils-doc cpp-doc gcc-4.1-locales dh-make debian-keyring gcc-multilib manpages-dev autoconf automake1.9 flex bison gdb gcc-doc gcc-4.1-multilib gcc-4.1-doc cvs gettext-doc glibc-doc libtool-doc automaken g77 fortran77-compiler gcj make-doc diff-doc Recommended packages: libmudflap0-dev libltdl3-dev xml-core libmail-sendmail-perl libcompress-zlib-perl The following NEW packages will be installed: alien autotools-dev binutils cpp cpp-4.1 debhelper dpkg-dev gawk gcc gcc-4.1 gcc-4.1-base gettext html2text intltool-debian ksh libaio1 libbeecrypt6 libc6-dev libice6 libmotif3 libneon25 librpm4 libsm6 libtool libx11-6 libx11-data libxau6 libxdmcp6 libxext6 libxml2 libxmu6 libxp6 libxt6 linux-libc-dev lsb-rpm make patch po-debconf rpm x11-common 0 upgraded, 40 newly installed, 0 to remove and 0 not upgraded. Need to get 5355kB/21.2MB of archives. After unpacking 69.8MB of additional disk space will be used. Do you want to continue [Y/n]?
安装必须的包后,做下面的操作,修改sh的指向。
root@idlebox:~# cd /bin root@idlebox:~# ls -l /bin/sh lrwxrwxrwx 1 root root 4 2007-11-04 15:29 /bin/sh -> dash root@idlebox:/bin# ln -sf bash /bin/sh root@idlebox:/bin# ls -l /bin/sh lrwxrwxrwx 1 root root 4 2007-11-05 10:42 /bin/sh -> bash
对我们的系统做一些修改,添加oracle相关的用户和组。
01 root@idlebox:~# addgroup oinstall Adding group `oinstall' (GID 1001) ... Done. 02 root@idlebox:~# addgroup dba Adding group `dba' (GID 1002) ... Done. 03 root@idlebox:~# addgroup nobody Adding group `nobody' (GID 1003) ... Done. 04 root@idlebox:~# usermod -g nobody nobody 05 root@idlebox:~# useradd -g oinstall -G dba -p password -d /home/oracle -s /bin/bash oracle 06 root@idlebox:~# passwd -l oracle Password changed. 07 root@idlebox:~# mkdir /home/oracle 08 root@idlebox:~# chown -R oracle:dba /home/oracle 09 root@idlebox:~# ln -s /usr/bin/awk /bin/awk 10 root@idlebox:~# ln -s /usr/bin/rpm /bin/rpm 11 root@idlebox:~# ln -s /usr/bin/basename /bin/basename 12 root@idlebox:~# mkdir /etc/rc.d 13 root@idlebox:~# for i in 0 1 2 3 4 5 6 S ; do ln -s /etc/rc$i.d /etc/rc.d/rc$i.d ; done 14 root@idlebox:~# mkdir -p /u01/app/oracle 15 root@idlebox:~# chown -R oracle:dba /u01
- Lines
01-03
添加了必须的用户组。 - Line
04
adapts Ubuntunobody
users so the Oracle installer doesn’t get confused. - On lines
05-08
创建oracle用户,并且锁住帐号帐号使得该帐号禁止登录,并且创建oracle帐号的HOME目录,注意这个目录不是ORACL_HOME。 - On lines
09-13
创建一些链接,避免在安装时候可能会出现一些问题。 - 最后, 在lines
14-15
创建ORACLE_BASE
和ORACLE_HOME
. 这里是你实际安装的目标路径。
下面我们要修改一些是同参数。首先加入下面的内容到你的
/etc/sysctl.conf
。
(具体解释可以看一下一些详细的参数介绍资料)fs.file-max = 65535 kernel.shmall = 2097152 kernel.shmmax = 2147483648 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 1024 65535 net.core.rmem_default = 1048576 net.core.rmem_max = 1048576 net.core.wmem_default = 262144 net.core.wmem_max = 262144
增加下面的内容到
/etc/security/limits.conf
:文件的最后oracle soft nproc 2047 oracle hard nproc 16383 oracle soft nofile 1023 oracle hard nofile 65535
操作下面的命令,对
/etc/pam.d/login
进行必要的修改。cat >> /etc/pam.d/login << EOF session required /lib/security/pam_limits.so session required pam_limits.so
然后我们要加载我们修改的
/etc/sysctl.conf
文件的设置,使的不需要重新启动系统而立即生效。root@idlebox:~# sysctl -p kernel.printk = 4 4 1 7 kernel.maps_protect = 1 fs.file-max = 65535 kernel.shmall = 2097152 kernel.shmmax = 2147483648 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 1024 65000 net.core.rmem_default = 1048576 net.core.rmem_max = 1048576 net.core.wmem_default = 262144 net.core.wmem_max = 262144
2,安装Oracle
假设我们的安装文件在
/media/database
,首先我们切换到root用户,执行如下操作:root@idlebox:~# xhost +
然后通过su切换到oracle用户。配置一下下面的环境变量:
root@idlebox:~# su - oracle
oracle@idlebox:~$ export DISPLAY=:0.0
oracle@idlebox:~$ export LC_ALL=C
然后启动我们的图形安装界面,加入
-ignoreSysPrereqs
参数。oracle@idlebox:~$ cd /media/database/
oracle@idlebox:/media/database$ ./runInstaller -ignoreSysPrereqs
Starting Oracle Universal Installer...
Checking Temp space: must be greater than 80 MB. Actual 6555 MB Passed
Checking swap space: must be greater than 150 MB. Actual 400 MB Passed
Checking monitor: must be configured to display at least 256 colors
>>> Could not execute /usr/bin/xdpyinfo Failed <<<<
>>> Ignoring required pre-requisite failures. Continuing…
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2007-11-04_09-39-05PM. Please wait …
等待数秒后,我们会看到下面的安装界面。点击 Next.
更改group为
dba
然后点击 Next:在这个界面,选择Oracle的安装路径,然后点击 Next:
点击勾上所有的checkbox,然后点击Next.
在这个界面你可以选择是否创建一个数据库,或者单纯的安装Oracle,我是选择的创建一个数据库,后面会提示你的数据库的SID,以及相关的密码,这边的画面可能会有一点出入,但是并不是很复杂,自己稍微作一下判断,这边是仅仅安装Oracle而不创建数据库的截图,请注意!!然后点击Next
安装确认画面,点击 Install:
整个安装过程会需要一定的时间。
到安装进度的最后,(如果是选择了创建一个数据库的话,可能会耗费更多的时间)会跳出来一个对话框,要求你用root权限,运行两个脚本,注意在运行这两个必要的脚本之前,不要点击OK按钮。
新开一个窗口,执行上面画面提示的脚本:
root@idlebox:~# /u01/app/oraInventory/orainstRoot.sh Changing permissions of /u01/app/oraInventory to 770. Changing groupname of /u01/app/oraInventory to dba. The execution of the script is complete root@idlebox:~# /u01/app/oracle/product/11.1.0/db_1/root.sh Running Oracle 11g root.sh script... The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /u01/app/oracle/product/11.1.0/db_1 Enter the full pathname of the local bin directory: [/usr/local/bin]: (hit enter) Copying dbhome to /usr/local/bin … Copying oraenv to /usr/local/bin … Copying coraenv to /usr/local/bin … Creating /etc/oratab file… Entries will be added to the /etc/oratab file as needed by Database Configuration Assistant when a database is created Finished running generic part of root.sh script. Now product-specific root actions will be performed. Finished product-specific root actions.
执行完毕后,点击上面界面的OK按钮,进入到最后的界面。
到这里安装已经基本结束,但是我们还必须要做一些事情,修改
/etc/profile
文件,加入下面两行:export ORACLE_HOME=/u01/app/oracle/product/11.1.0/db_1 export PATH=$PATH:/u01/app/oracle/product/11.1.0/db_1/bin
添加一个自动启动脚本,内容如下:(如果你在安装的时候选择创建一个数据库的话,本脚本会在系统启动的时候启动在/etc/oratab文件中设置的数据库实例。
#!/bin/bash # # /etc/init.d/oracledb # # Run-level Startup script for the Oracle Listener and Instances # It relies on the information on /etc/oratab export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=/u01/app/oracle/product/11.1.0/db_1 export ORACLE_OWNR=oracle export ORACLE_HOME_LISTNER=$ORACLE_HOME export PATH=$PATH:$ORACLE_HOME/bin if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ] then echo "Oracle startup: cannot start" exit 1 fi case "$1" in start) # Oracle listener and instance startup echo -n "Starting Oracle: " su $ORACLE_OWNR -c "$ORACLE_HOME/bin/lsnrctl start" su $ORACLE_OWNR -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME_LISTNER" touch /var/lock/oracle echo "OK" ;; stop) # Oracle listener and instance shutdown echo -n "Shutdown Oracle: " su $ORACLE_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop" su $ORACLE_OWNR -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME_LISTNER" rm -f /var/lock/oracle echo "OK" ;; reload|restart) $0 stop $0 start ;; *) echo "Usage: `basename $0` start|stop|restart|reload" exit 1 esac exit 0
将上述文件保存到
/etc/init.d/oracledb
修改期拥有者为 root
,加入可执行权限:root@idlebox:~# chmod a+x /etc/init.d/oracledb
如果你希望在系统启动的时候启动数据库的话,执行下面的操作:
root@idlebox:/bin# update-rc.d oracledb defaults 99 Adding system startup for /etc/init.d/oracledb ... /etc/rc0.d/K99oracledb -> ../init.d/oracledb /etc/rc1.d/K99oracledb -> ../init.d/oracledb /etc/rc6.d/K99oracledb -> ../init.d/oracledb /etc/rc2.d/S99oracledb -> ../init.d/oracledb /etc/rc3.d/S99oracledb -> ../init.d/oracledb /etc/rc4.d/S99oracledb -> ../init.d/oracledb /etc/rc5.d/S99oracledb -> ../init.d/oracledb
如果你在安装的同时创建了一个数据库实例,那么你可以在/etc/oratab中看到如下内容
orcl:/u01/app/oracle/product/11.1.0/db_1:N
这里的orcl是你创建时候的SID,上面的内容代表启动的时候不自动启动此数据库实例,你需要讲”N“改为”Y“,如下:
orcl:/u01/app/oracle/product/11.1.0/db_1:Y
将你自己的帐号加入到dba的组中去,你可以直接编辑
/etc/group
文件:dba:x:1002:oracle,pythian
下面你可以测试一下你的安装了n:
pythian@idlebox:~$ sqlplus /nolog SQL*Plus: Release 11.1.0.6.0 - Production on Mon Nov 5 12:23:20 2007 Copyright (c) 1982, 2007, Oracle. All rights reserved. SQL> connect /as sysdba Connected. SQL>
在系统安装完毕后,数据库是处于运行状态的,同时,如果你选择了创建数据库,那么Oracle的企业管理服务也同时处于运行状态。你可以在浏览器中打开企业管理器,如下:
https://localhost:1158/em
注意上面的oracledb A脚本中并不会自动启动你的企业管理服务,这个家伙太过于巨大了,在emctl运行状态,你可以看看你的CPU负荷,我的是基本保持100%。
你可以通过下面的命令来启动或者停止emctl
oracle@idlebox:~$ export ORACLE_SID=orcl oracle@idlebox:~$ $ORACLE_HOME/bin/emctl start dbconsole
停止emctl
oracle@idlebox:~$ export ORACLE_SID=orcl oracle@idlebox:~$ $ORACLE_HOME/bin/emctl stop dbconsole
===END===
0 Responses to "在Ubuntu 7.10中Linux安装 Oracle 11g"
Post a Comment