设为首页 收藏本站
查看: 3409|回复: 0

[经验分享] Ubuntu 14.04 LTS 安装Oracle 11GR2

[复制链接]

尚未签到

发表于 2018-5-2 10:17:39 | 显示全部楼层 |阅读模式
  Ubuntu 14.04 LTS 安装Oracle 11GR2  ,经过几天的研究以及参考网上的说明,终于安装成功了
  http://www.th7.cn/db/Oracle/201406/58542.shtml
  1.将系统更新到最新:
  sudo apt-get update
  sudo apt-get dist-upgrade
  2.如果使用的Ubuntu不是桌面版(如Ubuntu server),由于Oracle安装需要用到图形界面,所以需要安装桌面程序:
  sudo apt-get install gnome-core
  相信很多都是使用的桌面版,那么这个步骤就不需要了。
  3.  安装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
  很多都是Ubuntu自带的了,谨慎6起见都执行一遍吧。
  4.创建用户(此步可省略,直接使用当前的用户即可,下面的安装过程都是以不执行这一步为准的)
  sudo groupadd oinstall
  sudo groupadd dba
  sudo useradd -g oinstall -G dba  -d /opt/oracle -s /bin/bash oracle
  sudo passwd oracle
  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 = 1048576
  fs.file-max = 6815744
  kernel.shmall = 2097152kernel.shmmax = 536870912
  kernel.shmmni = 4096kernel.sem = 250 32000 100 128
  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
  运行一下命令更新内核参数:
  sysctl –p
  6.添加对oracle用户的内核限制在 /etc/security/limits.conf 文件中增加以下数据
  oracle              soft    nproc   2047
  oracle              hard    nproc   16384
  oracle              soft    nofile  1024
  oracle              hard    nofile  65536
  oracle              soft    stack   10240
  其中oracle是在第四步中创建的用户,跳过第四步的话就写当前用户
  7.查看/etc/pam.d/login,增加以下行(有了就不用增加了):
  session required pam_limits.so
  同样检查/etc/pam.d/su,没有以下行就自己加上:
  session required pam_limits.so
  7.创建需要的文件夹(用于安装oracle)并设置其所有权:
  mkdir -p /opt/oracle
  mkdir -p /opt/oraInventory
  chown -R oracle:oinstall  /opt/oracle
  chown -R oracle:oinstall  /opt/oraInventory
  同样,如果跳过了第四步,那就将所有权设置命令中的用户oracle和组oinstall改为自己当前用户和组(通常二者是一样的),当然这时也可以不执行这两个chown命令,本来目录创建者就是所有者了。另外,需要root权限执行这些命令(sudo,下同)
  8.如果Ubuntu上没安装JRE的话,需要安装JRE(我这里直接安装了JDK,以JDK为例):
  到Oracle官网下载JDK6(最新为7,考虑到兼容性问题,安装6):
  http://www.oracle.com/technetwork/java/javase/downloads/jdk6downloads-1902814.html
  下载jdk-6u45-linux-i586.bin这个文件。放到主文件夹(home目录)下,进入终端:
  $sudo chmod 777 jdk-6u37-linux-x64.bin   // 将文件赋予运行权限
  $sudo -s ./jdk-6u37-linux-x64.bin /usr/lib/jdk  //将JDK安装到/usr/lib/jdk 目录下。
  注意:最后安装完成后可能安装到了主文件夹下了,这是使用命令将其全部复制到/usr/lib/jdk目录下即可。(如果没有权限,就使用sudo chmod 777获取权限再复制)
  配置JDK的环境变量,使用编辑器打开主文件夹下的.bashrc配置文件(隐藏),向其中加入如下内容:
  #JDK
  JAVA_HOME=/usr/lib/jdk/jdk1.6.0_45
  JRE_HOME=${JAVA_HOME}/jre
  export ANDROID_JAVA_HOME=$JAVA_HOME

  export>  export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
  export JAVA_HOME;
  export JRE_HOME;

  export>  HOME_BIN=~/bin/
  export PATH=${PATH}:${JAVA_PATH}:${HOME_BIN};
  注意核对一下目录结构是不是正确的。
  最后验证JDK是否安装正确:
  java -version
  出现了JDK版本信息就表示正确了。
  9.为Oracle配置环境变量。同样在主文件夹下的.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/;
  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/

  echo ‘Red Hat Linux>  注意:以上命令是对应于32位Ubuntu安装32位Oracle的,如果是64位Ubuntu安装64位Oracle,上面的i386-linux-gnu就都要改成x86_64-linux-gnu,目标目录的lib也要改成lib64.(没有lib64就新建一个)
  因为Ubuntu将某些库文件根据32位系统和64位系统分别存放了,但Oracle只认/usr/lib和/lib目录,所以需要进行上面的软链接。
  11.下载Oracle安装程序:
  http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
  下载Linux x86的那两个文件(64位系统就下Linux x86-64),解压后得到database文件夹。
  12.正式安装Oracle,为database文件夹下的runInstaller文件赋予可执行权限:
  chmod 777 runInstaller
  跳转到database目录,在终端下执行:
  ./runInstaller
  此时可能会出现database目录下部分文件的权限不足,导致安装程序无法启动的问题,根据提示,对那些文件使用chmod 777进行授权就行了(貌似一共3个文件)。
  启动安装图形界面后,可能会发现文字乱码,全是口口口:
