zoukankan      html  css  js  c++  java
  • linux安装oracle10g

    操作系统: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

    libXtst此处已有了,无法安装 可以使用下面语句删除重新安装
    rpm --erase --nodeps libXtst-1.2.2-2.1.el6.x86_64 yum update "libXtst*" rpm -qa | grep libXtst*
    rpm -q 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

    二、 修改 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

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

    # groupadd oinstall

    # groupadd dba

    # useradd -g oinstall -G dba oracle

    修改密码:

    # passwd oracle

    六、创建oraInst.loc

    # vim /etc/oraInst.loc

    inventory_loc=/oracle/oraInventory
    inst_group=oinstall

    **这里要注意inventory_loc复制时 i不要遗漏。当初这个遗漏导致15步报错

    更改属组及权限

    chown oracle:oinstall /etc/oraInst.loc

    chmod 664 /etc/oraInst.loc

    七、修改 /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 /oracle/ora10g
    chown -R oracle:oinstall /oracle/ora10g/
    chmod -R 775 /oracle/ora10g/

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

    # vi /home/oracle/.bash_profile

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

    #Oracle Settings
    export TMP=/tmp; export TMPDIR=$TMP; export ORACLE_BASE=/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 /oracle/ora10g/database/

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

    (1) 以root身份登录

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

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

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

    配置enterprise.rsp文件

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

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

    RESPONSEFILE_VERSION=2.2.1.0.0

    UNIX_GROUP_NAME="oinstall"

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

    ORACLE_HOME_NAME="OraDb10g_home1"

    SHOW_INSTALL_PROGRESS_PAGE= true

    RESTART_SYSTEM=false

    RESTART_REMOTE_SYSTEM=false

    SHOW_END_OF_INSTALL_MSGS= true

    COMPONENT_LANGUAGES={"zh_CN"}   默认en

    INSTALL_TYPE="EE"

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

    s_nameForOPERGrp="dba"

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

    说明:这几项要视情况而定比如说 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 /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 /oracle/ora10g/database/response/netca.rsp

    在这步中遇到了类似以下的报错情况。

    解决方法:

    vim /etc/hosts

    在文件中增加 hostname 即可解决

    十八、修改dbstart

    (1) 以oracle身份登录

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

        ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle

     改为

        ORACLE_HOME_LISTNER=$ORACLE_HOME

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

    十九、安装数据库实例(如果这步没有安装成功。那么会pfile下将没有文件)

    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 /oracle/ora10g/database/response/dbca.rsp -cloneTemplate
    创建数据库实例的时候报了以下错误
    ORA-27125:unable to create shared memory segment
    
    
    解决办法:
    [root@rac2 ~]# id oracle
    
    uid=500(oracle) gid=501(oinstall)groups=501(oinstall),502(dba),503(asmadmin),504(oper)
    
    [root@rac2 ~]# more/proc/sys/vm/hugetlb_shm_group
    
    0
    
     
    
    下面用root执行下面的命令,将dba组添加到系统内核中:
    
    [root@rac2 ~]# echo 502 >/proc/sys/vm/hugetlb_shm_group
    
    --这里的502 是上面的id 命令查看出来的。
    
    [root@rac2 ~]# more /proc/sys/vm/hugetlb_shm_group     
    502
    
     
    
    然后重新DBCA,成功建立实例。 如果遇到实例名以存在的提示,删除/etc/oratab 中对应的记录即可。

    二十、修改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> startup
    ORA-01078: failure in processing system parameters
    LRM-00109: could not open parameter file '/home/oracle/base/11gR2/db/dbs/initora11g.ora'

    解决办法:

      1、cd /oracle/base/admin/ORA11g/pfile

      2、cp init.ora.6242017161635 /home/oracle/base/11gR2/db/dbs/initora11g.ora(若是此处没有这个文件,则是19步安装实例存在问题)

      3、重新执行startup启动数据库实例成功。

    查看19的日志后发现确实是19步没有安装成功

    报错如下:

    ORA-27125: unable to create shared memory segment
    Cause: shmget() call failed
    Action: contact Oracle support

    查询了一下,发现问题和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

    如果遇到plsql连接超时的情况 可以试下以下解决方法

    如果在本机可以正常使用,可是到局域网中的其他机器就出现“ORA-12170:TNS:连接超时
    解决方法:
    1.cmd-----ping ip地址 查看网络问题,看能否ping通
    2.cmd-----tnsping ip地址(或者是服务器的实例名SID)如果报“TNS-12535:操作超时”,可能是服务器端防火墙 没有关闭
    (这次我就是这个原因)
    3.cmd----netstat -na 查看1521端口是否关闭,如果关闭Windows XP中的防火墙设置中将1521端口设为例外
    4.cmd----lsnrctl status lsnrctl是listener-control 监听器的缩写,查看监听的状态

    修改数据库编码

    sqlplus / as sysdba

    Oracle Server端字符集查询
    SQL> select userenv('language') from dual;
    USERENV('LANGUAGE')
    ----------------------------------------------------
    AMERICAN_AMERICA.ZHS16GBK 
    由此可以看出字符集为ZHS16GBK

    如果startup报错了 可以使用

    可以使用  alter database open resetlogs;


    Server端字符集修改
    将数据库启动到RESTRICTED模式下做字符集更改:
    $ sqlplus "/as sysdba"
    SQL> conn /as sysdba;
    SQL> shutdown immediate;

    SQL> startup mount;
    SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
    SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
    SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
    SQL> alter database open;
    SQL> alter database character set INTERNAL_USE UTF8;     或者   alter database character set INTERNAL_USE ZHS16GBK;
    SQL> shutdown immediate;
    SQL> startup;
    SQL> exit;

  • 相关阅读:
    微信二维码 场景二维码 用于推送事件,关注等 注册用户 ,经过测试
    简单的 Helper 封装 -- CookieHelper
    简单的 Helper 封装 -- SecurityHelper 安全助手:封装加密算法(MD5、SHA、HMAC、DES、RSA)
    Java反射机制
    Windows Azure Web Site (13) Azure Web Site备份
    Windows Azure Virtual Machine (1) IaaS用户手册
    Windows Azure Web Site (1) 用户手册
    Windows Azure Web Site (12) Azure Web Site配置文件
    Windows Azure Web Site (11) 使用源代码管理器管理Azure Web Site
    Windows Azure Web Site (10) Web Site测试环境
  • 原文地址:https://www.cnblogs.com/linhongwenBlog/p/10363704.html
Copyright © 2011-2022 走看看