以下为详细的安装配置步骤:
注:命令行前的#号代表当前处于root帐号状态,在当前帐号终端内运行“$ sudo su -”即可切换到root帐号。
一)安装依赖的包
这一步很关键,确认安装顺利才能保证后面安装Oracle的过程不报错。
1)自动安装的部分
# apt-get update
# apt-get install make binutils-dev gcc libaio1 libc6 libaio-dev libglib2.0-dev libstdc++6-4.5-dev libelf-dev sysstat unixodbc-dev pdksh expat elfutils lsb-cxx libstdc++5 ia32-libs libc6-dev-i386 unrar x-window-system-core
2)手动安装的部分
先下载:
# wget http://mirrors.kernel.org/ Ubuntu/pool/universe/g/gcc-3.3/libstdc++5_3.3.6-15ubuntu6_amd64.deb
# wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-3.3/gcc-3.3-base_3.3.6-15ubuntu6_amd64.deb
# wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-3.3/gcc-3.3_3.3.6-15ubuntu6_amd64.deb
# wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-3.3/cpp-3.3_3.3.6-15ubuntu6_amd64.deb
后按如下顺序安装:
# dpkg -i gcc-3.3-base_3.3.6-15ubuntu6_amd64.deb
# dpkg -i libstdc++5_3.3.6-15ubuntu6_amd64.deb
# dpkg -i cpp-3.3_3.3.6-15ubuntu6_amd64.deb
# dpkg -i gcc-3.3_3.3.6-15ubuntu6_amd64.deb
二)设置Oracle需要的额外链接:
# ln -s /usr/bin/basename /bin/basename
# ln -s /usr/bin/awk /bin/awk
# ln -s /usr/bin/rpm /bin/rpm
# ln -s /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib64/
# ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/
# ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib64/
# ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.14 /lib64/libstdc++.so.6
# ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.14 /usr/lib64/libstdc++.so.6
# ln -s /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5/libgcc_s.so /lib64/libgcc_s.so.1
三)修改系统的默认编码为en_US,避免后面运行Oracle的安装程序出现口口的乱码
$ sudo vi /var/lib/locales/supported.d/local
将内容修改为:
en_US.UTF-8 UTF-8
$ sudo vi /etc/default/locale
将内容修改为:
LANG="en_US.UTF-8"
LANGUAGE="en_US:en"
$ sudo locale-gen
四)建立Oracle的相关用户和组
$ sudo groupadd oinstall
$ sudo groupadd dba
$ sudo useradd -m -g oinstall -G dba oracle
$ sudo usermod -s /bin/bash oracle
$ sudo passwd oracle
$ sudo groupadd nobody
$ sudo usermod -g nobody nobody
最后运行“$ id oracle”检查一下结果,将显示如下代码:(里面的数字因系统而各异是正常的)
uid=1001(oracle) gid=1001(oinstall) groups=1001(oinstall),1002(dba)
五)建立oracle需要使用的目录
$ sudo mkdir -p /u01/app/oracle
$ sudo mkdir -p /u01/app/oraInventory
$ sudo chown oracle:oinstall /u01/app/oracle
$ sudo chown oracle:oinstall /u01/app/oraInventory
$ sudo chmod 750 /u01/app/oracle
$ sudo chmod 750 /u01/app/oraInventory
$ sudo chmod 750 /u02/oradata
六)配置Oracle帐号的用户环境
以Oracle帐号登录Ubuntu Server系统
$ vi /home/oracle/.bashrc
文件内容修改为如下:
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/db
ORACLE_SID=orcl
ORACLE_OWNER=oracle
ORACLE_TERM=vt100
export ORACLE_BASE ORACLE_HOME ORACLE_SID ORACLE_OWNER ORACLE_TERM
PATH=$ORACLE_HOME/bin:$PATH:.
export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib
export LD_LIBRARY_PATH CLASSPATH
七)修改系统配置文件sysctl.conf
这一步是修改一些内核参数以满足Oracle的要求
# cp /etc/sysctl.conf /etc/sysctl.original
# vi /etc/sysctl.conf
添加以下行到/etc/sysctl.conf中:
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
注:
fs.file-max -->文件句柄的最大数量,表示在linux系统中可以打开的文件数量,默认为98063
kernel.shmall -->表示系统一次可以使用的共享内存总量,缺省值就是2097152,通常不需要修改
kernel.shmmax -->定义共享内存段的最大尺寸(以字节为单位),缺省为32M,对于oracle来说,缺省值太低
kernel.shmmni = 4096 -->(4K)设置系统范围内共享内存段的最大数量,默认值是 4096,通常不需要更改。
kernel.sem -->4个数据分别对应SEMMSL SEMMNS SEMOPM SEMMNI,表示设置的信号量,默认为250 32000 32 128(cat /proc/sys/kernel/sem)
net.core.rmem_default -->默认为126976
net.core.rmem_max -->最大的TCP数据接收缓冲,默认为131071
net.core.wmem_default -->默认为126976
net.core.wmem_max -->最大的TCP数据发送缓冲,默认为131071
net.ipv4.ip_local_port_range -->ipv4端口值范围,默认为32768 61000
fs.aio-max-nr -->默认为65536
八)修改系统配置文件limits.conf
# cp /etc/security/limits.conf /etc/security/limits.conf.original
# vi /etc/security/limits.conf
添加以下行到/etc/security/limits.con中
#Oracle 11gR2 shell limits:
oracle soft nproc 2048
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
九)修改系统的运行级别为5(默认为2)
# vi /etc/init/rc-sysinit.conf
将env DEFAULT_RUNLEVEL=2
改成env DEFAULT_RUNLEVEL=5
注:安装完毕后可以修改回原来的默认值2,可以使用命令“# runlevel”查看当前的运行级别,也可以使用命令“# init 5”临时将运行级别改为5。
十)设置固定IP地址(这是Oracle需要的)
$ sudo vi /etc/network/interfaces
修改auto eth0下的相关内容为如下:
auto eth0
#iface eth0 inet dhcp -- 这个是自动ip的设置
iface eth0 inet static -->设为静态IP地址
address 192.168.253.142 -->IP地址
netmask 255.255.255.0 -->子网掩码
gateway 192.168.253.1 -->网管
十一)创建欺骗Oracle安装程序系统类型的文件
# vi /etc/ RedHat-release
文件内容设置为如下的一行,用于欺骗安装程序让它以为系统是RedHat:
Red Hat Linux release 4.1
十二)将Oracle11R2的安装文件复制到UbuntuServer上
将下载的Oracle11.2.0.1 for linux 64位的安装文件用你熟悉的方法复制或上传到UbuntuServer的/home/oracle目录下,这里假设最终上传到
/home/oracle/database目录,并设置该目录的权限:
# chown oracle:oinstall /home/oracle/database -R
# chmod 775 /home/oracle/database -R
十三)重新启动UbuntuServer
# reboot
十四)开始安装Oracle数据库软件
由于Oracle的安装程序是基于GUI的交互界面开发的,而UbuntuServer默认没有安装桌面,故无法在服务器上直接运行;上面第一步安装的x-window-system-core只是x-server的核心部分,服务��仅安装这个就足够,再利用任何一个装有Ubuntu Desktop的机器(或者装个桌面版的虚拟机)通过远程连接到UbuntuServer来安装Oracle。
登录到UbuntuDesktop的桌面,打开终端,然后在终端输入如下命令通过x-server连接到UbuntuServer:
$ ssh -X oracle@[ubuntuServer的IP地址]
注:-X参数是必须的,必须直接使用oracle帐号而不能使用其他帐号登录后再切换到oracle帐号。
登录连接到UbuntuServer成功后,在终端运行“$ xclock”命令测试一下,如果出来个类似如下图的时钟窗口界面,证明一切顺利,可以开始安装了:
关闭xclock的界面窗口,继续在终端运行如下命令开始安装:
$ cd database
$ ./runInstaller
将会在终端看到如下图的相关信息:
稍等片刻就会弹出Oracle11R2的logo和安装界面:
相关的一些界面这里省略,特殊的说明如下:
安装类型选择为“install database software only”,成功后再另外通过dbca命令创建数据库:
在选择语言支持的界面添加上"Simplified Chinese":
运行到如下界面时,勾选“ignore All”后再继续:
如无意外将成功安装运行到如下界面:
此时先不点击OK,然后切换到 UbuntuServer的终端(别搞错了,不是上面开的终端哦,自己用任何其他方式再开个字符终端远程链接到UbuntuServer吧,或者你的UbuntuServer有配显示器,直接使用Server的终端显示屏),切换到root管理员帐号,运行如下命令:
# /u01/app/oraInventory.orainstRoot.sh
# /u01/app/oraIcle/product/db/root.sh
注:所运行的这两个文件与上面对话框中那两个文件的路径必须要一致哦,运行这两个命令的截图参考如下:
成功后就可以点击之前那个界面的OK按钮,然后就看到下面的成功界面了:
至此数据库软件就安装完毕了!下面就是配置 Oracle的监听器和创建一个数据库。
十五)配置Oracle的监听器
关闭上面的成功界面后,将返回到开头打开的那个用ssh -X连接的终端,继续在这个终端界面内输入如下命令开始配置监听器:
$ netca
基本上按默认的步骤next下去就OK。
十六)创建一个名称为orcl的数据库
返回后,继续在上面的终端界面内输入如下命令开始创建数据库:
$ dbca
基本上也是使用默认值一路next,到如下这个界面就选择一下数据库的编码字符集,这个很关键!一定要按自己的要求选对,如使用中文环境,我配置了如下的中文编码字符集:
继续一路next,直到看到下面的界面就开始耐心等待漫长的安装过程吧:
最后弹出如下界面就表明数据库创建完毕了!你可以关闭 Ubuntu Desktop的远程终端了。
十七)创建开机自动启动数据库的脚本
开一个普通的字符终端连接到 UbuntuServer,运行如下命令:
# vi /etc/init.d/ Oracledb
文件内容如下:
#!/bin/bash
#
# /etc/init.d/oracledb
#
# Run-level Startup script for the Oracle Instance, Listener, and
# Web Interface
export ORACLE_HOME=/u01/app/oracle/product/db
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH
ORA_OWNR="oracle"
# 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
最后:
# vi /etc/oratab
把文件中的N改成Y,即"orcl:/opt/oracle/product/db:N"修改为"orcl:/opt/oracle/product/db:Y"。
十八)大功告成,重新启动计算机
访问em:
https://[ubuntuServer的ip地址]:1158/em
注意了,oracle11g使用
https来访问em,不是
http哦。
$ ps -ef|grep ora_|grep -v grep -->查看oracle进程
$ ps -ef|grep tnslsnr|grep -v grep -->查看oracle的监听进程
$ lsnrctl start -->启动监听
$ dbstart -->启动数据库
$ dbstop -->停止数据库
$ emctl start dbconsole -->启动em控制台
$ isqlplusctl start -->启动pl/sql
$ sqlplus '/as sysdba' -->登录sqlplus
$ env -->输出当前用户的环境变量
$ netca -->启用监听配置程序,必