DSC0000.jpg

  这时可以关闭该界面,先在终端输入:
  export
  或者
  export.gbk
  然后再执行:
  ./runInstaller
  就可以在全英文界面下进行安装了。
  13.安装前进行swap空间检查时可能出现swap空间太小的问题,这一般是由于系统安装时没有创建swap分区,解决办法是创建swap文件来开辟swap空间:
  通过下面方法建立swap文件:
  #dd if=/dev/zero of=/tmp/swapfree bs=32k count=65515 (count是分区数量,swap大小=bs*count,增加2G)
  #mkswap /tmp/swapfree (格式化交换分区文件)
  #swapon /tmp/swapfree (启用交换分区文件)
  #swapon –s (显示swap状态)
  修改/etc/fstab,让系统每次启动都把/tmp/swapfree作为swap使用,增加下面一行:
  /tmp/swapfree swap swap defaults 0 0
  14.图形安装界面的第一步是填写电子邮件,但是填完可能会出错:Unexpected error occurred while  validating inputs at state  'getOCMDetails'。这是由于缺少pdksh依赖包,简单的解决办法是不填写邮件地址,不勾选下面的复选框,直接下一步,弹出提示后点 ‘Yes’就能直接进入下一步了。完美的解决办法可以到网上去看。
DSC0001.jpg

  15.剩下的过程基本上很顺利了,只需要设置一下密码就行了,其他的设置都在启动安装程序前完成了,不要进行改动!
  16.图形界面下进行依赖检查的时候会列出很多依赖检查失败了,无法进入下一步了,此时选中右上角的‘忽略所有’就可以进入下一步了。
  17.如果没有严格按照前面的要求做,安装过程中可能弹出错误,此时不要关闭界面,根据给出的日志位置,在日志中查看错误出现的原因,一般都是指定位置找 不到相应的文件导致的,此时打开一个新的终端窗口,找到这些文件并将文件复制到对应的位置或者创建软链接即可。(通常是/usr/lib目录下找不到库文 件,这些库文件都位于/usr/lib/i386-linux-gnu目录下了)然后在图形界面点击“Retry‘即可继续安装。
  比如:“error in invoking target 'client_sharedlib' of makefile '/opt/oracle11g/server/rdbms/lib/ins_rdbms.mk''这个错误就是没有执行:
  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
  这两个命令导致的(针对32位安装的情况)。
  如果严格按照前面的要求做了,上面这种错误是不会出现的。另外,如果32位系统安装64位Oracle或者64位系统安装32位Oracle也是会弹出错误的,错误提示是这样的:
  Error in invoking target 'client_sharedlib' of makefile '/opt/app/oracle/product/10.2.0/db_1/network/lib/ins_net_client.mk'
  这种错误就只能重新下载正确的Oracle版本再进行安装了。
  18.即使严格按照要求做了,还是会出现两个错误:
  a.
DSC0002.jpg

  解决办法:
  打开一个新的终端,输入如下命令:
  sed -i 's/^/(/s*/$(MK_EMAGENT_NMECTL)/)/s*$//1 -lnnz11/g' $ORACLE_HOME/sysman/lib/ins_emagent.mk
  然后在图形界面点击‘Retry’就能继续安装了。
  b.
