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;

  • 相关阅读:
    内置对象
    Angular 动画
    Angular_上拉刷新
    angular Observable
    【Nginx】nginx为目录或网站加上密码认证
    MongoDB笔记
    websocket服务器+客户端
    cli 中php的配置和phpinfo不一样
    linux设置时区和自动同步时间
    crontab & php实现多进程思路
  • 原文地址:https://www.cnblogs.com/linhongwenBlog/p/10363704.html
Copyright © 2011-2022 走看看