zoukankan      html  css  js  c++  java
  • CentOS 6.3(x86_64)下安装Oracle 10g R2

    目 录

    一、硬件要求
    二、软件
    三、系统安装注意
    四、安装Oracle前的系统准备工作
    五、安装Oracle,并进行相关设置
    六、升级Oracle到patchset 10.2.0.4
    七、使用rlwrap调用sqlplus中历史命令

    一、硬件要求

    1、内存 & swap

    Minimum: 1 GB of RAM
    Recommended: 2 GB of RAM or more

    检查内存情况
    # grep MemTotal /proc/meminfo
    # grep SwapTotal /proc/meminfo

    2、硬盘

    由于CentOS安装后差不多有4~5G,再加上Oracle等等的安装,所以请准备至少10G的硬盘空间。

    检查磁盘情况
    # df -h

    二、软件

    系统平台:CentOS 6.3(x86_64)

    CentOS-6.3-x86_64-bin-DVD1.iso

    Oracle版本:Oracle 10g R2

    10201_database_linux_x86_64.cpio

    补丁:p6810189_10204

    p6810189_10204_Linux-x86-64.zip

    三、系统安装注意

    系统安装时一定要安装桌面模式,否则无法安装oracle,另外请勿开启SELinux,oracle官方不建议使用SELinux,CentOS的防火墙也请暂时关闭,减少安装时的困扰。为防止Oracle安装过程中出现乱码,建议使用英文作为系统语言,进行Oracle的安装工作。

    本文中所描述的系统命令,未经特殊标示,均为“#”代表root权限,“$”代表oracle权限。

    四、安装Oracle前的系统准备工作

    首先,请先以root账号登入作一些前置设定作业。

    1、关闭防火墙、禁用SELinux

    # setup

    vi /etc/selinux/config

    修改SELINUX=disabled,然后重启。
    如果不想重启系统,使用命令setenforce 0

    2、安装依赖包

    Oracle官方文档要求的安装包:

    查看Oracle相关包是否已经安装:

    用yum方式安装所需的包:

    # yum -y install binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make sysstat

    最后还需要安装libXp这个Library,这个一定要安装,否则安装Oracle时会出现java Exception。

    # yum install libXp

    3、创建Oracle用户与组

    在这里只讨论单主机环境,不考虑RAC环境的配置。

    执行以下指令以新增oracle安装时所需要的使用者与群组。

    (1) 建立群组oinstall 
    # groupadd oinstall

    (2) 建立群组dba
    # groupadd dba

    (3) 新增使用者oracle并将其加入oinstall和dba群组
    # useradd -m -g oinstall -G dba oracle

    (4) 测试oracle账号是否建立完成
    # id oracle

    (5) 建立oracle的新密码
    # passwd oracle

    4、将oracle使用者加入到sudo群组中

    # vi /etc/sudoers

    找到
    root        ALL=(ALL)        ALL 
    这行,并且在底下再加入
    oracle        ALL=(ALL)        ALL
    输入wq!(由于这是一份只读文档所以需要再加上!)并且按下Enter

    5、配置系统内核参数

    # vi /etc/sysctl.conf

    修改和添加以下内容:

    kernel.shmall = 4294967296                           //表示系统一次可以使用的共享内存总量(以页为单位)。缺省值就是2097152,通常不需要修改
    kernel.shmmax = 68719476736                      //定义了共享内存段的最大尺寸(以字节为单位)。缺省为32M,对于oracle来说,该缺省值太低了,通常将其设置为2G
    kernel.shmmni = 4096                                    //用于设置系统范围内共享内存段的最大数量。该参数的默认值是 4096 。通常不需要更改
    kernel.sem = 250 32000 100 128                    //表示设置的信号量
    net.ipv4.ip_local_port_range = 1024 65000
    net.core.rmem_default=4194304                     //默认的接收窗口大小
    net.core.rmem_max=4194304                        //接收窗口的最大大小
    net.core.wmem_default=262144                      //默认的发送窗口大小
    net.core.wmem_max=262144                         //发送窗口的最大大小

    会有一些与目前的参数重复的,就修改成文件上提供的。

    编辑完之后,储存,然后执行:

    # sysctl -p

    启用刚刚所做的变更。

    6、编辑/etc/security/limits.conf

    # vi /etc/security/limits.conf

    添加以下四行
    oracle  soft        nproc   2047
    oracle  hard        nproc   16384
    oracle  soft        nofile  1024
    oracle  hard        nofile  65536

    7、编辑/etc/pam.d/login

    # vi /etc/pam.d/login

    添加以下两行
    session required /lib64/security/pam_limits.so
    session required pam_limits.so

    8、修改/etc/profile

    # vi /etc/profile

    将以下代码新增到profile档案中。

    复制代码
    if [ $USER = "oracle" ]; then
        if [ $SHELL = "/bin/ksh" ]; then
            ulimit -p 16384
            ulimit -n 65536
        else
            ulimit -u 16384 -n 65536
        fi
    fi 
    复制代码

    9、修改Linux发行版本信息

    由于Oracle 10g发行的时候,CentOS 6没有发行,所以Oracle 10g并没有对CentOS 6确认支持,需要修改文件让Oracle 10g支持CentOS 6。
    我们需要手工修改Linux的发行注记,让Oracle 10g支持CentOS 6。
    编辑/etc/redhat-release文件
    # vi /etc/redhat-release
    将其中的内容CentOS release 6.3 (Final)修改为redhat 4

    10、创建Oracle安装文件夹以及数据存放文件夹

    #mkdir /opt/oracle
    #mkdir /opt/oracle/102
    #chown -R oracle:dba /opt/oracle

    11、配置Linux主机
    检查/etc/hosts文件中是否有localhost的记录(指向127.0.0.1即可),若没有的话,在后面配置Oracle监听的时候会出现一些问题,导致无法启动监听,在此手工添加此记录即可。

    第一阶段到此完毕,接下来,完成这些设定之后,请先注销root账号,并且以oracle账号再次登入系统。

    12、配置oracle用户环境变量

    $ cd /home/oracle
    $ vi .bash_profile
    修改并加入以下內容

    ORACLE_BASE=/opt/oracle                      //上面创建的Oracle安装文件夹
    ORACLE_HOME=$ORACLE_BASE/102
    ORACLE_SID=orcl
    LD_LIBRARY_PATH=$ORACLE_HOME/lib
    PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin

    export ORACLE_BASE ORACLE_HOME ORACLE_SID LD_LIBRARY_PATH PATH

    保存后使用如下命令,使设置生效:

    $ source /home/oracle/.bash_profile

    五、安装Oracle,并进行相关设置

    1、解压缩安装文件

    将下载的10201_database_linux_x86_64.cpio放至即将安装oracle的文件夹/opt/oracle
    回到终端模式并且进入到oracle文件夹:

    $ cd /opt/oracle

    解压缩10201_database_linux_x86_64.cpio

    $ cpio -idmv < 10201_database_linux_x86_64.cpio

    接着会看到一连串的解压缩动作。

    解压缩完成会在同一个文件夹中看到database的文件夹,请进入到database文件夹中:

    $ cd database

    准备执行数据库安装,如果你的centos是中文环境,安装时会出现中文乱码,请下以下指令

    $ export LANG=en_US

    接着执行

    $ ./runInstaller

    如果无法看到安装界面,请使用root帐户执行如下命令后再运行安装程序:
    # export DISPLAY=:0.0 
    # xhost + 
    $ ./runInstaller

    遇到错误:Exception in ...... /lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory

    解决:

    # yum -y install libXp.i686

    分析:看报错信息"/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory",libXp需要安装i386的包,而不能安装X64的包。上面认为64位的linux需要安装64位的libXp包,所以导致这个问题。

    再次执行 

    $ ./runInstaller

    遇到错误:Exception in ...... /lib/i386/libawt.so: libXt.so.6: cannot open shared object file: No such file or directory

    解决:

    # yum -y install libXt.i686

    再次执行 

    $ ./runInstaller

    遇到错误:Exception in ...... /lib/i386/libawt.so: libXtst.so.6: cannot open shared object file: No such file or directory

    解决:

    # yum -y install libXtst.i686

    再次执行 

    $ ./runInstaller

    开始执行安装程序。

    由于相关的前置作业已经在之前做好了,在这个步骤只需要将UNIX DBA Group选择为dba以及输入SYS, SYSTEM等账号共享的database Password即可。然后选择Next即可。

    同样的,将群组选择为dba群组,按Next

    在这个步骤中,请点选Checking Network Configuration requirements为User Verified,接着按下Next

    最后出现Install Summary画面,此时只要按下Install按钮,系统即开始安装。

    安装过程...

    安装进度大约到65%时会有错误提示:
    Error in invoking target 'collector' of makefile '/opt/oracle/102/sysman/lib/ins_emdb.mk'.

    同时oraInventory/logs/目录下的安装日志文件里面会有如下类似错误提示:

    这是oracle安装程序的一个bug,可以忽略此错误继续安装,对系统没什么影响。

    在Configuration Assistants 时会出现错误提示:

    OUI-25031:Some of the configuration assistants failed.

    分析:主机名映射错误

    解决:修改/etc/hosts文件,增加IP地址与主机名的映射如下:

    接着会遇到错误提示:

    ORA-27125:unable to create shared memory segment

    解决:

    1. 确定安装oracle所使用的用户组

    # id oracle

    可以看到oracle组dba id 为501。

    2. 修改内核参数

    echo "501" >/proc/sys/vm/hugetlb_shm_group

    就可以了。

    安装到数据库设置助理,可以在这边选取password management作密码的修改,如不需要修改,只需要按下ok按钮即可。

    安装完成前,出现以下的设置脚本:

    开启一个新的终端,su到root。

    将要求执行的两段script依序执行。

    /opt/oracle/oraInventory/orainstRoot.sh
    /opt/oracle/102/root.sh

    执行画面如上图。
    执行完后,回到安装窗口按下OK完成所有的oracle安装。安装完成会出现以下画面。

    此时,您可以以上述网址,作为测试,登入账号可以为sys或system

    http://CentOS-Oracle:5560/isqlplus
    http://CentOS-Oracle:5560/isqlplus/dba
    http://CentOS-Oracle:1158/em

    以上画面都成功代表oracle已经正常安装了。

    六、升级Oracle到patchset 10.2.0.4

    1、升级软件

    a. 关闭需要升级的实例

    停止实例

    SQL> SHUTDOWN IMMEDIATE

    停止与该实例相关的所有后台进程

    $ emctl stop dbconsole

    $ isqlplusctl stop

    $ lsnrctl stop

    b. 备份Oracle数据库

    c. 运行升级包升级软件

    将补丁包p6810189_10204_Linux-x86-64.zip解压;进入解压后的目录,执行安装命令。

    点击“Next”

    指定Oracle Home 目录详细,点击“Next”

    点击“Next”

    点击“Next”

    点击“Install”,进行安装。

    升级过程...

    需要执行脚本/opt/oracle/102/root.sh

    开一个新窗口,在root账户下执行脚本。

    执行完后,回到安装窗口按下“OK”完成所有的oracle安装。安装完成会出现以下画面。

    点击“Exit”,退出Oracle的升级。

    如果此前并没有创建数据库,那么升级到10.2.0.4到此就结束了。然后可以去创建新的数据库。

    如果此前已经创建了数据库,那么按以下步骤升级数据库到10.2.0.4版本。

    2、升级数据库

    a. 更新数据字典

    $ sqlplus / as sysdba;

    SQL> STARTUP UPGRADE

    SQL> SPOOL patch.log

    SQL> @?/rdbms/admin/catupgrd.sql

    升级过程比较长,请耐心等待。

    升级完毕,总耗时38分钟26秒。

    SQL> SPOOL OFF

    b. 关闭并重启数据库

    SQL> SHUTDOWN IMMEDIATE

    SQL> STARTUP

    c. 编译无效PL/SQL包

    SQL> @?/rdbms/admin/utlrp.sql

    编译成功。

    d. 检查升级是否成功,如果所有组件的status都是valid表示升级成功。

    SQL> SELECT COMP_NAME, VERSION, STATUS FROM SYS.DBA_REGISTRY;

    e. 检查是否有升级错误

    SQL> select * from utl_recomp_errors;

    f. 修改系统兼容性参数

    SQL> alter system set compatible='10.2.0.4.0' scope=spfile;

    SQL> SHUTDOWN

    SQL> STARTUP

    升级完成。

    七、使用rlwrap调用sqlplus中历史命令

      在Linux中运行SQL*Plus,不能调用历史命令;输错字符后也不能按Backspace键或Del键删除,虽然可以通过Ctrl+Backspace组合键实现删除功能,但是严重影响使用效率。使用第三方软件rlwrap可以实现以上功能。

      rlwrap提供了readline的封装(bash下命令的输入都是通过readline这个库来处理的。也就是说,上下箭头查看历史命令,Ctrl+r反向查找匹配历史输入,以及Ctrl+w, Ctrl+a等等操作都是由readline提供的),也就是说rlwrap提供一个输入环境,在这个输入环境下可以使用readline的各种功能。如果一个程序在命令行下接受输入,那么用rlwrap直接就可以得到像在bash下输入那样的效果。

    7.1 安装rlwrap

    rlwrap封装了readline,所以安装rlwrap之前需要安装readline库。可以通过yum方式安装,也可以下载源码包进行安装。官方网站:http://utopia.knoware.nl/~hlub/uck/rlwrap/

    I. yum方式安装

    CentOS系统默认的yum软件仓库中没有rlwrap这个包,需要通过第三方yum源安装。

    a. 安装第三方yum源

    # rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

    # rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6                          //导入key

    默认会在/etc/yum.repos.d/下创建epel.repo和epel-testing.repo两个配置文件。

    b. 安装rlwrap和readline

    # yum install rlwrap readline readline-devel

    II. 源码包安装

    其他Linux发行版如果源里没有rlwrap和readline的(如SUSE企业版默认没有这两个包),要分别下载这两个源码包编译安装一下。

    a. 安装readline

    # wget ftp://ftp.gnu.org/gnu/readline/readline-6.2.tar.gz
    # tar zxvf readline-6.2.tar.gz
    # cd readline-6.2/
    # ./configure
    # make
    # make install

    b. 安装rlwrap

    # wget http://utopia.knoware.nl/~hlub/rlwrap/rlwrap-0.37.tar.gz
    # tar zxvf rlwrap-0.37.tar.gz
    # cd rlwrap-0.37/
    # ./configure
    # make
    # make install

    7.2 设置sqlplus的系统别名

    # vim /home/oracle/.bash_profile

    在尾部添加:

    alias sqlplus='rlwrap sqlplus'
    alias rman='rlwrap rman'

    退出oracle用户再重新登录就OK了。现在Linux下的sqlplus用起来就像cmd中一样了。

    CentOS 6.3(x86_32)下安装Oracle 10g R2

    http://www.cnblogs.com/mchina/archive/2012/11/06/2737472.html

    Linux Oracle服务启动&停止脚本与开机自启动

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

  • 相关阅读:
    Oracle SQL语句大全—查看表空间
    Class to disable copy and assign constructor
    在moss上自己总结了点小经验。。高手可以飘过 转贴
    在MOSS中直接嵌入ASP.NET Page zt
    Project Web Access 2007自定义FORM验证登录实现 zt
    SharePoint Portal Server 2003 中的单一登录 zt
    vs2008 开发 MOSS 顺序工作流
    VS2008开发MOSS工作流几个需要注意的地方
    向MOSS页面中添加服务器端代码的另外一种方式 zt
    状态机工作流的 SpecialPermissions
  • 原文地址:https://www.cnblogs.com/zhwl/p/3719309.html
Copyright © 2011-2022 走看看