zoukankan      html  css  js  c++  java
  • centos6.5 64位静默安装oracle 10G R2

    操作系统:CentOS release 6.5 (Final) 64位

    oracle版本:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit

     

     

    一、下载必须安装包:

     

    # 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

     

    # yum install libXp

     

    # yum -y install libXp.i686

     

    # yum -y install libXt.i686

     

    # yum -y install libXtst.i686

     

     

    二、 修改 sysctl.conf 配置文件:

     

    # vim /etc/sysctl.conf

     

       在文件末尾添加一下内容:

     

    #use for Oracle

    kernel.shmall = 2097152

    kernel.shmmax = 2147483648

    kernel.shmmni = 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

     

     

    三、 修改 limits.conf 配置文件. 此文件用于设置系统资源限制.

     

    # vi /etc/security/limits.conf

     

    在文件末尾加上以下内容:

     

    oracle soft nproc 2047

    oracle hard nproc 16384

    oracle soft nofile 1024

    oracle hard nofile 65536

     

     

    四、 编辑 /etc/pam.d/login 文件:

     

    # vi /etc/pam.d/login

     

    在文件末尾加上以下内容:

     

    session required /lib/security/pam_limits.so

    session required pam_limits.so

     

     

    五、创建oraInst.loc

     

    # vim /etc/oraInst.loc

     

    inventory_loc=/u01/oracle/oraInventory

    inst_group=oinstall

    更改属组及权限

    chown oracle:oinstall /etc/oraInst.loc

    chmod 664 /etc/oraInst.loc

     

     

    六、 创建相应的用户名和用户组:

     

    # groupadd oinstall

     

    # groupadd dba

     

    # useradd -g oinstall -G dba oracle

     

    修改密码:

     

    # passwd oracle

     

     

    七、 修改 /etc/profile 限制其他用户使用:

     

    # vim /etc/profile

     

    在文件末尾加入以下内容:

     

    if [ $USER = "oracle" ]; then

     

        if [ $SHELL = "/bin/ksh" ]; then

     

            ulimit -p 16384

     

            ulimit -n 65536

     

        else

     

            ulimit -u 16384 -n 65536

     

        fi

    fi

     

     

    八、修改Linux 发行版本. 因为Oracle10G发行的时候, Centos6.5还没有发行. 所以必须修改:

     

    # vim /etc/redhat-release

     

    删除文件本身内容, 重新录入以下内容:

     

    redhat-4

     

     

    九、 创建oralce安装目录以及数据存放目录.

     

    # mkdir -p /home/oracle/ora10g

     

    # chown -R oracle:oinstall /home/oracle/ora10g/

     

    # chmod -R 775 /home/oracle/ora10g/

     

     

    十、 配置Oracle用户环境变量:

     

    # vi /home/oracle/.bash_profile

     

    在文件末尾加入以下内容:

     

    #Oracle Settings

     

    export TMP=/tmp;

    export TMPDIR=$TMP;

    export ORACLE_BASE=/home/oracle/ora10g ;

    export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1;

    export ORACLE_SID=orcl10g;

    export ORACLE_TERM=xterm;

    export PATH=/usr/sbin:$PATH;

    export PATH=$ORACLE_HOME/bin:$PATH;

    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;

    export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;

     

     

    十一、 使配置生效:

     

    # source /home/oracle/.bash_profile

     

     

    十二、 解压安装文件

     

    将下载的10201_database_linux_x86_64.cpio.gz(数据库安装文件) 复制到 /home/oracle/ora10g/目录下.

     

    # cp /usr/local/src/10201_database_linux_x86_64.cpio.gz /home/oracle/ora10g/

     

    首先解压gz包.

     

    # gzip -d 10201_database_linux_x86_64.cpio.gz

     

    在使用cpio解压出文件.

     

    # cpio -idmv < 10201_database_linux_x86_64.cpio

     

     

    十三、更改解压出来的database文件件及文件的所有者和用户组为oracle和oinstall.

     

    # chown -R oracle:oinstall /home/oracle/ora10g/database/

     

     

    十四、编辑安装需要的应答文件

    (1) 以root身份登录

    (2) 静默模式(Silent)安装必须指定一个应答文件来完成安装过程所须的各类参数。

        在Oracle安装目录的response子目录里有enterprise.rsp、standard.rsp和custom.rsp三个应答文件,分别对应企业版、标准版和定制的安装。

    (3) 以enterprise.rsp为例,用任意的文本编辑器打它,修改以下这些项目的值。

     

    配置enterprise.rsp文件

    vi /home/oracle/ora10g/database/response/enterprise.rsp

    修改以下值  红色为必须修改项,其他按需要

    RESPONSEFILE_VERSION=2.2.1.0.0

    UNIX_GROUP_NAME="oinstall"

    ORACLE_HOME_NAME="OraDb10g_home1"

    ORACLE_HOME="/home/oracle/ora10g/product/10.2.0/db_1"

    SHOW_INSTALL_PROGRESS_PAGE= true

    SHOW_END_OF_INSTALL_MSGS= true

    COMPONENT_LANGUAGES={"zh_CN"}   默认en

    s_nameForDBAGrp= "dba"                         如设置无效组,会出现权限不够错误

    s_nameForOPERGrp="dba"

    INSTALL_TYPE="EE"

    n_configurationOption=3                    安装类型(1为在安装后创建数据库, 2为安装后创建一个自动存储管理实例, 3为只安装服务器软件),这里我选择3。

    RESTART_SYSTEM=false

    RESTART_REMOTE_SYSTEM=false

    说明:这几项要视情况而定比如说 UNIX_GROUP_NAME="oinstall" 和s_nameForDBAGrp= "dba" s_nameForOPERGrp="dba"还有环境变量都要参照前面自己定义好的来

     

     

    十五、开始安装

    (1) 用oracle用户登录,然后在Oracle安装目录里执行

        $ ./runInstaller -ignoreSysPrereqs -silent -responseFile <应答文件的绝对路径>

    (2) 接下来就是等待安装结束了。

    各安装参数的含义如下:

    -ignoreSysPrereqs 让Oracle忽略系统检查,因为Oracle官方声明只支持Linux服务器产品,所以要在非服务器产品的Linux上安装就必须指定此参数。

    -silent 表示以静默方式安装,不会有任何提示

    -force 允许安装到一个非空目录

    -noconfig 表示不运行配置助手netca

    -responseFile 表示使用哪个响应文件,必需使用绝对路径

     

    在这里我输入:

    ./runInstaller -silent -ignoreSysPrereqs -responseFile /home/oracle/ora10g/database/response/enterprise.rsp

     

     

    十六、系统初始化

    (1) 以root用户登录

    (2) 运行以下两个脚本:

        /home/oracle/ora10g/oraInventory/orainstRoot.sh

        /home/oracle/ora10g/product/10.2.0/db_1/root.sh

     

     

    十七、安装网络监听器

    vi ./response/netca.rsp

    (1) 以oracle登陆

    (2) 没有网络监听器,客户端就无法通过网络连接Oralce服务器。要在命令行安装网络监听器,也只能使用静默模式。

    (3) 编辑Oracle安装目录里response子目录下的应答文件 netca.rsp, 修改以下项目:

    INSTALL_TYPE=""CUSTOM"" 安装的类型,这里我使用默认值

    LISTENER_NUMBER=1 监听器数量,这里我使用默认值

    LISTENER_NAMES={"LISTENER"} 监听器的名称列表,这里我使用默认值

    LISTENER_PROTOCOLS={"TCP;1521"} 监听器使用的通讯协议列表,这里我使用默认值

    LISTENER_START=""LISTENER"" 监听器启动的名称,这里我使用默认值

    (4) 然后运行

        $ORACLE_HOME/bin/netca /silent /responseFile <应答文件的绝对路径>

     这里我输入的命令为:

    $ORACLE_HOME/bin/netca /silent /responseFile /home/oracle/ora10g/database/response/netca.rsp

     

     

    十八、修改dbstart

    (1) 以oracle身份登录

    (2) 打开 $ORACLE_HOME/bin/dbstart,将

        ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle

     改为

        ORACLE_HOME_LISTNER=$ORACLE_HOME

        否则网络监听器可能无法自动启动。

     

     

    十九、安装数据库实例

    vi ./response/dbca.rsp

     

    OPERATION_TYPE = "createDatabase"

    GDBNAME = "oracle10g"

    SID = "orcl10g"

    TEMPLATENAME = "General_Purpose.dbc"   如不设置会出现“静默DBCA创建数据库时遭遇模板不存在问题

    SYSPASSWORD = "oracle"

    SYSTEMPASSWORD = "oracle"

    CHARACTERSET = "ZHS16GBK"

     

    运行以下命令安装实例

    $ORACLE_HOME/bin/dbca -silent –responseFile /home/oracle/ora10g/database/response/dbca.rsp -cloneTemplate

     

     

    二十、修改Oracle启动配置文件:/etc/oratab

    (1) 以oracle用户登录

    (2) 然后编辑 /etc/oratab

        将<Oracle的SID>:<Oracle的主目录>:N

        修改为ora10g:/app/oracle/10g:Y

        使数据库实例能够自动启动。

     

     

    二十一、 启动和关闭监听

     

      启动监听:lsnrctl start

     

      关闭监听:lsnrctl stop

     

        检查监听:lsnrctl status

     

    二十二、启动Oracle实例

     

    su - oracle

     

    export ORACLE_SID=orcl10g

     

    以sysdba身份登入数据库,输入:

     

    sqlplus '/ as sysdba'

     

    SQL> startup

     

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

     

    备注:也可以用$ORACLE_HOME/bin/dbstart启动数据库实例

     

     

    二十三、关闭数据库实例

     

    SQL> shutdown immediate

     

    备注:也可以用 $ORACLE_HOME/bin/dbstart 启动数据库实例

     

     

    二十四、创建用户

     

    create user test identified by test account unlock;

     

    grant resource,connect to test;

     

     

    二十五、其他

    #创建表空间

    create TEMPORARY TABLESPACE AFINITOR_TEMP TEMPFILE '/u01/app/oracle/oradata/orcl/AFINITOR_TEMP.ORA' SIZE 32M AUTOEXTEND ON NEXT 32M MAXSIZE 2048M EXTENT MANAGEMENT LOCAL;

    #创建临时表空间

    create TABLESPACE AFINITOR LOGGING DATAFILE '/u01/app/oracle/oradata/orcl/AFINITOR.DBF' SIZE 32M AUTOEXTEND ON NEXT 32M MAXSIZE 2048M EXTENT MANAGEMENT LOCAL;

    #创建用户

    create user afinitor identified by afinitor default tablespace AFINITOR temporary tablespace AFINITOR_TEMP;

    #给用户授权

    grant resource,connect,EXP_FULL_DATABASE,IMP_FULL_DATABASE,CREATE SESSION to afinitor;

    grant dba to afinitor;

    #授权导入导出

    GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,DBA,CONNECT,RESOURCE,CREATE SESSION TO afinitor;

    #数据导入

    cd /home

    wget –c http://nadmin.haott.com/afinitor_db.dmp (此处是在另一服务器下载所需要的数据库dmp文件)

    su – oracle

    imp afinitor/afinitor@orcl file=/home/afinitor_data_20131206.dmp full=y ignore=y #导入命令

     

     

     

    #监听文件

     [oracle@localhost admin]$  cat listener.ora

     

    SID_LIST_LISTENER =

      (SID_LIST =

        (SID_DESC =

          (SID_NAME = orcl10g)

          (ORACLE_HOME = /home/oracle/ora10g/product/10.2.0/db_1)

    #      (PROGRAM = extproc)           要注释掉,否则会出现ORA-28547:连接服务器失败,可能是Net8管理错误”          

        )

      )

     

    LISTENER =

      (DESCRIPTION_LIST =

        (DESCRIPTION =

          (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

        )

      )

     

     

    #tnsnames文件

    [oracle@localhost admin]$ cat tnsnames.ora

    EXTPROC_CONNECTION_DATA =

      (DESCRIPTION =

        (ADDRESS_LIST =

          (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

        )

        (CONNECT_DATA =

          (SERVICE_NAME = oracle10g)

        )

      )

     

     

    二十六、安装排障总结

     

    故障一

    ORA-01078: failure in processing system parameters

    LRM-00123: invalid character 0 found in the input file

    LRM-00109: could not open parameter file '/home/oracle/app/oracle/product/11.2.0/dbhome_1/dbs/initorcl.ora

       经查:pfile目录下无参数文件,SORACLE_HOME/dbs下无密码文件,flash_recovery_area下无相关实例文件

       解决:实例未创建成功,dbca重新创建实例即可,如果有实例情况下,则拷贝pfile下参数文件到dbs下并命名即可。

     

     

    故障二

         ORA-01031: insufficient privileges

         原因一:组配置错误

    [oracle@wz_oracle2 ~]$ cat enterprise.rsp | egrep -i "grp|group"

    UNIX_GROUP_NAME="dba"

    s_nameForDBAGrp="oracle"

    s_nameForOPERGrp="oracle"

       解决:

    [oracle@wz_oracle2 ~]$ cat $ORACLE_HOME/rdbms/lib/config.c

    /*  SS_DBA_GRP defines the UNIX group ID for adminstrative access.  */

    /*  Refer to the Installation and User's Guide for further information.  */




    #define SS_DBA_GRP "oracle"  /* 改成 dba */

    #define SS_OPER_GRP "oracle"  /* 改成 dba */




    char *ss_dba_grp[] = {SS_DBA_GRP, SS_OPER_GRP};

    然后

    [oracle@wz_oracle2 ~]$ relink all

     

     

     

    故障三

     

     ORA-01031: insufficient privileges

     原因:system无法登陆,sys和其他普通登陆能正常登陆,经查是登陆验证问题

     解决:cat /home/oracle/ora10g/product/10.2.0/db_1/network/admin/sqlnet.ora

          SQLNET.AUTHENTICATION_SERVICES   不设置即可

     

     

    故障四

    使用Oracle 10g的dbca.rsp文件静默创建数据库的时候遭遇模板不存在的问题

     

    [oracle@newadm database]$ dbca -silent -responseFile /home/oracle/database/response/dbca.rsp

    Template General Purpose does not exist. Please specify an existing template for database creation.

     

    解决:更改dbca.rsp文件中的General Purpose为 General_Purpose.dbc即可

        TEMPLATENAME = "General_Purpose.dbc"

     

     

    故障五

    ORA-27125: unable to create shared memory segment

     

    查询了一下,发现问题和linux上的hugetbl有关。

     

    解决方法也很简单,首先检查oracle用户的组信息:

     

    [oracle@yans1 ~]$ id oracle

     

    uid=500(oracle) gid=502(oinstall) groups=502(oinstall),501(dba)

     

    [oracle@yans1 ~]$ more /proc/sys/vm/hugetlb_shm_group

     

    0

     

    下面用root执行下面的命令,将dba组添加到系统内核中:

     

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

     

    然后启动数据库,问题消失。

     

    但以上这种方式在重启操作系统后失效, /proc/sys/vm/hugetlb_shm_group又变为了0,建议采用以下方式解决:

     

    加入vm.hugetlb_shm_group = 501 到/etc/sysctl.conf中来解决:

     

    # vi /etc/sysctl.conf

     

    加入如下的内容,其中501为dba组号,需要根据你实际的情况进行改变。

     

    vm.hugetlb_shm_group = 501

    # sysctl -p

     

     

    故障六

    远程客户端连接oracle出现错误:ORA-28547:连接服务器失败,可能是Net8管理错误

    将listener.ora中的(PROGRAM = extproc)这句注释掉就可以了

     

  • 相关阅读:
    jquery全屏幻灯轮播焦点图
    PHP curl 上传文件版本兼容问题
    一个网站同一域名不同目录下的文件访问到的cookie值不同是什么原因?
    Linux系统查找清理磁盘大文件方法
    REDIS常用命令
    CentOS 6.4安装pip,CentOS安装python包管理安装工具pip的方法
    centos6 编译安装nodejs4.3
    centos yum安装php5.6.19 remi源按照
    Mac下用brew搭建PHP(LNMP/LAMP)开发环境
    为什么JAVA要提供 wait/notify 机制?是为了避免轮询带来的性能损失
  • 原文地址:https://www.cnblogs.com/hftian/p/8553716.html
Copyright © 2011-2022 走看看