热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在Ubuntu120464位和CentOS6.564位上安装OracleDatabase11gR2

2019独角兽企业重金招聘Python工程师标准摘要:CentOS,Ubuntu上安装OracleDatabase11gR2过程,记录了遇到的问题

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

摘要:CentOS,Ubuntu上安装Oracle Database 11gR2过程,记录了遇到的问题和解决办法,并记下了相应的注意事项。

在Ubuntu 12.04 64bit 上安装Oracle Database 11gR2


1.首先,将系统更新到最新

代码:

sudo apt-get update
sudo apt-get dist-upgrade



2.安装依赖包

代码:

sudo apt-get install alien binutils build-essential cpp-4.4 debhelper g++-4.4 gawk gcc-4.4 gcc-4.4-base gettext html2text ia32-libs intltool-debian ksh lesstif2 lib32bz2-dev lib32z1-dev libaio-dev libaio1 libbeecrypt7 libc6 libc6-dev libc6-dev-i386 libdb4.8 libelf-dev libelf1 libltdl-dev libltdl7 libmotif4 libodbcinstq4-1 libodbcinstq4-1:i386 libqt4-core libqt4-gui libsqlite3-0 libstdc++5 libstdc++6 libstdc++6-4.4-dev lsb lsb-core lsb-cxx lsb-desktop lsb-graphics lsb-qt4 make odbcinst pax po-debconf rpm rpm-common sysstat unixodbc unixodbc-dev unzip ubuntu-sdk gcc++ gcc-multilib libstdc++5



3.创建用户(可选,我就是用自己的账户安装成功的)

4.检查系统变量

代码:

/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 = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.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

其中oracle是在第三步中创建的用户,跳过第三步的话就写当前用户

查看/etc/pam.d/login,增加以下行(有了就不用增加了)

代码:

session required pam_limits.so



同样检查/etc/pam.d/su,没有以下行就自己加上

代码:

session required pam_limits.so



6.创建需要的文件夹(用于安装oracle)

代码:

mkdir /usr/local/Oracle/oracle11g
mkdir /usr/local/Oracle/oradata



然后用 chmod -R 命令将Oracle的所有者和用户组设置成自己的用户

7.配置环境变量
在/etc/profile中增加以下环境变量

代码:

# /etc/profile

export JAVA_HOME=/opt/jdk1.7.0_21

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export ORACLE_BASE=/usr/local/Oracle/oracle11g

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

export PATH=$PATH:$ORACLE_HOME/bin:$JAVA_HOME/bin

export NLS_LANG=.AL32UTF8

export ORACLE_OWNER=user

export LANGUAGE=zh_CN:zh
export  LANG=zh_CN

export ORACLE_SID=orcl

8.欺骗oracle的安装程序

代码:

mkdir /usr/lib64

ln -s /usr/bin/basename /bin/basename
ln -s /etc /etc/rc.d
ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 /lib64/
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/x86_64-linux-gnu/libc_nonshared.a /usr/lib64/
ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /lib64/
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib64/
echo 'Red Hat Linux release 5' > /etc/redhat-release

9.重启电脑

10.运行安装程序

代码:

cd /XXX/XXX/XXX
./runInstaller

如果运行中中文是方框,请装java的字体包安装好。libfonts-java,libfontbox-java,ubuntu-restricted-extras

11.然后直接下一步就可以了。只是有几个地方需要注意,在环境检查那里,如果有一些包没有通过,我们是一项项是去检查并安装的,然后再Ignore All
a)有路径设置的地方请多加注意,理论上我们前面已经配置了环境变量,不会有大问题,但是为了以防万一还请多加注意。
b)字符集最好选择utf8
c)在执行'链接二进制文件'时如果遇到错误请在不关闭安装程序的情况下打开一个新终端,输入以下命令
代码:

sed -i's/^\(\s*\$(MK_EMAGENT_NMECTL)\)\s*$/\1 -lnnz11/g'$ORACLE_HOME/sysman/lib/ins_emagent.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
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



然后再选择retry一般就可以过去了,如果过不去,直接点击继续。
d)最后一步需要让我们手动执行两个文件,第一个应该没啥问题。第二个会提示无法创建目录,根据提示手动创建就好了。
e)安装过程中最好别点不需要的按钮。避免不必要的错误
f)最后结果:数据库可用,但EM登录后会出现内部错误

启动相关:

一、在Linux下启动Oracle

$sqlplus "/as sysdba"

原本的画面会变为
SQL>

接着请输入
SQL> startup

就可以正常的启动数据库了。

另外停止数据库的指令如下:
SQL> shutdown immediate

二、检查Oracle DB监听器是否正常

回到终端机模式,输入:

$ lsnrctl status

检查看看监听器是否有启动

如果没有启动,可以输入:

$ lsnrctl start

启动监听器

SQL> conn sys@orcl as sysdba

然后输入密码,syssysdba身份登入数据库。

三、启动emctl

另外也可以发现http://localhost.localdomain:1158/em目前是没有反应的,这边要另外启动,启动的指令如下:

$ emctl start dbconsole

这个指令运行时间较长,执行完的画面如下:

让Oracle随系统自启动:

这里需要注意,将/usr/local/Oracle/oracle11g/product/11.2.0/dbhome_1/bin/dbstart和usr/local/Oracle/oracle11g/product/11.2.0/dbhome_1/bin/dbshut中的

ORACLE_HOME_LISTNER=$1

改成

ORACLE_HOME_LISTNER=$ORACLE_HOME

编辑/etc/rc.d/rc.local,添加以下命令

su user -lc "/usr/local/Oracle/oracle11g/product/11.2.0/dbhome_1/bin/lsnrctl start"

su user -lc /usr/local/Oracle/oracle11g/product/11.2.0/dbhome_1/bin/dbstart

su user -lc"/usr/local/Oracle/oracle11g/product/11.2.0/dbhome_1/bin/emctl startdbconsole"

在CentOS 64bit 上安装Oracle Database 11gR2

与在ubuntu安装的内容大部分内容是共通的,环境变量也需要一样的设置和JAVA也需要安装,但与包相关的操作有所区别。我们在CentOS安装成功后,没有错误,这也许是Oracle使用Redhat做Oracle Linux的缘故。

1.  Su root 登录到超级用户

2.  # cd /etc/yum.repos.d

3.   

4.  # wget http://public-yum.oracle.com/public-yum-ol6.repo

5.  vim public-yum-ol6.repo

将所有的enabled=1

6.    yum update

7.    yum upgrade

8.    yum install oracle-rdbms-server-11gR2-preinstall

9.    环境变量设置,参数设置,请参见UBUNTU

10.  su user #切换用户到普通用户(这个请参见ubuntu部分,需要建立目录,并改变owner),其他环境

11.  $ ./runInstaller

这里可能会弹出IP地址无法获取,请千万不要忽略这个错误,我们在这个地方忽略了导致在安装中卡死60%,然后就不动了。这个需要将vim/etc/sysconfig/network配置,以下供参考:

NETWORKING=yes

HOSTNAME=dbone

GATEWAY=192.168.156.2

12.  进行系统环境检测,请将没有通过的依赖包一个个地检查并安装一下,这里一定要一个一个的多安装一下,虽然安装后可能还是报错,那就直接忽略好了。

13.  进入安装,完成重启

14.  数据库启动与测试请参见Ubuntu部分

15.如果yum install/update有问题,就把public-yum-ol6.repo 删除,再yum update一下,就好了。

总结

感谢互联网上那些分享的朋友,我们会在后面标注。此文是我们在安装过程中遇到的问题和总结,可能还有一些问题被解决但被我们遗忘了,欢迎交流讨论。在Ubuntu上相对来说比较麻烦,而且最终我们的EM登录进行后还出现内部错误,但数据库是可以用的,监听也是起来的;在centos上较为顺利,只要按照要求一步步做好,将依赖包安装好。

参考

http://www.oracle.com/technetwork/articles/servers-storage-admin/ginnydbinstallonlinux-488779.html

http://forum.ubuntu.org.cn/viewtopic.php?f=44&t=373077

http://blog.sina.com.cn/s/blog_663b470501017p01.html

http://blog.sina.com.cn/s/blog_56d8ea900100noxa.html

http://serverfault.com/questions/12229/how-can-i-start-oracle-enterprise-manager-after-restarting-the-red-hat-server

http://www.cnblogs.com/mchina/archive/2012/11/27/2782993.html

http://zhidao.baidu.com/link?url=gDUYlkuE71TyKycan7jD5o0qdFHR9ctdHuGR77KHaiaAlRy2jCZPE0086xFBMWBeNWaiO0bqOFz_RG9rzOwOhC48zu6zwWNn9zGeZ7vSlk7

http://blog.csdn.net/kimsoft/article/details/8117575

版权声明:本文为博主原创文章,未经博主允许不得转载。


转:https://my.oschina.net/xiaohelong/blog/497884



推荐阅读
  • 搭建Jenkins、Ant与TestNG集成环境
    本文详细介绍了如何在Ubuntu 16.04系统上配置Jenkins、Ant和TestNG的集成开发环境,涵盖从安装到配置的具体步骤,并提供了创建Windows Slave节点及项目构建的指南。 ... [详细]
  • Nginx 反向代理与负载均衡实验
    本实验旨在通过配置 Nginx 实现反向代理和负载均衡,确保从北京本地代理服务器访问上海的 Web 服务器时,能够依次显示红、黄、绿三种颜色页面以验证负载均衡效果。 ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • 在编译BSP包过程中,遇到了一个与 'gets' 函数相关的编译错误。该问题通常发生在较新的编译环境中,由于 'gets' 函数已被弃用并视为安全漏洞。本文将详细介绍如何通过修改源代码和配置文件来解决这一问题。 ... [详细]
  • iTOP4412开发板QtE5.7源码编译指南
    本文详细介绍了如何在iTOP4412开发板上编译QtE5.7源码,包括所需文件的位置、编译器设置、触摸库编译以及QtE5.7的完整编译流程。 ... [详细]
  • 利用Selenium与ChromeDriver实现豆瓣网页全屏截图
    本文介绍了一种使用Selenium和ChromeDriver结合Python代码,轻松实现对豆瓣网站进行完整页面截图的方法。该方法不仅简单易行,而且解决了新版Selenium不再支持PhantomJS的问题。 ... [详细]
  • 本题来自WC2014,题目编号为BZOJ3435、洛谷P3920和UOJ55。该问题描述了一棵不断生长的带权树及其节点上小精灵之间的友谊关系,要求实时计算每次新增节点后树上所有可能的朋友对数。 ... [详细]
  • 本文探讨了为何相同的HTTP请求在两台不同操作系统(Windows与Ubuntu)的机器上会分别返回200 OK和429 Too Many Requests的状态码。我们将分析代码、环境差异及可能的影响因素。 ... [详细]
  • 在PHP后端开发中遇到一个难题:通过第三方类文件发送短信功能返回的JSON字符串无法解析。本文将探讨可能的原因并提供解决方案。 ... [详细]
  • CSS高级技巧:动态高亮当前页面导航
    本文介绍了如何使用CSS实现网站导航栏中当前页面的高亮显示,提升用户体验。通过为每个页面的body元素添加特定ID,并结合导航项的类名,可以轻松实现这一功能。 ... [详细]
  • Symfony是一个功能强大的PHP框架,以其依赖注入(DI)特性著称。许多流行的PHP框架如Drupal和Laravel的核心组件都基于Symfony构建。本文将详细介绍Symfony的安装方法及其基本使用。 ... [详细]
  • 优化Flask应用的并发处理:解决Mysql连接过多问题
    本文探讨了在Flask应用中通过优化后端架构来应对高并发请求,特别是针对Mysql 'too many connections' 错误的解决方案。我们将介绍如何利用Redis缓存、Gunicorn多进程和Celery异步任务队列来提升系统的性能和稳定性。 ... [详细]
  • 深入理解动态链接库及其应用
    本文将探讨动态链接库的基本概念,包括Windows下的动态链接库(DLL)和Linux下的共享库(Shared Library),并详细介绍如何在Linux环境中创建和使用这些库。 ... [详细]
  • RedHat 系统下配置国内 YUM 源以替代官方收费源的方法
    本文详细介绍如何在 RedHat Linux 中安装并配置 YUM 包管理器,并通过使用国内镜像源来解决因未购买官方服务而导致的更新源限制问题。 ... [详细]
  • 在Linux系统上构建Web服务器的详细步骤
    本文详细介绍了如何在Linux系统上搭建Web服务器的过程,包括安装Apache、PHP和MySQL等关键组件,以及遇到的一些常见问题及其解决方案。 ... [详细]
author-avatar
手机用户2502883075
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有