相关参考资料:
http://www.techienote.com/how-to-install-oracle-database-11g-r2-on-ubuntu-12-04/
http://www.linuxidc.com/Linux/2011-12/48931.htm
http://www.cnblogs.com/dyllove98/archive/2013/06/16/3138761.html
http://blog.csdn.net/idber/article/details/9039857
系统环境:
64位Ubuntu操作系统12.4.0
1. 安装依赖
sudo apt-get update
sudo apt-get install gcc make binutils gawk x11-utils rpm build-essential libaio1 libaio-dev libmotif4 libtool expat alien ksh pdksh unixODBC unixODBC-dev sysstat elfutils libelf-dev binutils lesstif2 lsb-cxx libstdc++5
2. 创建一些软链接
sudo ln -sf /bin/bash /bin/sh
sudo ln -s /usr/bin/awk /bin/awk
sudo ln -s /usr/bin/rpm /bin/rpm
sudo ln -s /usr/bin/basename /bin/basename
sudo ln -s /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib64/libc_nonshared.a
sudo ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/libpthread_nonshared.a
sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib64/libstdc++.so.6
sudo ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 /lib64/libgcc_s.so.1
3. 创建用户和组
sudo addgroup oinstall
sudo addgroup dba
sudo addgroup nobody
sudo usermod -g nobody nobody
sudo useradd -g oinstall -G dba -p password -d /home/oracle -s /bin/bash oracle
sudo mkdir /home/oracle
sudo chown -R oracle:dba /home/oracle
4. 更改启动脚本(以root用户执行下面命令以及脚本)
mkdir /etc/rc.d
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
注:第2步和第4步创建文件的链接,使Ubuntu的目录结构与Red Hat一致(因为Oracle官方支持Red Hat不支持Ubuntu)。
5. 修改系统的运行级别为5(默认为2)
vim /etc/init/rc-sysinit.conf
将env DEFAULT_RUNLEVEL=2
改成env DEFAULT_RUNLEVEL=5
注:安装完毕后可以修改回原来的默认值2,可以使用命令“runlevel”查看当前的运行级别,也可以使用命令“sudo init 5”临时将运行级别改为5。
6. 修改系统配置文件sysctl.conf
添加以下行到/etc/sysctl.conf中:
# Oracle 11gR2 entries
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
然后执行sudo sysctl -p
备注:
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
7. 修改系统配置文件limits.conf
添加以下行到/etc/security/limits.conf中
#Oracle 11gR2 shell limits
oracle soft nproc 2048
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
8. 创建欺骗Oracle安装程序系统类型的文件
sudo vim /etc/RedHat-release
文件内容设置为如下的一行,用于欺骗安装程序让它以为系统是RedHat:
Red Hat Linux release 4.1
9. 将Oracle11R2的安装文件复制到UbuntuServer上
将下载的两个安装文件放置在/home/oracle目录下
cd /home/oracle
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
10. 登录到oracle用户进行安装
su oracle
cd /home/oracle
chmod 777 -R database
cd database
./runInstaller -ignoreSysPrereqs
11. 图形界面的配置(绝大部分保持默认即可)
执行oracle安装命令以后
第一步是Configure Security Updates,去掉I wish to receive security updates via My Oracle Support. 点击下一步。
第二步是Installation Option。在Selection Installation Option中选择Create and configure a database。
第三步在System Class中选择Server Class。
第四步在Grid Selection中选择Single instance database installation。
第五步在Install Type中选择Advanced install。
然后是设置语言,这里选择English。
选择版本,这里选择标准版Standard Edition。
选择安装路径,这里保持默认即可(/home/oracle/app/oracle)。
Create Inventory保持默认。
在Select Configure Type中选择General Purpose / Transaction Processing。
Database Identifier保持默认。
在Specify Configuration Options中配置如下:
Memory -> Enable Automatic Memory Management: TRUE
Character sets: Use Unicode (AL32UTF8)
在Specify Management Options中选择默认的Use Database Control for database management。
在Specify Database Storage Options中选择默认的File System,路径保持默认。
Backup and Recovery保持默认。
Schema Password设置密码。
Privileged Operating System Groups保持默认,即:
Database Administrator (OSDBA) Group: dba
Database Operator (OSOPER) Group: oinstall
然后是Preform Prerequisite Checks。(可能会出现一些错误,不用理会这些错误,因为我们使用的是Debian系统,是不受Oracle官网支持的系统,所以有一些错误也是正常的)
然后是Summary
遇到错误参考:
http://my.oschina.net/farces/blog/279434
http://lvstone.blog.163.com/blog/static/1773601512012102914439982/
我出现的错误有:
1.Error in invoking target 'agent nmhs' of makefile '/home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/sysman/lib/ins_emagent.mk'
解决办法:
sed -i 's/^\(\s*\$(MK_EMAGENT_NMECTL)\)\s*$/\1 -lnnz11/g' $ORACLE_HOME/sysman/lib/ins_emagent.mk
2.Error in invoking target 'all_no_orcl' of makefile '/home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/rdbms/lib/ins_rdbms.mk'.
解决办法:
sed -i 's/^\(TNSLSNR_LINKLINE.*\$(TNSLSNR_OFILES)\) \(\$(LINKTTLIBS)\)/\1 -Wl,--no-as-needed \2/g' $ORACLE_HOME/network/lib/env_network.mk
sed -i 's/^\(ORACLE_LINKLINE.*\$(ORACLE_LINKER)\) \(\$(PL_FLAGS)\)/\1 -Wl,--no-as-needed \2/g' $ORACLE_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/^\(\$LD \$LD_RUNTIME\) \(\$LD_OPT\)/\1 -Wl,--no-as-needed \2/g' $ORACLE_HOME/bin/genorasdksh
sed -i 's/^\(\s*\)\(\$(OCRLIBS_DEFAULT)\)/\1 -Wl,--no-as-needed \2/g' $ORACLE_HOME/srvm/lib/ins_srvm.mk
3.Error in invoking target 'install' of makefile '/home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/network/lib/ins_net_server.mk'.
解决办法:
vim $ORACLE_HOME/network/lib/ins_net_server.mk
修改内容为:
#tnslsnr: $(S0NSGL) $(SNSGLP) $(NSGLPNP)
# $(SILENT)$(ECHO) " - Linking $(TNSLSNR)"
# $(RMF) $@
# $(TNSLSNR_LINKLINE)
#itnslsnr: tnslsnr
itnslsnr: