Ubuntu 14.04 LTS 64位安装Oracle 11g
Oracle官方并未说明支持Ubuntu安装,因此环境要调整准备,才能成功安装。Ps,本人重试多次但12c未安装成功,因此安装了Oracle 11g。
环境准备
- ubuntu14.04桌面64位
我的desktop是gnome,中文版。 - jdk准备(我的是jdk1.7.60)
- 配置系统环境变量:
(用于保证安装时一些脚本正常执行,在有sudo权限的用户下执行)
$sudo ln -s /usr/bin/awk /bin/awk $sudo ln -s /usr/bin/rpm /bin/rpm $sudo ln -s /usr/bin/basename /bin/basename # 直接链接这个目录过来,不建议使用参考文章1的中链接多个文件的方式 $sudo ln -s /usr/lib/x86_64-linux-gnu /usr/lib64 $cd /lib64 $sudo ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 .
- 安装必要包
请参看下面参考文章1和2中列出的安装包,也可以先跳过本步,需要时再装。 - 建立oracle用户组及安装目录
我还是使用参考文章2的方式,使用独立的oracle用户来安装oracle。
$sudo groupadd oinstall $sudo groupadd dba $sudo mkdir -p /opt/oracle #目录修改为自己机器的实际目录 $sudo useradd -g oinstall -G dba -s /bin/bash oracle $sudo passwd oracle $sudo chown -R oracle:oinstall /opt/oracle
- 设置系统参数
请参看下面参考文章1,主要是sysctl和limit的配置。 - 设置用户环境变量
根据oracle官方,不建议在安装前先配置.profile或.bashrc,这一点可不用效仿参考文章。可以在安装成功后再配置.profile或.bashrc以用来启用oracle。建议只配置以下变量:
$su - oracle $vi .profile # Oracle Settings TMP=/tmp; export TMP TMPDIR=$TMP; export TMPDIR # 直接生效 $source .profile
下载oracle11gR2
到oracle官方下载oracle11g的linux64位版
共两个压缩包:
- linux.x64_11gR2_database_1of2.zip
- linux.x64_11gR2_database_2of2.zip
解压到某个目录如:/data/downloads/database下,赋予权限。
$cd /data/downloads/database/install $chmod +x *.sh .oui unzip $sudo chown -R oracle:oinstall /data/downloads/database
执行安装
我采用的参考文章1中,指定jre的方式(installer是java写的界面),不然安装界面是乱码,就算用export LANG=C等方式可以调出英文,但界面还是不友好。有两种方式可以打开安装界面,一是直接切换到oracle用户并登录到desktop,另一种是不切换当前界面,执行如下命令:
$xhost + $su - oracle $export DISPLAY=:0
然后再执行下面的命令,打开安装界面,开始安装。
$cd /data/downloads/database $chmodx +x runInstaller # 修改为自己系统对应的jre路径 $./runInstaller -jreloc /usr/lib/jvm/java-7-oracle/jre/
下一步下一步就可以了,我的建议是都使用默认选项安装,安装目录修改为自己机器上所在目录。
安装过程中报错处理
安装过程不会一帆风顺,一般都会有错误弹出。我的经验是,安装过程出现错误,不要急,也先别点确认取消或跳过(保持弹出框不要关闭),仔细查看错误提示,按提示的对应log文件找到具体的错误,再处理。
我遇到的错误,在参考文章2中都得到了解决,建议弹出错误重点参考文章2。下面我简单列示。
- 问题1:找不到memcpy@GLIBC_2.14(libstdc++5)
解决办法是下载新libstdc++5的库。
从这里下载,直接安压缩包打开提取,并提取到/usr/lib/x86_64-linux-gnu下覆盖掉旧文件(使用有sudo权限账户)。
文章2中也介绍了一个下载链接,到下面找到64位版下载下来。然后切换到有sudo权限的账户执行安装:
$sudo dpkg -i libstdc++5_3.3.6-27.2ubuntu1_amd64.deb
- 问题2:在执行’链接二进制文件’时如果遇到错误(一些makefile)
解决办法是,开个控制台,执行下面的脚本,可以根据弹出错误对就在.mk文件来执行对应的脚本,然后重试,也可第一次出现错误时一起执行,然后重试。
$export ORACLE_HOME=/opt/oracle/product/11.2.0/dbhome_1 $sed -i 's/^\(\s*\$(MK_EMAGENT_NMECTL)\)\s*$/\1 -lnnz11/g' $ORACLE_HOME/sysman/lib/ins_emagent.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
- 如果还有其它错误,请参见参考文章2。都处理好后,就可以安装完成。
安装完成
安装完成后,还要执行两个脚本(也可能是一个脚本,安装界面最后会有提示的),只要拿出来sudo执行即可。
# 执行第1个,如果安装界面有提示,就sudo它 # 执行第2个脚本,根据安装界面给出的路径 $sudo /opt/oracle/product/11.2.0/dbhome_1/root.sh
- 最后安装程序会执行建立监听(1521),创建样例库,启动em等,请耐心等待,界面有可能是乱码,不用管它,最后的弹出界面点最下面的按钮。
完善用户环境变量
完成对oracle环境变量的配置,在oracle主目录下执行:
$vi .profile export ORACLE_HOSTNAME=localhost; export ORACLE_BASE=/opt/oracle; export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_SID=orcl; export PATH=$PATH:$ORACLE_HOME/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib export NLS_LANG="Simplified chinese_china.al32utf8" # 配置直接生效 $source .profile
启动oracle
其实安装完成后,oracle数据已经启用成功。但重启服务器后,库未自动重启加载(自启动读者可自行配置),下面介绍一下手工操作。
- 启动/停止监听
# 登录到oracle用户 $su - oracle # 启动 # 可以使用netstat -lntp看一看1521商品是否打开 $lsnrctl start # 停止 $lsnrctl stop # 也可使用 $dbstart $ORACLE_HOME $dbshut $ORACLE_HOME # 可用以下命令配置监听,注意必须进入图形界面 $export LANG=C # hostname处尽量填主机名称,不用IP,用IP也要更换端口 $netmgr
- 开启/关闭库
$sqlplus / as sysdba # 启动 SQL>startup; # 停止 SQL>shutdown immediate;
启动/关闭em
EM可用web来管理数据库服务器,还算方便,如果需求也可启用。
# 前提是ORACLE_HOSTNAME要设置正确(命令中也有提示) $emctl stop dbconsole
访问地址:
https://localhost:1158/em
参考文章
2、参考文章2