一、验证安装Oracle 数据库 10g 第 2 版的系统要求
按照Oracle官方指南,首先需要验证RAM和交换空间大小
要查看可用 RAM 和交换空间大小,运行以下命令:
- gengzhi @gengzhi -desktop:~$ grep MemTotal /proc/meminfo
- MemTotal: 2060248 kB
- gengzhi@gengzhi -desktop:~$ grep SwapTotal /proc/meminfo
- SwapTotal: 2088408 kB
gengzhi@gengzhi-desktop:~$ grep MemTotal /proc/meminfo
MemTotal: 2060248 kB
gengzhi@gengzhi-desktop:~$ grep SwapTotal /proc/meminfo
SwapTotal: 2088408 kB
根据oracle官方网站的安装说明要求:所需最小 RAM 为 1,024MB,而所需最小交换空间为 1GB。对于 RAM 小于或等于 2GB 的系统,交换空间应为 RAM 数量的两倍;对于 RAM 大于 2GB 的系统,交换空间应为 RAM 数量的一到两倍。
Oracle 数据库 10g 第 2 版软件还需要 2.5GB 的可用磁盘空间,而数据库则另需 1.2GB 的可用磁盘空间。/tmp 目录至少需要 400MB 的可用空间。要检查系统上的可用磁盘空间,运行以下命令:
- gengzhi @gengzhi -desktop:~$ df -h
- 文件系统 容量 已用 可用 已用% 挂载点
- /dev/sda7 27G 11G 15G 44 % /
- tmpfs 1006M 0 1006M 0 % /lib/init/rw
- varrun 1006M 104K 1006M 1 % /var/run
- varlock 1006M 0 1006M 0 % /var/lock
- udev 1006M 188K 1006M 1 % /dev
- tmpfs 1006M 208K 1006M 1 % /dev/shm
- lrm 1006M 2 .4M 1004M 1 % /lib/modules/ 2.6 . 28 - 11 -generic/ volatile
gengzhi@gengzhi-desktop:~$ df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda7 27G 11G 15G 44% /
tmpfs 1006M 0 1006M 0% /lib/init/rw
varrun 1006M 104K 1006M 1% /var/run
varlock 1006M 0 1006M 0% /var/lock
udev 1006M 188K 1006M 1% /dev
tmpfs 1006M 208K 1006M 1% /dev/shm
lrm 1006M 2.4M 1004M 1% /lib/modules/2.6.28-11-generic/volatile
可以看到根文件系统可用空间为15G,大于必须的(2.5 + 1.2 + 0.4 = 4.1GB)。
二、软件包安装
运行如下命令(联网的前提下):
- gengzhi @gengzhi -desktop:~$ apt-get install gcc make binutils lesstif2 libc6 libc6-dev rpm libmotif3 libaio1 libstdc++ 5 alien
gengzhi@gengzhi-desktop:~$ apt-get install gcc make binutils lesstif2 libc6 libc6-dev rpm libmotif3 libaio1 libstdc++5 alien
三、创建用户和组
oracle要用oracle用户安装,安装好后,同样用oracle用户启动。
- //创建用户组oinstall
- gengzhi@gengzhi -desktop:~$ sudo addgroup oinstall
- //创建用户组dba
- gengzhi@gengzhi -desktop:~$ sudo addgroup dba
- //创建用户组nobody
- gengzhi@gengzhi -desktop:~$ sudo addgroup nobody
- //将用户oracle的初始组设为oinstall,并加入到组dba中,home目录设为/home/oracle.此目录如果不存在则自动创建,shell为bash。
- gengzhi@gengzhi -desktop:~$ sudo useradd -g oinstall -G dba -d /home/oracle -m -s /bin/bash oracle
- //查看nobody用户所在的组
- gengzhi@gengzhi -desktop:~$ id nobody
- uid=65534 (nobody) gid= 65534 (nogroup) 组= 65534 (nogroup)
- //将nobody用户加入到nobody组里面
- gengzhi@gengzhi -desktop:~$ sudo usermod -G nobody nobody
- //核实nobody加入的组里面有组nobody
- gengzhi@gengzhi -desktop:~$ id nobody
- uid=65534 (nobody) gid= 65534 (nogroup) 组= 65534 (nogroup), 1003 (nobody)
- //设置用户oracle密码
- gengzhi@gengzhi -desktop:~$ sudo passwd oracle
- 四、创建目录
- //建立oracle_base目录,如果不存在,就创建,oracle安装于此。
- gengzhi@gengzhi -desktop:~$ sudo mkdir -p /opt/oracle
- //将此目录及其下的文件或者目录的所有者改为oinstall组的oracle
- gengzhi@gengzhi -desktop:~$ sudo chown -R oracle:oinstall /opt/oracle/
- //将此目录及其下文件权限设为755
- gengzhi@gengzhi -desktop:~$ sudo chmod -R 775 /opt/oracle/
//建立oracle_base目录,如果不存在,就创建,oracle安装于此。 gengzhi@gengzhi-desktop:~$ sudo mkdir -p /opt/oracle //将此目录及其下的文件或者目录的所有者改为oinstall组的oracle gengzhi@gengzhi-desktop:~$ sudo chown -R oracle:oinstall /opt/oracle/ //将此目录及其下文件权限设为755 gengzhi@gengzhi-desktop:~$ sudo chmod -R 775 /opt/oracle/
五、设置环境变量
a、修改baserc文件(若没有,则创建)
- gengzhi @gengzhi -desktop:~$ su oracle(上边创建的 oracle用户)
- gengzhi@gengzhi -desktop:~$ cd /home/oracle
- gengzhi@gengzhi -desktop:~$ sudo gedit ./.bashrc
gengzhi@gengzhi-desktop:~$ su oracle(上边创建的 oracle用户) gengzhi@gengzhi-desktop:~$ cd /home/oracle gengzhi@gengzhi-desktop:~$ sudo gedit ./.bashrc
粘贴如下代码:
- # oracle 10g
- export ORACLE_BASE=/opt/oracle
- export ORACLE_HOME=$ORACLE_BASE/product/10.2 . 0 /db_1
- #export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
- export ORACLE_OWNER=oracle
- export ORACLE_SID=orcl (SID很重要,要记住跟安装的一样)
- export ORACLE_TERM=xterm
- # Edit paths
- #export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/opt/oracle/lib/stubs/:$LD_LIBRARY_PATH
- export PATH=$ORACLE_HOME/bin:$PATH (oracle_home要设置对了,要不在终端里边找不到sqlplus)
# oracle 10g export ORACLE_BASE=/opt/oracle export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1 #export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH export ORACLE_OWNER=oracle export ORACLE_SID=orcl (SID很重要,要记住跟安装的一样) export ORACLE_TERM=xterm # Edit paths #export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/opt/oracle/lib/stubs/:$LD_LIBRARY_PATH export PATH=$ORACLE_HOME/bin:$PATH (oracle_home要设置对了,要不在终端里边找不到sqlplus)
b、创建.bashrc文件(默认ubuntu下是没有这个文件的) 他处于/home/oracle/目录下
粘贴以下内容:
- # Begin ~/.bash_profile
- # Written for Beyond Linux From Scratch
- # by James Robertson <jameswrobertson@earthlink .net>
- # updated by Bruce Dubbs <bdubbs@linuxfromscratch .org>
- # Personal environment variables and startup programs.
- # Personal aliases and functions should go in ~/.bashrc. System wide
- # environment variables and startup programs are in /etc/profile.
- # System wide aliases and functions are in /etc/bashrc.
- append () {
- # First remove the directory
- local IFS=':'
- local NEWPATH
- for DIR in $PATH; do
- if [ "$DIR" != "$1" ]; then
- NEWPATH=${NEWPATH:+$NEWPATH:}$DIR
- fi
- done
- # Then append the directory
- export PATH=$NEWPATH:$1
- }
- if [ -f "$HOME/.bashrc" ] ; then
- source $HOME/.bashrc
- fi
- if [ -d "$HOME/bin" ] ; then
- append $HOME/bin
- fi
- unset append
- # End ~/.bash_profile
# Begin ~/.bash_profile # Written for Beyond Linux From Scratch # by James Robertson <jameswrobertson@earthlink.net> # updated by Bruce Dubbs <bdubbs@linuxfromscratch.org> # Personal environment variables and startup programs. # Personal aliases and functions should go in ~/.bashrc. System wide # environment variables and startup programs are in /etc/profile. # System wide aliases and functions are in /etc/bashrc. append () { # First remove the directory local IFS=':' local NEWPATH for DIR in $PATH; do if [ "$DIR" != "$1" ]; then NEWPATH=${NEWPATH:+$NEWPATH:}$DIR fi done # Then append the directory export PATH=$NEWPATH:$1 } if [ -f "$HOME/.bashrc" ] ; then source $HOME/.bashrc fi if [ -d "$HOME/bin" ] ; then append $HOME/bin fi unset append # End ~/.bash_profile
六、修改内核参数
- gengzhi @gengzhi -desktop:~$ sudo gedit /etc/sysctl.conf
gengzhi@gengzhi-desktop:~$ sudo gedit /etc/sysctl.conf
- //将以下部分,增加到文件末尾,并保存。
- # special setting for oracle 10g
- kernel.shmmax = 536870912
- kernel.shmmni = 4096
- kernel.shmall = 2097152
- kernel.sem = 250 32000 100 128
- fs.file-max = 65536
- net.ipv4.ip_local_port_range = 1024 65000
- //使设置生效
- gengzhi@gengzhi -desktop:~$ sudo sysctl -p
- gengzhi@gengzhi -desktop:~$ sudo gedit /etc/security/limits.conf
- //在文件末尾最后一行#end 之前加入下面内容。
- oracle soft nproc 2047
- oracle hard nproc 16383
- oracle soft nofile 1023
- oracle hard nofile 65535
//将以下部分,增加到文件末尾,并保存。 # special setting for oracle 10g kernel.shmmax = 536870912 kernel.shmmni = 4096 kernel.shmall = 2097152 kernel.sem = 250 32000 100 128 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000 //使设置生效 gengzhi@gengzhi-desktop:~$ sudo sysctl -p gengzhi@gengzhi-desktop:~$ sudo gedit /etc/security/limits.conf //在文件末尾最后一行#end 之前加入下面内容。 oracle soft nproc 2047 oracle hard nproc 16383 oracle soft nofile 1023 oracle hard nofile 65535
七:创建链接及Red Hat release:
- //创建一些Oracle安装程序需要的工具的连接。 因为Oracle安装程序是为通过Oracle认证的Red Hat、Suse等版本准备的,所以有些工具的位置和Ubuntu不一样。
- gengzhi@gengzhi -desktop:~$ sudo ln -s /usr/bin/awk /bin/awk
- gengzhi@gengzhi -desktop:~$ sudo ln -s /usr/bin/rpm /bin/rpm
- gengzhi@gengzhi -desktop:~$ sudo ln -s /usr/bin/basename /bin/basename
- //建立redhat的release
- //因为Oracle默认是不支持Ubuntu的,所以要把Ubuntu伪装成Redhat
- gengzhi@gengzhi -desktop:~$ sudo touch /etc/redhat-release
- gengzhi@gengzhi -desktop:~$ sudo gedit /etc/redhat-release
- //在文件内增加内容:
- Red Hat Linux release 4.1
//创建一些Oracle安装程序需要的工具的连接。 因为Oracle安装程序是为通过Oracle认证的Red Hat、Suse等版本准备的,所以有些工具的位置和Ubuntu不一样。 gengzhi@gengzhi-desktop:~$ sudo ln -s /usr/bin/awk /bin/awk gengzhi@gengzhi-desktop:~$ sudo ln -s /usr/bin/rpm /bin/rpm gengzhi@gengzhi-desktop:~$ sudo ln -s /usr/bin/basename /bin/basename //建立redhat的release //因为Oracle默认是不支持Ubuntu的,所以要把Ubuntu伪装成Redhat gengzhi@gengzhi-desktop:~$ sudo touch /etc/redhat-release gengzhi@gengzhi-desktop:~$ sudo gedit /etc/redhat-release //在文件内增加内容: Red Hat Linux release 4.1
八、设置显示参数
- gengzhi @gengzhi -desktop:~$ su root
- root@gengzhi -desktop:~$ export DISPLAY= ":0.0"
- root@gengzhi -desktop:~$ xhost + //如果弹出“access control disabled, clients can connect from any host ”的提示消息,则表示设置成功。
- root@gengzhi -desktop:~$ xterm //若执行xterm命令后,弹出另外一个标题为“Xterm” 的窗口则表示命令执行成功,可以继续下一步的安装。
gengzhi@gengzhi-desktop:~$ su root root@gengzhi-desktop:~$ export DISPLAY=":0.0" root@gengzhi-desktop:~$ xhost + //如果弹出“access control disabled, clients can connect from any host ”的提示消息,则表示设置成功。 root@gengzhi-desktop:~$ xterm //若执行xterm命令后,弹出另外一个标题为“Xterm” 的窗口则表示命令执行成功,可以继续下一步的安装。
九、执行安装
- //用oracle用户登录X
- root@gengzhi -desktop:~$ su oracle
- //设置安装界面为英文安装界面
- oracle@yurocy-desktop:~$ unzip 10201_database_linux32.zip
oracle@yurocy-desktop:~$ cd database - oracle@gengzhi -desktop:~$ export LANG=en_US
- //执行安装文件
- oracle@gengzhi -desktop:~$ ./runInstaller
- /opt/oraInventory/orainstRoot.sh
- /opt/oracle/product/11.1 . 0 /db_1/root.sh
/opt/oraInventory/orainstRoot.sh /opt/oracle/product/11.1.0/db_1/root.sh
两个脚本需要以root用户运行,打开终端,以root用户登录运行以上两个文件,然后继续安装即可!
十、设置环境变量
- gengzhi @gengzhi -desktop:~$ sudo gedit /etc/profile
添加如下内容:gengzhi@gengzhi-desktop:~$ sudo gedit /etc/profile
- export ORACLE_HOME=/opt/oracle/product/ 10.2 . 0 /db_1
- export PATH=$PATH:/opt/oracle/product/10.2 . 0 /db_1/bin