Ubuntu安装Oracle 11g XE

  最近学习Oracle,参考上课时老师给的安装文档。在Ubuntu上安装一下Oracle 11g XE。

什么是Oracle 11g XE呢?

Oracle Database Express Edition 是Oracle Database的简装版,只有一个数据库实例XE,因此也叫Oracle Database XE。它拥有正式版的所有功能,只是在内存和数据大小上做了限制。适合初学者用来学习Oracle。

安装环境:Ubuntu 16.04 64位
安装参考资料

准备工作

  1. 从官网下载Oracle 11g XE安装包(需要创建账户登录后才能下载),下载的文件是oracle-xe-11.2.0-1.0.x86_64.rpm.zip,也可以下载我转换后的deb安装包( 密码: .deb)。
  2. 配置JDK环境。
    注意
      有的资料中,首先会创建ODA用户组、Oracle用户,关于这一点需要说明的是:安装Oracle数据库需要一个Oracle用户,若没有该用户,Oracle会在安装过程中自动创建一个Oracle用户。所以可以自己创建,也可以不创建。

转换deb包(若下载了deb安装包,跳过此步骤)

由于官方只为Linux提供了rpm安装包(适用于CentOS,Redhat,Fedora),所以需要先转化deb包。

  1. 解压到当前目录

    1
    unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip
  2. 安装.deb与.rpm包转换工具:alien

    1
    sudo apt-get install alien
  3. 生成deb包

    1
    sudo alien --scripts -d oracle-xe-11.2.0-1.0.x86_64.rpm

安装依赖类库

1
sudo apt-get install libaio1 unixodbc

创建配置文件

新建chkconfig文件
Oracle XE在Red Hat上安装时需要依赖/sbin chkconfig文件,Ubuntu没该文件安装时会报错。

1
sudo gedit /sbin/chkconfig

把下面内容贴进去

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/bash
# Oracle 11gR2 XE installer chkconfig hack for Ubuntu
file=/etc/init.d/oracle-xe
if [[ ! `tail -n1 $file | grep INIT` ]]; then
echo >> $file
echo '### BEGIN INIT INFO' >> $file
echo '# Provides: OracleXE' >> $file
echo '# Required-Start: $remote_fs $syslog' >> $file
echo '# Required-Stop: $remote_fs $syslog' >> $file
echo '# Default-Start: 2 3 4 5' >> $file
echo '# Default-Stop: 0 1 6' >> $file
echo '# Short-Description: Oracle 11g Express Edition' >> $file
echo '### END INIT INFO' >> $file
fi
update-rc.d oracle-xe defaults 80 01

给chkconfig添加执行权限

1
sudo chmod 755 /sbin/chkconfig

配置内核参数

新建60-oracle.conf

1
sudo gedit /etc/sysctl.d/60-oracle.conf

输入下面内容

1
2
3
4
5
6
7
8
9
10
# Oracle 11g XE kernel parameters
fs.file-max=6815744
net.ipv4.ip_local_port_range=9000 65000
kernel.sem=250 32000 100 128
kernel.shmmax=4163487744
net.core.rmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048576
fs.aio-max-nr=1048576

加载内核参数:

1
sudo service procps start

执行以下语句看看内核参数是否修改成功

1
sudo sysctl -q fs.file-max

如果返回结果是fs.file-max = 6815744就说明修改成功了。如果不是该数值的话,可能是安装依赖库的问题。

修改/dev/shm(Ubuntu 16.04跳过此步骤)

  修改这个的原因是Oracle需要/dev/shm这个挂载分区,而在一些版本的Ubuntu中/dev/shm只是/run/shm的链接。比如Ubuntu 14.04。需要自己通过ls -l查看一下。如果是的话,修改方法参考这里
Ubuntu 16.04中/dev/shm是一个挂载分区,所以不需要这步操作。
/dev目录下执行ls -l,shm是一个目录

/run目录下执行ls -l shm,shm是一个/dev/shm的连接

安装、配置端口等

安装Oracle XE,在deb安装包所在目录的终端下执行下面的命令

1
sudo dpkg --install oracle-xe_11.2.0-2_amd64.deb

配置xe端口、密码等,我是按默认配置直接回车的,注意要输入数据库密码。

1
sudo /etc/init.d/oracle-xe configure

配置环境变量

打开shell配置文件,我用的是zsh所以是.zshrc,Ubuntu默认shell是bash,配置文件是.bashrc

1
sudo gedit ~/.zshrc

将以下内容复制到shell的配置文件中进去,如果原先配置过PATH环境变量的话,将现在的加进去就可以。

1
2
3
4
5
6
7
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe
export ORACLE_SID=XE
export NLS_LANG="`$ORACLE_HOME/bin/nls_lang.sh`"
export ORACLE_BASE=/u01/app/oracle
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME/bin:$PATH

启动服务

安装完成后,oracle-xe服务是默认启动的,并且会开机自启,可以通过sysv-rc-conf这个软件来设置。(建议关机前手动关掉oracle-xe服务,不然关机会很慢)

1
sudo service oracle-xe start

卸载

1
2
3
apt-get remove --purge oracle-xe
rm /etc/default/oracle-xe
rm –rf /u01

不知道你按我的操作安装成功了吗?希望可以帮到你。