在Debian 9(stretch)环境中安装Oracle Database Express Edition 11g Release 2

  1. 云栖社区>
  2. 博客>
  3. 正文

在Debian 9(stretch)环境中安装Oracle Database Express Edition 11g Release 2

init.1751 2019-07-18 01:23:02 浏览189
展开阅读全文

安装oracle-xe前,确保已安装一些必要软件包,如alien、bc、libaio1、net-tools等。如果没有安装它们,可以通过dpkg或apt等命令安装。
由于Oracle并未提供oracle-xe的deb包,故需要通过alien命令将oracle-xe的rpm格式的安装包导出新的deb格式的安装包:

alien --script -d oracle-xe-11.2.0-1.0.x86_64.rpm

如果你在之前已经得到oracle-xe的deb格式的安装包,则无需安装alien及执行以上命令。
尔后,使用dpkg命令安装oracle-xe:

dpkg -i oracle-xe_11.2.0-2_amd64.deb

在安装过程中,如果遇到问题“/var/lib/dpkg/info/oracle-xe.postinst: line 114: /sbin/chkconfig: No such file or directory”,请使用vi或gedit等命令打开/var/lib/dpkg/info/oracle-xe.postinst文件(以gedit命令为例):

gedit /var/lib/dpkg/info/oracle-xe.postinst

注释掉oracle-xe.postinst文件中的第113、114行并保存:

if [ -f /etc/SuSE-release ]
then
    cp -f /u01/app/oracle/product/11.2.0/xe/config/scripts/oracle-xe.sles /etc/init.d/oracle-xe
    /usr/lib/lsb/install_initd /etc/init.d/oracle-xe > /dev/null 2>&1
    /sbin/insserv /etc/init.d/oracle-xe > /dev/null 2>&1
    /sbin/SuSEconfig > /dev/null 2>&1
# else
#         /sbin/chkconfig --add oracle-xe
fi

执行oracle-xe.postinst:

/var/lib/dpkg/info/oracle-xe.postinst

注:oracle-shm这一配置文件及其启动项的设置不是必须的。即使跳过这一步骤,也可以完成oracle-xe的安装过程。
从Oracle Database 11g开始,自动内存管理功能需要更多共享内存(/dev/shm)和文件描述符。对于计算机上的每个Oracle实例,共享内存的大小应至少为MEMORY_MAX_TARGET和MEMORY_TARGET中的较大者。如果MEMORY_MAX_TARGET或MEMORY_TARGET设置为非零值,并且为共享内存分配了不正确的大小,则在启动时将导致ORA-00845错误。
为了避免出现这一错误,可以选择添加配置文件oracle-shm:

cat > /etc/init.d/oracle-shm << EOF
#! /bin/sh
# /etc/init.d/oracle-shm
#
case "\$1" in
start)
    echo "Starting script /etc/init.d/oracle-shm"
    # Run only once at system startup
    if [ -e /dev/shm/.oracle-shm ]; then
        echo "/dev/shm is already mounted, nothing to do"
    else
        rm -f /dev/shm
        mkdir /dev/shm
        #mount -B /run/shm /dev/shm
        mount -t tmpfs shmfs -o size=2048m /dev/shm
        touch /dev/shm/.oracle-shm
    fi
    ;;
stop)
    echo "Stopping script /etc/init.d/oracle-shm"
    echo "Nothing to do"
    ;;
*)
    echo "Usage: /etc/init.d/oracle-shm {start|stop}"
    exit 1
    ;;
esac
EOF

设置文件oracle-shm的访问权限:

chmod 755 /etc/init.d/oracle-shm

使用update-rc.d命令配置该文件的启动设置:

update-rc.d oracle-shm defaults 01 99

完成oracle-shm的配置后,重新启动系统。
之后,以root身份配置oracle-xe:

/etc/init.d/oracle-xe configure

如果提示“Oracle Database 11g Express Edition is already configured”,只需删除/etc/default/oracle-xe:

rm /etc/default/oracle-xe

配置oracle-xe完成后,提示如下:
Starting Oracle Net Listener...Done
Configuring database...Done
Starting Oracle Database 11g Express Edition instance...Done
Installation completed successfully.
在手动启动oracle监听器及数据库前,应配置全局环境变量以精简启动命令:

gedit /etc/profile

在打开的/etc/profile文件底部添加新的环境变量:

export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe
export ORACLE_BASE=/u01/app/oracle
export ORACLE_SID=XE
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME/bin:$PATH

全局环境变量配置完成后,切换至oracle用户身份执行启动oracle监听器及数据库命令:

lsnrctl start
/etc/init.d/oracle-xe start

卸载oracle-xe前,如果已启动oracle监听器及数据库,应手动将其停止,再执行卸载命令:

lsnrctl stop
/etc/init.d/oracle-xe stop
update-rc.d -f oracle-xe remove
dpkg -P oracle-xe
rm /etc/default/oracle-xe
rm /etc/init.d/oracle-shm
rm –rf /u01
rm /root/.rpmdb

如果手动为swap文件划分有额外的空间,也应删除相应位置的swap文件。
至此,oracle-xe的卸载操作已基本完成。后续可通过执行gedit命令移除与oracle-xe相关的环境变量:

gedit /etc/profile

网友评论

登录后评论
0/500
评论
init.1751
+ 关注