DSC0003.jpg

  解决办法:
  打开一个新的终端,输入如下四个命令:
  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’就能继续安装了。
  下面的安装过程就没有什么问题了。
  19.最后应该就顺利完成了,按照安装程序提示最后执行两个脚本:
  sudo /opt/oracle/oraInventory/orainstRoot.sh
  sudo /opt/oracle/Oracle11gee/product/11.2.0/dbhome_1/root.sh
  就完成了全部的安装。可以通过https://localhost:1158/em进行网络访问了。
  安装后的问题
  a.终端下使用“emctl start dbcontrol”命令启动em控制台时出现:Environment variable  ORACLE_UNQNAME not defined. Please set ORACLE_UNQNAME to database unique  name.的问题,解决办法是设置一个UNQNAME :export ORACLE_UNQNAME=xxxx.
  b.设置完成后
  在终端使用emctl命令关闭或启动dbcontrol(emctl stop dbcontrol  , emctl start dbcontrol)的时候还可能出错:
  OC4J Configuration issue. /opt/oracle/product/11.2.0/dbhome_1/oc4j/j2ee/OC4J_DBConsole_pavilion_orcl not found.
  EM Configuration issue. /opt/oracle/product/11.2.0/dbhome_1/pavilion_orcl not found.
  出现这种错误的原因是Oracle会根据获取到的系统主机名来选择使用相应的EM资料库关闭或启动em控制器,比如Ubuntu系统安装时给主机起了个 pavilion的名称,Oracle获取到的主机名就是pavilion,然后会寻找OC4J_DBConsole_pavilion_orcl  和pavilion_orcl这两个资料库完成关闭或启动em控制器的任务。但是Oracle本身只会根据$ORACLE_HOME/NETWORK /ADMIN/listener.ora文件中的主机名创建资料库。listener.ora中的HOST默认是localhost,所以Oracle默 认创建的资料库是OC4J_DBConsole_localhost_orcl  和localhost_orcl。因此才出现上述找不到资料库的问题。
  解决此问题的办法是:
  将$ORACLE_HOME/NETWORK/ADMIN/listener.ora文件中的HOST=localhost改为 HOST=pavilion(paviliion为你的主机名),然后在相应位置完整复制OC4J_DBConsole_localhost_orcl  和localhost_orcl并重命名为OC4J_DBConsole_pavilion_orcl 和pavilion_orcl:
  cp  -rp /opt/oracle/product/11.2.0/dbhome_1/oc4j/j2ee/OC4J_DBConsole_localhost_orcl    /opt/oracle/product/11.2.0/dbhome_1/oc4j/j2ee/OC4J_DBConsole_pavilion_orcl
  cp -rp /opt/oracle/product/11.2.0/dbhome_1/localhost_orcl  /opt/oracle/product/11.2.0/dbhome_1/pavilion_orcl
  如此就能正常启动和关闭dbcontrol了。
  或者可以直接使用
  emca -config dbcontrol db
  命令重新配置一下资料库也可以解决。
  另外,修改了Ubuntu主机名或IP地址后同样会导致这样的问题,解决办法也是一样的。
  另附EM资料库配置教程:http://ginaduxuefang.iteye.com/blog/1545144
  c.EM控制台中的按钮都是口口乱码,其他正常。这是由于Java字体缺失导致的,因为EM的按钮都是Java生成的。解决办法是:
  在JDK(或JRE)的字体文件夹下新建中文字体目录fallback,并将Windows系统下的simsun.ttc字体文件复制到fallback下,然后将其改名为simsun.ttf并授予恰当权限:
  $ mkdir $ORACLE_HOME/jdk/jre/lib/fonts/fallback
  $ cp simsun.ttc  $ORACLE_HOME/jdk/jre/lib/fonts/fallback/
  $mv  $ORACLE_HOME/jdk/jre/lib/fonts/fallback/simsun.ttc  $ORACLE_HOME/jdk/jre/lib/fonts/fallback/simsun.ttf
  $chmod 444 $ORACLE_HOME/jdk/jre/lib/fonts/fallback/simsun.ttf
  后需要清理一下Cache,重启EM即可:
  $ rm $ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/em/em/cabo/images/cache/zhs/*.gif
  $ emctl stop dbconsole
  $ emctl start dbconsole
  登陆Web页面查看,EM显示就可以正常显示中文了.
  d.在终端运行sqlplus  / as sysdba命令进入SQLPlus工具时可能出现错误:

  sqlplus: error while loading shared libraries:   /u01/app/oracle/product/11.1.0/db_1/lib/libnnz11.so: cannot restore  segment prot after>  这是由于SELinux导致的,解决办法是禁用SELinux:
  更改
  /etc/sysconfig/selinux
  文件的内容为
  SELINUX=disabled
  ,然后重启
  更改/etc/sysconfig/selinux 文件的内容为 SELINUX=disabled,然后重启。
  或者使用chcon命令:
  chcon -t texrel_shlib_t /usr/local/rsi/idl_6.1/bin/bin.linux.x86/*.so
  e.启动Linstener时可能出现错误:
  TNS-12555: TNS:permission denied
  原因是无法访问/var/tmp/.oracle文件夹,解决办法是进行授权:
  sudo chmod 777 /var/tmp/.oracle
  f.系统关机后每次开机都必须手动启动Oracle,可以编写一个自启动脚本实现每次开机自动启动Oracle,附Oracle启动/关闭方法以及开机自启动脚本:
  http://www.cnblogs.com/mchina/archive/2012/11/27/2782993.html
  g.卸载Oracle的方法:
  1. 运行 $ORACLE_HOME/bin/localconfig delete   
  2. rm -rf $ORACLE_BASE/*   
  3. rm -f /etc/oraInst.loc /etc/oratab   
  4. rm -rf /etc/oracle   
  5. rm -f /etc/inittab.cssd   
  6. rm -f /usr/local/bin/coraenv /usr/local/bin/dbhome /usr/local/bin/oraenv
  7. rm -rf $ORCLE_HOME

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-454761-1-1.html 上篇帖子: VMware Ubuntu NAT上网方式配置 下篇帖子: 在ubuntu8.04上配置samba
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表