参照Morphling0809的文章https://blog.csdn.net/bible1/article/details/52933438?locationNum=7&fps=1
参照蓝色封印的文章http://blog.sina.com.cn/s/blog_4f02f6020102v049.html
参照OscarChen的文章:https://blog.csdn.net/crave_shy/article/details/49330715
1、设置ubuntu环境的交换分区在4G或者以上
(1)查看系统交换分区的大小
(2)利用disks工具查看系统交换分区所在设备编号
可见交换分区位于/dev/sda5。
(3)修改分区大小
$ cd /dev
$ sudo rm sda5 #删除已有的交换分区
$ sudo mkdir /swap
$ cd /swap
$ sudo dd if=/dev/zero of=swap.disk bs=1M count=4k #4K表swap分区大小为4G
$ sudo mkswap -f swap.disk
$ sudo swapon swap.disk
实现开机自动挂载swap分区,需编辑/etc/fstab文件
$ sudo gedit /etc/fstab
将
UUID=56bca9ad-36fb-428a-8357-d02a3f677025 none swap sw 0 0
替换为:
/swap/swap.disk none swap sw 0 0
此时通过free -m命令即可查看修改后的swap分区的大小。
(4)优化交换分区
查看swappiness参数:
$ cat /proc/sys/vm/swappiness
swappiness默认值为60,该值为0时表示最大限度使用物理内存,然后才是swap分区;该值为100则表示尽量使用swap分区,且将内存上的数据及时搬运到swap空间上。这里修改该为10:
$ sudo sysctl vm.swappiness=10
$ sudo gedit /etc/sysctl.conf
在文件末尾添加“vm.swappiness=10”,保存重启。
2、安装jdk环境
$ sudo apt-get install openjdk-7-jre
$ sudo apt-get install openjdk-7-jdk
验证jdk是否安装正确:
$ java -version
出现了jdk版本信息就表示正确了。
3、更新系统(可选)
$ sudo apt-get update
$ sudo apt-get dist-upgrade
4、安装oracle所需要的依赖库
$ sudo apt-get install automake
$ sudo apt-get install autotools-dev
$ sudo apt-get install binutils
$ sudo apt-get install bzip2
$ sudo apt-get install elfutils
$ sudo apt-get install expat
$ sudo apt-get install gawk
$ sudo apt-get install gcc
$ sudo apt-get install gcc-multilib
$ sudo apt-get install g++-multilib
$ sudo apt-get install ia32-libs
$ sudo apt-get install ksh
$ sudo apt-get install less
$ sudo apt-get install lesstif2
$ sudo apt-get install lesstif2-dev
$ sudo apt-get install lib32z1
$ sudo apt-get install libaio1
$ sudo apt-get install libaio-dev
$ sudo apt-get install libc6-dev
$ sudo apt-get install libc6-dev-i386
$ sudo apt-get install libc6-i386
$ sudo apt-get install libelf-dev
$ sudo apt-get install libltdl-dev
$ sudo apt-get install libmotif4
$ sudo apt-get install libodbcinstq4-1 libodbcinstq4-1:i386
$ sudo apt-get install libpth-dev
$ sudo apt-get install libpthread-stubs0
$ sudo apt-get install libpthread-stubs0-dev
$ sudo apt-get install libstdc++5
$ sudo apt-get install lsb-cxx
$ sudo apt-get install make
$ sudo apt-get install openssh-server
$ sudo apt-get install pdksh
$ sudo apt-get install rlwrap
$ sudo apt-get install rpm
$ sudo apt-get install sysstat
$ sudo apt-get install unixodbc
$ sudo apt-get install unixodbc-dev
$ sudo apt-get install unzip
$ sudo apt-get install x11-utils
$ sudo apt-get install zlibc
5、查看并设置系统变量
$ /sbin/sysctl -a | grep sem
$ /sbin/sysctl -a | grep shm
$ /sbin/sysctl -a | grep file-max
$ /sbin/sysctl -a | grep aio-max
$ /sbin/sysctl -a | grep ip_local_port_range
$ /sbin/sysctl -a | grep rmem_default
$ /sbin/sysctl -a | grep rmem_max
$ /sbin/sysctl -a | grep wmem_default
$ /sbin/sysctl -a | grep wmem_max
根据上面命令的得到的参数在/etc/sysctl.conf增加对应的数据,如:
fs.aio-max-nr = 65536
fs.file-max = 6553600
kernel.shmall = 4278190079
kernel.shmmax = 4278190079
kernel.shmmni = 4096
kernel.sem = 32000
net.ipv4.ip_local_port_range = 32768
net.core.rmem_default = 163840
net.core.rmem_max = 163840
net.core.wmem_default = 163840
net.core.wmem_max = 163840
更新内核参数:
$ sysctl –p
6、添加对当前用户的内核限制(我这里当前用户是kyo)
kyo soft nproc 2047
kyo hard nproc 16384
kyo soft nofile 1024
kyo hard nofile 65536
kyo soft stack 10240
7、查看/etc/pam.d/login,增加以下行(有了就不用增加了)
session required pam_limits.so
8、创建oracle安装的目录,并设置其所有权
$ sudo mkdir -p /opt/oracle
$ sudo mkdir -p /opt/oraInventory
$ sudo chown -R kyo:kyo /opt/oracle
$ sudo chown -R kyo:kyo /opt/oraInventory
9、在主文件夹下的.bashrc配置文件中加入如下内容:
#Oracle
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
#数据库的sid(实例)
export ORACLE_SID=orcl
export ORACLE_UNQNAME=orcl
#默认字符集
export NLS_LANG=.AL32UTF8
#环境变量
export PATH=${PATH}:${ORACLE_HOME}/bin/
这些配置在下来安装oracle的时会被夹在到安装程序,即为oracle配置环境变量。使生效:
$ source .bashrc
10、oracle本身并不支持安装在ubuntu,所以要进行欺骗oracle的安装程序(sudo执行)
# ln -s /etc /etc/rc.d
# ln -s /lib/i386-linux-gnu/libgcc_s.so.1 /lib/
# ln -s /usr/bin/awk /bin/awk
# ln -s /usr/bin/basename /bin/basename
# ln -s /usr/bin/rpm /bin/rpm
# ln -s /usr/lib/i386-linux-gnu/libpthread_nonshared.a /usr/lib/libpthread_nonshared.a
# ln -s /usr/lib/i386-linux-gnu/libc_nonshared.a /usr/lib/libc_nonshared.a
# ln -s /usr/lib/i386-linux-gnu/libstdc++.so.6 /lib/
# ln -s /usr/lib/i386-linux-gnu/libstdc++.so.6 /usr/lib/
# ln -s /usr/lib/i386-linux-gnu/libstdc++.so.5 /lib/
# ln -s /usr/lib/i386-linux-gnu/libstdc++.so.5 /usr/lib/
$ sudo touch /etc/redhat-release
$ sudo echo 'Red Hat Linux release 5' > /etc/redhat-release
ubuntu将某些库文件根据32位系统和64位系统分别存放了,但Oracle只认/usr/lib和/lib目录,所以需要进行上面的软链接。
11、下载32位(x86)的Oracle for Linux安装程序,解压后得到database目录。下载地址为:
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
12、在终端设置语言环境
$ export LANG=en_US
或者
$ export LANG=zh_CN.gbk
否则Oracle安装程序的启动界面可能会出现乱码。
13、运行安装程序
$ cd databases
$ sudo chmod 777 runInstaller
$ ./runInstaller
(1)出现填写电邮地址的界面,电邮地址不要填写且复选框不要勾选,点击“下一步”按钮。弹出’X’标志的提示点击“YES”按钮后就可进入下一步;
(2)下来都是点击next,然后有一个为实例orcl设置密码的界面:
设置密码即可。oracle对密码有限制严格,需要大小写字母+数字。
(3)再下来会出现2个错误:
错误1:
Error in invoking target 'agent nmhs' of makefile 'opt/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk'. See '/opt/oraInventory/logs/installActions2014-08-09_03-15-56AM.log' for details.
解决方法:
打开一个新的终端,输入如下命令:
$ sed -i 's/^\(\s*\$(MK_EMAGENT_NMECTL)\)\s*$/\1 -lnnz11/g' $ORACLE_HOME/sysman/lib/ins_emagent.mk
然后在图形界面点击“Retry”就能继续安装了。
错误2:
Error in invoking target 'all_no_orcl' of makefile '/opt/oracle/product/11.2.0/dbhome_1/rdbms/lib/ins_rdbms.mk'. See '/opt/oraInventory/logs/installActions2014-08-09_03-16-32AM.log' for details.
解决方法:
在新终端中输入如下四个命令:
$ 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
然后在图形界面点击“Retry”就能继续安装了。
14、增加学习使用的方案(可选)
在最后会弹窗:
选择password management,去掉scott的锁并为其设置密码。这个方案(也可以理解为用户),里面有多张表。是我接下来学习oracle用到的。
15、执行脚本
$ sudo /opt/oraInventory/orainstRoot.sh
$ sudo /opt/oracle/product/11.2.0/dbhome_1/root.sh
至此,oracle 11g在ubuntu14.04(32bit)环境的安装完成。