zoukankan      html  css  js  c++  java
  • Linux服务器中安装Oracle

    笔者手动安装成功

    一,oracle安装前的准备与配置

    1,修改stsctl.conf文件

      Linux是为小文件设计的,Oracle数据库安装需要占用较多资源,要把各项参数调大。

      使用vi编辑/etc/sysctl.conf文件。命令如下:

       

      vi /etc/sysctl.conf

    i进入插入模式,把光标移到文档最后,将以下一段文字(复制自Oracle 11g官方文档)    

    插入到文档最后。

    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 = 1048576

    net.ipv4.tcp_wmem = 262144 262144 262144

     net.ipv4.tcp_rmem = 4194304 4194304 4194304

     注意注释掉

     # Disable netfilter on bridges.

     

     #net.bridge.bridge-nf-call-ip6tables = 0

     

     #net.bridge.bridge-nf-call-iptables = 0

     

     #net.bridge.bridge-nf-call-arptables = 0

    (修改完以后,可以通过重启系统来加载这些参数)

    2,各参数详解

    kernel.shmmax:是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值。设置应该足够大,能在一个共享内存段下容纳下整个的SGA ,设置的过低可能会导致需要创建多个共享内存段,这样可能导致系统性能的下降。至于导致系统下降的主要原因为在实例启动以及ServerProcess创建的时候,多个小的共享内存段可能会导致当时轻微的系统性能的降低(在启动的时候需要去创建多个虚拟地址段,在进程创建的时候要让进程对多个段进行“识别”,会有一些影响),但是其他时候都不会有影响。

    官方建议值:

    32linux系统:可取最大值为4GB4294967296bytes-1byte,即4294967295。建议值为多于内存的一半,所以如果是32为系统,一般可取值为429496729532位系统对SGA大小有限制,所以SGA肯定可以包含在单个共享内存段中。

    64linux系统:可取的最大值为物理内存值-1byte,建议值为多于物理内存的一半,一般取值大于SGA_MAX_SIZE即可,可以取物理内存-1byte。例如,如果为12GB物理内存,可取12*1024*1024*1024-1=12884901887SGA肯定会包含在单个共享内存段中。

    kernel.shmall: 该参数控制可以使用的共享内存的总页数。Linux共享内存页大小为4KB,共享内存段的大小都是共享内存页大小的整数倍。一个共享内存段的最大大小是16G,那么需要共享内存页数是16GB/4KB=16777216KB /4KB=4194304(页),也就是64Bit系统下16GB物理内存,设置kernel.shmall = 4194304才符合要求(几乎是原来设置2097152的两倍)。这时可以将shmmax参数调整到16G了,同时可以修改SGA_MAX_SIZESGA_TARGET12G(您想设置的SGA最大大小,当然也可以是2G~14G等,还要协调PGA参数及OS等其他内存使用,不能设置太满,比如16G

    kernel.shmmni:该参数是共享内存段的最大数量。shmmni缺省值4096,一般肯定是够用了。

    fs.file-max:该参数决定了系统中所允许的文件句柄最大数目,文件句柄设置代表linux系统中可以打开的文件的数量。

    fs.aio-max-nr:此参数限制并发未完成的请求,应该设置避免I/O子系统故障。推荐值是:1048576 其实它等于 1024*1024 也就是 1024K 个。

    kernel.sem:以kernel.sem = 250 32000 100 128为例:

           250是参数semmsl的值,表示一个信号量集合中能够包含的信号量最大数目。

           32000是参数semmns的值,表示系统内可允许的信号量最大数目。

           100是参数semopm的值,表示单个semopm()调用在一个信号量集合上可以执行的操作数量。

           128是参数semmni的值,表示系统信号量集合总数。

    net.ipv4.ip_local_port_range:表示应用程序可使用的IPv4端口范围。

    net.core.rmem_default:表示套接字接收缓冲区大小的缺省值。

    net.core.rmem_max:表示套接字接收缓冲区大小的最大值。

    net.core.wmem_default:表示套接字发送缓冲区大小的缺省值。

    net.core.wmem_max:表示套接字发送缓冲区大小的最大值。

    3,修改limits.conf文件

    命令:vi /etc/security/limits.conf

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

    oracle soft nproc  2047

    oracle hard nproc  16384

    oracle soft nofile 1024

    oracle hard nofile 65536

     oracle hard stack 10240

    (重启系统,加载参数)

    4,创建oracle需要的相关信息

    (以普通用户登录,然后切换到root用户:su root

    4.1,创建dba

    命令:

    groupadd dba

    检查是否创建完成:tail /etc/group

    4.2,创建oracle用户并将其添加到dba

    创建oracle用户命令:

    useradd oracle

    oracle用户添加到dba组:

    usermod -g dba oracle

    给这个用户加一个密码(密码一定要好记,别管他的提示),命令如下:

    passwd oracle

    测试一下刚才的操作是否成功:

    tail /etc/group

    tail /etc/passwd

     

    4.3,创建oracle安装目录

        执行以下命令创建目录:

    mkdir -p /u01/app/oracle

    执行以下命令,将文件的属主改为Oracle,属组改为dba

    chown -R oracle:dba /u01/app/oracle

    修改文件的访问权限为7774+2+1,4+2+1,4+2+1):

    chmod -R 777 /u01/app/oracle

    查看一下你刚建的文档权限:

    drwxr-xr-x.   3 root root  4096 Jun 19 16:39   u01                        

    drwxr-xr-x. 4 root root 4096 Jun 19 18:24      app

    drwxrwxrwx. 10 oracle dba 4096 Jun 19 20:22 oracle

    drwxrwx---.  5 oracle dba 4096 Jun 19 18:59 oraInventory (该文件后面创建)

    (这里我们需要把u01的属主改为oracle,属组改为dba,将u01app的权限改为chmod 775 /u01和chmod 775 /u01/app )

    4.4,配置概要文件(oracle下)

        切换到oracle用户下,  输入以下命令:

     

     

    cd /home/oracle

    vi .bashrc

    进入vi后按键盘上的字母i切换到插入模式,然后插入以下内容:

    umask 002

    ORACLE_BASE=/u01/app/oracle      //这个决定后面按安装的目录

    export ORACLE_BASE

     

    ORACLE_HOME=$ORACLE_BASE/product/11.2.0    //这个也是

    export ORACLE_HOME

     

    ORACLE_SID=dog         //和你后要建的数据库事例名字一样,我的是:dog,以防出现SID不一致的问题

    export ORACLE_SID

     

    PATH=/usr/bin:/bin:usr/local/bin:/usr/bin/X11:/usr/bin/X11R6

    PATH=$PATH:$ORACLE_HOME/bin

    export PATH

    root 用户下(文件里面是有东西的,在最后追加):
       vi /etc/pam.d/login

       session required /lib/security/pam_limits.so

       session required pam_limits.so

    二,安装oracle依赖包

    通过yum安装,安装centos时自动安装yum

    compat-libstdc++-33 compat-libstdc++-296 gcc gcc-c++ make binutils openmotif control-center compat-db compat-gcc compat-gcc-c++ compat-gcc-34 compat-gcc-34-c++ giflib glib gtk+ glibc glibc-common glibc-devel gnome-libs libstdc++ libstdc++-devel libaio libjpeg-devel libpng-devel libX11-devel libXau-devel libXdmcp-devel libXft-devel libXmu libXmu-devel libXtst libXp libXp-devel libXpm libXpm-devel libXt-devel mesa-libGL-devel openmotif-devel setarch xorg-x11-proto-devel sysstat unixODBC-devel elfutils-libelf-devel libaio-devel pdksh

    三,安装oracle

    1,创建安装目录并将其属组改为Oracle

      获取root权限并执行以下命令:

    su root

    mkdir /u01/app/oraInventory

    ls -l /u01/app

    chown -R oracle:dba /u01/app/oraInventory

    chmod -R 775 /u01/app/oraInventory

    ls -l /u01/app

    主要一定要看上面的oracle oraInventory文件是否权限一致

    2,解压oracle安装文件

    先将oracle安装程序拷贝到一个目录下(我解压到tmporacle目录下,如果没有,自己建一个目录):

    Oracle的安装文件有两个,如下:

    p13390677_112040_Linux-x86-64_1of7.zip

    p13390677_112040_Linux-x86-64_2of7.zip

    执行下面命令解压:

    Unzip 文件名

    两个文件都解压后是如下结果:

     

    3,运行安装文件(oracle用户下安装,因为这个是oracle用户用的)

    如你当前系统环境是英文的环境一些不用看

    若你是当前系统环境是中文的环境必须看,否则会出现框框乱码问题,

    **——设置编码方式:在oracle用户下:

    export LANG=en_US.UTF-8

    输入一下命令,进行安装:

    cd /tmp/Oracle/database //这个是进入到你oracle解压后的目录下,根据你自己

    ./runInstaller

    执行后会进入图形化安装界面,在图形话安装界面中根据自己的需求进行选择安装。

    四,配置profile的参数

    修改/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

    五,配置oracle环境变量

    /home目录下.bash_profile文件中

    export bash_profile="/home/oracle/.bash_profile"

    export oracle_base="/opt/oracle"

    export oracle_home=$oracle_base/product/11.2.0

    echo "# Setup ==== Oracle Environment ===="  >> $bash_profile

    echo export ORACLE_SID=tianque >> $bash_profile

    echo export ORACLE_BASE=$oracle_base >> $bash_profile

    echo export ORACLE_HOME=$oracle_home >> $bash_profile

    echo export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK >> $bash_profile

    echo export LD_LIBRARY_PATH=$oracle_home/lib:/lib:/usr/lib:/usr/lib64:/usr/local/lib:/usr/local/lib64 >> $bash_profile

    export NLS_DATE_FORMAT="YYYY-MM-DD-HH24:MI:SS" >> $bash_profile

    export TNS_ADMIN=$ORACLE_HOME/network/admin >> $bash_profile

    echo export ORA_NLS11=$ORACLE_HOME/nls/data >> $bash_profile

    echo export ORACLE_OWNER=oracle >> $bash_profile

    echo export ORACLE_TERM=xterm >> $bash_profile

    echo "# Setup ==== Search Path ===="  >> $bash_profile

    echo export PATH=$PATH:$oracle_home/bin:/home/oracle/Opatch:/sbin >> $bash_profile

    生效环境变量:

    Source .bash_profile

    注意:根据以上内容配置环境变量后,进入.bash_profile文件中根据需要修改ORACLE_HOME的路径

    六,检查ORACLE_SID是否正确

    1,什么是ORACLE_SID

    是一个数据库的唯一标识符,是建立一个数据库时系统自动赋予的一个初始ID,

    SID主要用于在一些DBA的操作以及与操作系统交互,从操作系统角度访问实例名,必须通过ORACLE_SID,且它在注册表中也是存在的.

    2,查看oracle_sid

    echo $ORACLE_SID(输出的SID要和环境变量中配置的一样),  

    3,修改:export ORACLE_SID=test

    4,可能会导致的问题

    如果SID不正确,会出现数据库无法启动,有如下报错:

    sys用户登录sqlplus后,用startup命令启动Oracle时提示:

    ORA-01078:failure in processing system parameters

    LRM-00109:couldnotopen parameter file '/u01/app/oracle/product/11.2.0/db_1/dbs/initorcl.ora'

    5,解决方法

    1,将$ORACLE_HOME/dbs目录下spflieorcl.ora改名为spfiletianque.ora即可。(注:spfiletianque.ora中的tianque为环境变量中设置的SID,我的是tianque

    2,用find /u01  -name pfile命令查找pfile文件的位置,/u01/app/oracle/admin/orcl/pfile/

    $ORACLE_BASE/admin/orcl/pfile目录下的init.ora.2212013132036形式的文件copy $ORACLE_HOME/dbs目录下命名为initorcl.ora即可。

  • 相关阅读:
    oracle 10g 免安装客户端在windows下配置
    sql2005 sa密码
    使用windows live writer 有感
    windows xp SNMP安装包提取
    汉化groove2007
    迁移SQL server 2005 Reporting Services到SQL server 2008 Reporting Services全程截图操作指南
    foxmail 6在使用中的问题
    AGPM客户端连接不上服务器解决一例
    SpringSource Tool Suite add CloudFoundry service
    Java 之 SWing
  • 原文地址:https://www.cnblogs.com/chenwenaa/p/7252211.html
Copyright © 2011-2022 走看看