zoukankan      html  css  js  c++  java
  • oracle11gR2静默安装

    oracle11G静默安装过程——linux环境

     
    1.操作系统及Oracle版本
    Linux版本:CentOS release 6.8 (Final)
    Oracle版本:Oracle Database 11g Release 2 (11.2.0.1.0) for Linux x86-64 (linux.x64_11gR2_database_1of2.zip、linux.x64_11gR2_database_2of2.zip)
     
    2.硬件检测:
    物理内存不少于1G
    硬盘可以空间不少于5G
    swap分区空间不少于2G
    支持256色以上显卡
    cpu主频不小于550mHZ
     
    cat /etc/issue
    uname -r 
    grep MemTotal /proc/meminfo 
    grep SwapTotal /proc/meminfo 
    grep "model name" /proc/cpuinfo 
    free 
    df -k /tmp 
    df -k
     
    3.检查安装依赖系统包
    操作系统依赖的具体包,请参考官方安装文档。
    以下为 Asianux 3, Oracle Linux 5, Red Hat Enterprise Linux 5, CentOS 5 操作系统依赖的包
    binutils-2.17.50.0.6
    compat-libstdc++-33-3.2.3
    compat-libstdc++-33-3.2.3 (32 bit)
    elfutils-libelf-0.125
    elfutils-libelf-devel-0.125
    gcc-4.1.2
    gcc-c++-4.1.2
    glibc-2.5-24
    glibc-2.5-24 (32 bit)
    glibc-common-2.5
    glibc-devel-2.5
    glibc-devel-2.5 (32 bit)
    glibc-headers-2.5
    ksh-20060214
    libaio-0.3.106
    libaio-0.3.106 (32 bit)
    libaio-devel-0.3.106
    libaio-devel-0.3.106 (32 bit)
    libgcc-4.1.2
    libgcc-4.1.2 (32 bit)
    libstdc++-4.1.2
    libstdc++-4.1.2 (32 bit)
    libstdc++-devel 4.1.2
    make-3.81
    sysstat-7.0.2
    unixODBC-2.2.11 (32-bit) or later
    unixODBC-devel-2.2.11 (64-bit) or later
    unixODBC-2.2.11 (64-bit) or later
     
    检查依赖包
     
    rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc-2.5 glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
    如果包有显示is not installed(没安装),就用yum install 命令安装,如:
     
    yum install compat-libstdc++-33
     
    4.创建所需的操作系统组和用户
     
    groupadd oinstall
    groupadd dba
    useradd -g oinstall -G dba oracle
    设置oracle用户密码
     
    passwd oracle
     
    5.修改内核参数
    在/sbin/sysctl.conf 文件中,使用文本编辑器或vi命令增加或修改以下参数
     
    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
    修改后,使设置生效
     
    /sbin/sysctl -p
     
    6.修改用户限制
    在/etc/security/limits.conf 文件中,使用文本编辑器或vi命令增加或修改以下参数
     
    oracle soft nproc 2047
    oracle hard nproc 16384
    oracle soft nofile 1024
    oracle hard nofile 65536
    oracle soft stack 10240
    在/etc/pam.d/login 文件中,使用文本编辑器或vi命令增加或修改以下内容
     
    session required /lib/security/pam_limits.so
    session required pam_limits.so
    在/etc/profile 文件中,使用文本编辑器或vi命令增加或修改以下内容
     
    if [ $USER = "oracle" ]; then
    if [ $SHELL = "/bin/ksh" ]; then
    ulimit -p 16384
    ulimit -n 65536
    else
    ulimit -u 16384 -n 65536
    fi
    fi
    使设置生效
     
    source /etc/profile
    7.创建安装目录(可根据情况,选择比较多空间的目录创建)
     
    mkdir -p /usr/oracle
    chown -R oracle:oinstall /usr/oracle
    chmod -R 775 /usr/oracle

     
    8.创建/etc/oraInst.loc文件,内容如下
     
    nventory_loc=/usr/oracle/oraInventory
    inst_group=oinstall
    更改文件的权限

     
    chown oracle:oinstall /etc/oraInst.loc
    chmod 664 /etc/oraInst.loc
     
    9.设置oracle环境变量
     
    su - oracle
     
    vi ~/.bash_profile
     
    在最后加上以下内容
     
    export ORACLE_BASE=/usr/oracle
    export ORACLE_SID=orcl
    注意,除了ORACLE_BASE和ORACLE_SID,( /etc/profile和.bash_profile中)不设置任何oracle相关环境变量(ORACLE_HOME, PATH, LD_LIBRARY_PATH等)。

     
    使设置生效
     
    source /home/oracle/.bash_profile
    检查环境变量:
     
    env
     
    10.解压oracle安装文件
     
    unzip linux.x64_11gR2_database_1of2.zip
    unzip linux.x64_11gR2_database_2of2.zip
     
    11.复制响应文件模板
     
    mkdir etc
    cp /home/oracle/database/response/* /home/oracle/etc/
    设置响应文件权限
     
    su - root
    chmod 700 /home/oracle/etc/*.rsp(注意所有者,oinstall)
    12.静默安装Oracle软件
     
    su - oracle
    修改安装Oracle软件的响应文件/home/oracle/etc/db_install.rsp
     
    oracle.install.option=INSTALL_DB_SWONLY // 29 安装类型
    ORACLE_HOSTNAME=db // 37 主机名称(hostname查询)
    UNIX_GROUP_NAME=oinstall // 42 安装组
    INVENTORY_LOCATION=/usr/oracle/oraInventory //47 INVENTORY目录(不填就是默认值)
    SELECTED_LANGUAGES=en,zh_CN,zh_TW // 78 选择语言
    ORACLE_HOME=/usr/oracle/product/11.2.0/db_1 // 83 oracle_home
    ORACLE_BASE=/usr/oracle // 88 oracle_base
    oracle.install.db.InstallEdition=EE // 99 oracle版本
    oracle.install.db.isCustomInstall=false //自定义安装,否,使用默认组件
    oracle.install.db.DBA_GROUP=dba // 143 dba用户组
    oracle.install.db.OPER_GROUP=oinstall // 147 oper用户组
    oracle.install.db.config.starterdb.type=GENERAL_PURPOSE // 160 数据库类型
    oracle.install.db.config.starterdb.globalDBName=orcl // 165 globalDBName
    oracle.install.db.config.starterdb.SID=orcl // 170 SID
    oracle.install.db.config.starterdb.memoryLimit=81920 // 200 自动管理内存的内存(M)
    oracle.install.db.config.starterdb.password.ALL=oracle // 233 设定所有数据库用户使用同一个密码
    SECURITY_UPDATES_VIA_MYORACLESUPPORT=false // 376(手动写了false)
    DECLINE_SECURITY_UPDATES=true // 385 设置安全更新(貌似是有bug,这个一定要选true,否则会无限提醒邮件地址有问题,终止安装。PS:不管地址对不对)

    开始静默安装

     
    cd database
    ./runInstaller -silent -force -responseFile /home/oracle/etc/db_install.rsp
    这个命令,一直执行失败,失败错误:

    解决:

    参考下面,我是直接加入了

    -ignorePrereq命令,就可以了。

    解决oracle在linux 纯字符界面安装问题:

    一、注意 在安装钱检测目录权限的问题 (尽量把用户安装的数据放到oracle用户下操作)  

    drwxrwxrwx 12 oracle oinstall 4096 Aug 17 2009 doc
    drwxrwxrwx 4 oracle oinstall 4096 Aug 15 2009 install
    drwxrwxrwx 2 oracle oinstall 4096 Jul 4 14:16 response
    drwxrwxrwx 2 oracle oinstall 4096 Aug 15 2009 rpm
    -rwxrwxrwx 1 oracle oinstall 3226 Aug 15 2009 runInstaller
    drwxrwxrwx 2 oracle oinstall 4096 Aug 15 2009 sshsetup
    drwxrwxrwx 14 oracle oinstall 4096 Aug 15 2009 stage
    -rwxrwxrwx 1 oracle oinstall 5402 Aug 18 2009 welcome.html
    二、[FATAL] [INS-13013] Target environment do not meet some mandatory requirements

    上面的参考文章解决是:安装命令中加入选项-ignorePrereq

    官网对这个错误的解释是:

    INS-13013: Target environment do not meet some mandatory requirements.
    Cause: Some of the mandatory prerequisites are not met. See logs for details. string
    Action: Identify the list of failed prerequisite checks from the log: string. Then either from the log file or from installation manual find the appropriate configuration to meet the prerequisites and fix it manually.
    大概的意思还是叫你看日志,从安装手册中找到合适的配置,手工修复 。

    看了日志,太多warnings 跟其他的配置文件有关系。不想修改了,我还是很懒,看了参考文章的不影响后来的,能忽略就忽略哈!嘿嘿!

    三、安装完毕遇到了,启动监听失败

    一般情况下是 oracle/product/11.2.0/dbhome_1/network/admin/listener.ora

    hostname出错了,修改为ip 就可以解决

    我之前在设置环境变量的时候 用的主机名, 这里也出现图形界面安装时候的问题 电信ip…

    上面这些就是我安装时候遇到的问题

    估计您安装的时候还会遇到其他的问题

    从新修改安装命令:

    ./runInstaller -ignorePrereq  -silent -force -responseFile /home/oracle/etc/db_install.rsp

    解决了问题,安装完成之后,就会出现如下界面:
    OK,安装完成!!!
    安装中,如果提示[WARNING]不必理会,此时安装程序仍在进行,如果出现[FATAL],则安装程序已经停止了。
    查看安装日志信息了解安装进度
     
    cd $ORACLE_BASE/oraInventory/logs
    tail -100f installActions*.log
    出现类似如下提示表示安装完成:
    cd $ORACLE_BASE/oraInventory/logs
    tail -f installActions*.log
    出现类似如下提示表示安装完成:
    #-------------------------------------------------------------------
    /usr/oracle/oraInventory/orainstRoot.sh
    /usr/oracle/product/11.2.0/db_1/root.sh
    To execute the configuration scripts:
    1. Open a terminal window 
    2. Log in as "root" 
    3. Run the scripts 
    4. Return to this window and hit "Enter" key to continue
     
    Successfully Setup Software.
    #-------------------------------------------------------------------
     
    使用root用户执行脚本

    这里是有两个脚本要执行,跑一下就好
     
    su root
    /usr/oracle/product/11.2.0/db_1/root.sh
    /usr/oracle/oraInventory/orainstRoot.sh
    增加oracle环境变量
     
    su - oracle
     
    vi ~/.bash_profile
     
    在最后加上以下内容
     
    export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
    export TNS_ADMIN=$ORACLE_HOME/network/admin
    export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
    export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
    export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/lib
    export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
    export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
    export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE
    export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE/lib
    export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
    export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
    export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
    export LIBPATH=${CLASSPATH}:$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib
    export ORACLE_OWNER=oracle
    export SPFILE_PATH=$ORACLE_HOME/dbs
    export ORA_NLS10=$ORACLE_HOME/nls/data
    使设置生效
     
    source /home/oracle/.bash_profile
     
    (
    13.静默配置网络
     
    $ORACLE_HOME/bin/netca /silent /responseFile /home/oracle/etc/netca.rsp
     
     
    14.静默安装数据库
    修改仅安装数据库的响应文件/home/oracle/etc/dbca.rsp
     
    GDBNAME="orcl.java-linux-test" //78 行 全局数据库的名字=SID+主机域名
    SID="orcl" //149行 SID
    CHARACTERSET="AL32UTF8" //415行 编码
    NATIONALCHARACTERSET="UTF8" //425行 编码
    进行静默安装数据库
     
    $ORACLE_HOME/bin/dbca -silent -responseFile /home/oracle/etc/dbca.rsp

    建库后实例检查
     
     
    ps -ef | grep ora_ | grep -v grep | wc -l
    ps -ef | grep ora_ | grep -v grep
    建库后监听检查
     
    lsnrctl status
    如果出现以下错误
     
    lsnrctl: error while loading shared libraries: /u01/app/oracle/product/11.2.0/db_1/lib/libclntsh.so.11.1: cannot restore segment prot after reloc: Permission denied
     
    解决办法:在root用户下执行以下命令
     
    su - root
    setenforce 0
    15.修改oracle启动配置文件
     
    su - oracle
    vi /etc/oratab
     
    orcl:/usr/oracle/product/11.2.0/db_1:Y //把“N”改成“Y”
     
    这样就可以通过dbstart 启动此实例,监听器。
     
    dbstart $ORACLE_HOME
    此时所有oracle的进程关闭,监听器也停止。
     
    dbshut $ORACLE_HOME
    再次查看监听器状态。
     
    lsnrctl status
     
    如果使用归档日志
     
    sqlplus / as sysdba
     
    SQL> shutdown immediate;
    SQL> startup mount;
    SQL> alter database archivelog;
    SQL> alter database flashback on; (如果要启用数据库闪回功能则执行)
    SQL> alter database open;
    SQL> execute utl_recomp.recomp_serial(); (重新编译所有可能失效对象)
    SQL> alter system archive log current; (手工归档测试)
    )
     
     
    select table_name from dba_tables;
    成功!!!
     
     
    ==================以下未测试成功=====================
    到这里,oracle11g的数据库实例就算是装好了,接下来配置数据库实例的基本参数文件~
    cd $ORACLE_HOME/dbs

    找到默认的init.ora,然后创建一个新的init.ora:
    cat init.ora | grep -V ^# | grep -V ^$ | > init$ORACLE_SID.ora

    修改新参数文件里面的<$ORACLE_HOME>为绝对路径,然后把db_name之类的东西改成自己的就好~

    然后就可以启动oracle实例了,用sqlplus "/as sysdba"登录进去,然后startup nomount;
    如果说MEMORY_TARGET太大了,那么可以在参数文件里面改小一点(这里设置的是81960M,80G),或者修改shm的大小、
    用df -h能看到/dev/shm的大小
    用mount -o size=102400M -o nrinodes=1000000 -o noatime,nodiratime -o remount /dev/shm来修改shm的大小

    然后创建spfile
    create spfile from pfile;(具体的这两个东西的资料可以参考我的另一篇文章,spfile和pfile那点事)

    如果一切正常,那么会显示出数据库的一些池和缓存的信息,接下来就是创建数据库了,

    先创建必要目录
    mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/adump
    mkdir -p $ORACLE_BASE/oradata

    PS:稍微注意一下的是,/usr/local/bin下面,几个目录的权限,记得要改成oracle和oinstall的(chown -R oracle:oinstall *),否则启动的时候会提示错误,权限啊,目录操作失败云云

    建库脚本如下:
    CREATE DATABASE orcl 
    USER SYS IDENTIFIED BY sys 
    USER SYSTEM IDENTIFIED BY system 
    LOGFILE 
    GROUP 1 ('/usr/oracle/oradata/redo01.log') SIZE 1024M, 
    GROUP 2 ('/usr/oracle/oradata/redo02.log') size 1024m, 
    GROUP 3 ('/usr/oracle/oradata/redo03.log') size 1024m, 
    GROUP 4 ('/usr/oracle/oradata/redo04.log') size 1024m, 
    GROUP 5 ('/usr/oracle/oradata/redo05.log') size 1024m
    MAXLOGFILES 5 
    MAXLOGMEMBERS 5 
    MAXLOGHISTORY 200 
    MAXDATAFILES 10000
    MAXINSTANCES 1 
    CHARACTER SET AL32UTF8 
    NATIONAL CHARACTER SET AL16UTF16 
    datafile '/usr/oracle/oradata/system01.dbf' size 2048M  REUSE
    EXTENT MANAGEMENT LOCAL
    sysaux datafile '/usr/oracle/oradata/sysaux01.dbf' size 2048M REUSE
    default temporary tablespace temp 
    tempfile '/usr/oracle/oradata/temp01.dbf' size 2048M REUSE
    undo tablespace UNDOTBS1 
    datafile '/usr/oracle/oradata/undotbs01.dbf' size 4096M  REUSE
    AUTOEXTEND off
    default tablespace DATA
    datafile '/usr/oracle/oradata/data01.dbf' size 8192M  REUSE
    EXTENT MANAGEMENT LOCAL
    SEGMENT SPACE MANAGEMENT AUTO;

    使用Extend和Segment的管理,懒人+水B表示自己管理的技巧暂时没空学,全部交给oracle自己管理.....

    如果没问题,接下来就创建数据字典和pl/sql包,
    sqlplus "/as sysdba"
    SQL>@?/rdbms/admin/catalog.sql;
    SQL>@?/rdbms/admin/cataproc.sql;
    SQL>@?/rdbms/admin/utlrp.sql;
    SQL>conn system/*****;
    SQL>@?/sqlplus/admin/pupbld.sql;
    (这几个脚本放在$ORACLE_HOME/rdbms/admin下,也可以先进这个目录,然后直接@脚本就好)
    最后shutdown immediate 然后startup吧~


    数据库正确open之后,就是配置监听器了,
    把 etworkadminlistener.ora 和 etworkadmin nsname.ora里面的LOCALHOST改成IP,把SID SID_NAME改成实例名,重启数据库,重启监听
    PS:参数文件的service和监听器的service要对上!

    然后用sqlplus,使用sys或者system登录进去,show parameter;或者select table_name from dba_tables看看是否正常~~

    The End! Happy Oracle 11g~

    PS:由于我是从oracle官网下载的oracle11g,不知道是否是这个原因,导致数据库类型不写GENERAL_PURPOSE 的话,安装一定会因为电子邮件地址的缘故终止╮(╯_╰)╭
     
     
     
    启动oracle实例:
    su - oracle
    vi /etc/oratab
     
    racl:/u01/app/oracle/product/11.2.0/db_1:Y //把“N”改成“Y”
     
    这样就可以通过dbstart 启动此实例,监听器。
     
    dbstart $ORACLE_HOME
    此时所有oracle的进程关闭,监听器也停止。
     
    dbshut $ORACLE_HOME
    再次查看监听器状态。
     
    lsnrctl status
     
    PL/SQL连接错误:

    linux上安装了oracle11gR2,配置好监听后可用,由于网络原因修改ip后再次启动客户端连接时提示连接失败,把/home/oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora中HOSTNAME改为固定ip后再次连接,出现ORA-12505异常

    [plain] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. 状态: 失败 -测试失败: Listener refused the connection with the following error:  
    2. ORA-12505, TNS:listener does not currently know of SID given in connect descriptor  
    查了下资料,把listener.ora中的sid重新指定,改为如下后,再次连接正确
    [plain] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. # listener.ora Network Configuration File: /usr/oracle/product/11.2.0/db_1/network/admin/listener.ora  
    2. # Generated by Oracle configuration tools.  
    3.   
    4. LISTENER =  
    5.   (DESCRIPTION_LIST =  
    6.     (DESCRIPTION =  
    7.       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.104)(PORT = 1521))  
    8.     )  
    9.   )  
    10.   
    11. SID_LIST_LISTENER =  
    12. (SID_LIST =  
    13.     (SID_DESC =  
    14.     #  (GLOBAL_DBNAME = ORCL)  
    15.       (ORACLE_HOME = /home/oracle/app/oracle/product/11.2.0/dbhome_1)  
    16.       (SID_NAME = orcl)  
    17.     )  
    18. )  
    19. ADR_BASE_LISTENER = /home/oracle/app  

    地址改成自己的,即可。解决了!!!

     
  • 相关阅读:
    Eclipse编辑properties文件中文乱码
    Spark安装
    安装VirtualBox后,VMware不能上网
    Hadoop Eclipse插件编译
    MapReduce 常见问题
    MapReduce 气象数据集
    Maven构建Hadoop开发环境
    Eclipse安装Maven
    吴恩达深度学习笔记 course4 week2 深度卷积网络 实例探究
    吴恩达深度学习笔记 cousrse4 week1作业
  • 原文地址:https://www.cnblogs.com/gmq-sh/p/5773374.html
Copyright © 2011-2022 走看看