zoukankan      html  css  js  c++  java
  • oracle 11g R2(静默安装)

    参考博客地址:https://blog.csdn.net/jameshadoop/article/details/48223645

    https://www.abcdocker.com/abcdocker/2090

    http://blog.51cto.com/dellinger/1973696

    官方地址:

    http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

    环境准备

    Oracle安装

    首先请去官网下载软件包:

    我百度云可以直接下载

    链接:https://pan.baidu.com/s/1NYz0Z_5jhNQjqg9gVtrQhQ 密码:uif0

    1.1 安装前准备

    1.1.1 如何有修改yum源请参考:https://blog.csdn.net/jameshadoop/article/details/48054897

    1.1.2 内存及swap要求

    至于swap如何添加,请参考

    https://blog.csdn.net/whatday/article/details/51024571

    1.  检查当前的swap分区情况
    # free –m
                  total       used       free     shared    buffers     cached
      Mem:          1006         84        922          0         11         38
      -/+ buffers/cache:         35        971
      Swap:            0          0          0
    2.  增加交换分区文件及大小
    如上,当前swap分区的大小为0,假如需要增加1024M的大小。
    判定新交换文件的大小,将大小乘以1024来判定块的大小。例如,大小为64MB的交换文件的块大小为65536,在 shell 提示下以根用户身份键入以下命令,其中的 count 等于想要的块大小。
    # dd if=/dev/zero of=/home/swap bs=1M count=1024
    1024000+0 records in
      1024000+0 records out
    格式化交换文件,将swap文件格式化成s文件系统,系统才能使用
    # mkswap  /home/swap
      Setting up swapspace version 1, size = 1023996 KiB
    3.  启动交换分区文件
    假如想立即启用交换分区文件,请执行:
    # swapon  /home/swap
    要停止使用新创建的swap文件,只要执行 swapoff/home/swap命令即可.
    检验增加后的swap分区大小
    # free  -m
                  total       used       free     shared    buffers     cached
      Mem:          1006        994         12          0          4        929
      -/+ buffers/cache:         60        946
      Swap:          999          0        999
    4.  如希望在系统再次启动时,自动启用刚增加的swap,可编辑/etc/fstab文件:
    # vi  /etc/fstab,增加如下行
    /home/swap             swap          swap    defaults        0 0  
    5.修改linux swap空间的swappiness,降低对硬盘的缓存
    linux 会使用硬盘的一部分做为SWAP分区,用来进行进程调度--进程是正在运行的程序--把当前不用的进程调成‘等待(standby)‘,甚至‘睡眠(sleep)’,一旦要用,再调成‘活动(active)’,睡眠的进程就躺到SWAP分区睡大觉,把内存空出来让给‘活动’的进程。
    如果内存够大,应当告诉 linux 不必太多的使用 SWAP 分区, 可以通过修改 swappiness 的数值。swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。在ubuntu 里面,默认设置swappiness这个值等于60。
    !!!! 如果内存较小,而进程调度频繁,硬盘的响动就会大了 !!!!
    现在一般1个G的内存可修改为10, 2个G的可改为5, 甚至是0。具体这样做:
    1.查看你的系统里面的swappiness
    $ cat /proc/sys/vm/swappiness
    不出意外的话,你应该看到是 60
    2.修改swappiness值为10
    $ sudo sysctl vm.swappiness=10
    但是这只是临时性的修改,在你重启系统后会恢复默认的60,为长治久安,还要更进一步:
    $ sudo vi /etc/sysctl.conf
    在这个文档的最后加上这样一行:
    vm.swappiness=10
    然后保存,重启。ok,你的设置就生效了。
    swap内存操作
    [root@xiaoyuer home]# free -h
                 total       used       free     shared    buffers     cached
    Mem:          1.8G       1.8G        78M       184K        11M       1.6G
    -/+ buffers/cache:       139M       1.7G
    Swap:         7.9G         0B       7.9G

    1.2 硬盘空间

    [root@DB_2 ~]# df -h
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/vda1        50G   11G   37G  22% /

    1.3 修改主机名,及ip对应关系

    设置主机名,也可以直接修改配置文件/etc/sysconfig/network,不过这个是重启之后才起作用

    #sed - i"s/HOSTNAME=localhost.localdomain/HOSTNAME=oracle/g"/etc/sysconfig/netwok

    如果不想重启,则使用下面命令,使当前生效

    #hostname oracle

    添加主机名与IP对应记录

    #vi /etc/hosts
    10.10.0.48   oracle

    1.4 关闭Selinux

    我自己没有关闭过selinux,这个是网上提供说需要关闭的

    sed -i "s/SELINUX=enforcing/SELINUX=disabled/"/etc/selinux/config 
    setenforce 0

    1.5上传软件

    上传到/home/oracle/ 解压Oracle安装文件
    # cd /home/oracle/  
    #  unzip linux.x64_11gR2_database_1of2.zip -d  /home/oracle
    #  unzip linux.x64_11gR2_database_2of2.zip -d /home/oracle/  

    1.6 系统配置

     创建用户和组

    groupadd oinstall
    groupadd dba
    useradd -g oinstall -G dba oracle
    passwd oracle
    id oracle
    [root@ DB_2 home]# groupadd oinstall 
    [root@ DB_2 home]# groupadd dba
    [root@ DB_2 home]# useradd -g oinstall -G dba oracle 
    [root@ DB_2 home]# passwd oracle
    Changing password for user oracle.
    New password: 
    BAD PASSWORD: it is too simplistic/systematic
    BAD PASSWORD: is too simple
    Retype new password: 
    passwd: all authentication tokens updated successfully.
    [root@ DB_2 home]# id oracle
    uid=501(oracle) gid=502(oinstall) groups=502(oinstall),503(dba)
    View Code

    创建相应安装目录

    mkdir -p /u01/app/oracle
    mkdir -p /u01/app/oraInventory
    mkdir -p /u01/app/oracle/oradata
    mkdir -p /u01/app/oracle/recovery_data
    chown -R oracle:oinstall /u01/app/
    chmod -R 755 /u01/app/
    参考:
    在root用户下
    mkdir -p /opt/app/oracle/product/11.2.0/dbhome_1
    //创建安装目录
    #mkdir -p /opt/app/oracle/product/11.2.0/dbhome_1
    //数据文件存放目录
    #mkdir -p /opt/app/oracle/oradata
    //数据恢复目录
    #mkdir -p /opt/app/oracle/recovery_area
    //数据库创建及使用过程中的日志目录
    #mkdir -p /opt/app/oracle/oraInventory
    //修改安装目录权限
    #chown -R oracle:oinstall /opt/app/oracle
    #chmod 775 /opt/app/oracl
    参考与

    修改系统内核参数

    [root@oradg1 ~]vim /etc/sysctl.conf
    fs.aio-max-nr = 1048576 
    fs.file-max = 6815744 
    kernel.shmall = 2097152                     //此行默认已有,确认不低于此数即可 
    kernel.shmmax = 536870912                   //此行默认已有,确认不低于此数即可 
    kernel.shmmni = 4096 
    kernel.sem = 250 32000 100128 
    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
    # sysctl -p #使配置生效

    调整会话限制

    [root@oradg1 ~]# vim /etc/pam.d/login 文件最后添加:
    session     required    pam_limits.so

    调整oracle用户的进程数与最大文件句柄数

    [root@oradg1 ~]# vim /etc/security/limits.conf  文件的最后添加:
    oracle         soft    nproc    10000
    oracle         hard    nproc    16384
    oracle         soft    nofile   52768
    oracle         hard    nofile   6553
    root soft nproc 2047
    root hard nproc 16384
    root soft nofile 1024
    root hard nofile 65536
    soft是最小值,hard是最大值,nofile是文件句柄,也就是这个用户能打开的文件数,nproc是进程数

    1.7 增加环境变量

     oracle用户变量

    [root@oradg1 ~]# vim /home/oracle/.bash_profile
    umask 022  
    export ORACLE_BASE=/u01/app  
    export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
    export ORACLE_SID=dg1  
    export LANG=en_US.UTF-8
    #export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"

     添加全局变量

    [root@oradg1 ~]# vi /etc/profile   
    export PATH=$PATH:/u01/app/oracle/product/11.2.0/db_1/bin

    不要忘了让环境变生效

    source /etc/profile
    source /home/oracle/.bash_profile

    1.8 安装oracle

    安装依赖包

    # yum -y install gcc gcc-c++ makebinutilscompat-libstdc++-33 elfutils-libelf elfutils-libelf-develglibcglibc-commonglibc-devel libaio libaio-devel libgcclibstdc++libstdc++-develunixODBC unixODBC-devel ksh
    或   (我用的上者)
    # yum -y installbinutils compat-libstdc++-33compat-libstdc++-33.i686
    elfutils-libelfelfutils-libelf-devel gcc gcc-c++glibc glibc.i686 glibc-common
    glibc-devel glibc-devel.i686glibc-headers kshlibaio libaio.i686 libaio-devel
    libaio-devel.i686 libgcclibgcc.i686 libstdc++libstdc++.i686 libstdc++-devel make
    sysstat unixODBC unixODBC-devel

    到这里前期的准备工作全部完成啦,建议重启下系统让各项配置生效。当然也可以不重启

    1.9 应答文件修改    /home/oracle/database/response

    此种应答文件是安装并配置数据库,直接产生orcl数据库实例 
    应答文件模版在解压后的文件夹中。 
    /home/oracle/database/response/db_install.rsp 
    模版中重要的配置项含义如下 
    ORACLE_HOSTNAME 主机名 
    ORACLE_BASE oracle的基础安装目录 
    ORACLE_HOME oracle的安装目录 
    INVENTORY_LOCATION oracle日志目录 
    oracle.install.db.config.starterdb.globalDBName 
    oracle.install.db.config.starterdb.password.ALL

    如果想知道每个选项的含义,请看:

    http://blog.csdn.net/jameshadoop/article/details/48086933

    1.1.1 db_install.rsp文件中追加

    oracle.install.option=INSTALL_DB_SWONLY
    ORACLE_HOSTNAME= oracle
    UNIX_GROUP_NAME=oinstall
    INVENTORY_LOCATION=/u01/app/oraInventory  #数据库创建及使用过程中的日志目录
    SELECTED_LANGUAGES=en,zh_CN,zh_TW
    ORACLE_BASE=/u01/app/oracle
    ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1  #创建安装目录
    oracle.install.db.InstallEdition=EE
    oracle.install.db.DBA_GROUP=dba
    oracle.install.db.OPER_GROUP=oinstall
    oracle.install.db.config.starterdb.characterSet=AL32UTF8
    oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE
    oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=/u01/app/oracle/oradata
    oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=/u01/app/oracle/recovery_data
    oracle.install.db.config.starterdb.globalDBName=dg1
    oracle.install.db.config.starterdb.SID=dg1
    oracle.install.db.config.starterdb.memoryLimit=500
    oracle.install.db.config.starterdb.password.ALL=sys
    SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
    DECLINE_SECURITY_UPDATES=true
    错误:说共享内存为963我设置的500
    [FATAL] [INS-35172] Target database memory (4069MB) exceeds the systems available shared memory ({0}MB).
       CAUSE: The total available shared memory on the system (936 MB) was less than the chosen target database memory (4069 MB).
       ACTION: Enter a value for target database memory that is less than936 MB.
    oracle.install.db.config.starterdb.memoryLimit=500
    我遇到的内存错误

    成功后显示:

    ......
    *As a root user, execute the following script(s): 
    1. /u01/app/oracle/product/11.2.0/db_1/root.sh 
    Successfully Setup Software*

     root权限执行安装后的配置脚本

    su - root
    sh /u01/app/oracle/product/11.2.0/db_1/root.sh
    [oracle@oracle ~]$ ]# su - root  
    [[oracle@oracle ~$]# sh /u01/app/oracle/product/11.2.0/db_1/root.sh
    View Code

    创建oraInst.loc

    新建一个文件,没有此文件会报错 
    vim /home/oracle/oraInst.loc ,其内容如下:
    
    inventory_loc=/u01/app/oraInventory
    inst_group=oinstall
    开放权限:
    root> chown oracle:oinstall /home/oracle/oraInst.loc
    
    root> chmod 664 /home/oracle/oraInst.loc

    然后执行

    cd /home/oracle/database/
    
    ./runInstaller -silent -responseFile /home/oracle/database/response/db_install.rsp -invPtrLoc /home/oracle/oraInst.loc -ignoreSysPrereqs
    #查看日志看进度  /u01/app/oraInventory/logs/installActions2018-05-29_07-17-34PM.log

    1.11 静默建库

    vim /home/oracle/database/response/dbca.rsp, 覆盖以下选项:

    注意:一定要按原来的参数所在的位置修改,不然报错

     RESPONSEFILE_VERSION = "11.2.0"  //不能更改
     OPERATION_TYPE = "createDatabase"
     GDBNAME = "dg1"  //全局数据库的名字=SID+主机域名
     SID = "dg1"    //对应的实例名字
     TEMPLATENAME = "General_Purpose.dbc" //建库用的模板文件
     SYSPASSWORD = "sys"   //SYS管理员密码
     SYSTEMPASSWORD = "sys"  //SYSTEM管理员密码
     DATAFILEDESTINATION = /u01/app/oracle/oradata //数据文件存放目录
     RECOVERYAREADESTINATION=/u01/app/oracle/oradata_back //恢复数据存放目录
     CHARACTERSET = " AL32UTF8"   //字符集,重要!!! 建库后一般不能更改,所以建库前要确定清楚。
     TOTALMEMORY = "4069"    //oracle内存4069MB

    1.12oracle用户执行配置完之后,执行命令

    dbca -silent -responseFile /home/oracle/database/response/dbca.rsp
    [oracle@DB_2 db_1]$ dbca -silent -responseFile /home/oracle/database/response/dbca.rsp
    Copying database files
    1% complete
    3% complete
    11% complete
    18% complete
    26% complete
    37% complete
    Creating and starting Oracle instance
    40% complete
    45% complete
    50% complete
    55% complete
    56% complete
    60% complete
    62% complete
    Completing Database Creation
    66% complete
    70% complete
    73% complete
    85% complete
    96% complete
    100% complete
    Look at the log file "/u01/app/cfgtoollogs/dbca/orcl11g/orcl11g.log" for further details.
    显示如下

    1.13配置监听

    netca /silent /responsefile /home/oracle/database/response/netca.rsp

    启动服务

    linux下开启oracle
    su - oracle 
    sqlplus /nolog 
    conn /as sysdba 
    startup
    exit
    .启动监听
    lsnrctl start

    1.1.1 关闭数据库服务

    linux下关闭oracle
    
    su - oracle
    
    sqlplus /nolog
    
    conn /as sysdba
    
    shutdown immediate
    
    exit
    [oracle@DB_2 pfile]$ sqlplus / as sysdba
    
    SQL*Plus: Release 11.2.0.1.0 Production on Wed May 30 00:42:51 2018
    
    Copyright (c) 1982, 2009, Oracle.  All rights reserved.
    
    Connected to an idle instance.
    
    SQL> start
    SP2-1506: START, @ or @@ command has no arguments
    SQL> startup
    ORACLE instance started.
    
    Total System Global Area  534462464 bytes
    Fixed Size            2215064 bytes
    Variable Size          163578728 bytes
    Database Buffers      364904448 bytes
    Redo Buffers            3764224 bytes
    Database mounted.
    Database opened.
    SQL>
    测试

    LINUX登录oracle用户,通过lsnrctl start命令启动数据库时,报错如下:

    博客地址如下:https://blog.csdn.net/weiruoao/article/details/45374511

    [oracle@DB_2 pfile]$ lsnrctl start
    
    LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 29-MAY-2018 23:51:35
    
    Copyright (c) 1991, 2009, Oracle.  All rights reserved.
    
    Starting /u01/app/oracle/product/11.2.0/db_1/bin/tnslsnr: please wait...
    
    TNSLSNR for Linux: Version 11.2.0.1.0 - Production
    System parameter file is /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
    Log messages written to /u01/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml
    Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
    TNS-12533: TNS:illegal ADDRESS parameters
     TNS-12560: TNS:protocol adapter error
      TNS-00503: Illegal ADDRESS parameters
    
    
    Listener failed to start. See the error message(s) above...
    错误

    原因:

    /etc/hosts内有两个localhost的主机名,监听冲突。

    解决方法: 
    1、修改其中一个主机名,比如oracle,执行以下命令。
    hostname oracle
    2、在/etc/hosts内修改一个主机名为oracle。
    [root@oracle etc]# cat /etc/hosts 
    127.0.0.1 localhost 
    ::1 oracle
    3、在/etc/sysconfig/network修改主机名为oracle。
    [root@oracle etc]# cat /etc/sysconfig/network 
    NETWORKING=yes 
    HOSTNAME=oracle
    4、重新启动,在oracle用户下执行lsnrctl start。
    解决方法

    其他参考:

    具体请查看另一篇文章:【开启归档模式,归档日志已满处理http://www.cnblogs.com/yingsong/p/6037531.html

    启动关闭命令详解http://www.cnblogs.com/NaughtyBoy/archive/2013/07/09/3180947.html 

    https://blog.csdn.net/jameshadoop/article/details/48223645

    官方指南:

    https://docs.oracle.com/cd/E11882_01/server.112/e16604/qstart.htm#i1049125 

    启动报挂载

    http://blog.itpub.net/20674423/viewspace-711545根据这个博客操作

  • 相关阅读:
    [转发]深入浅出EventSourcing和CQRS
    [转载]缓存与数据库双写一致性问题
    关于com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“java.lang.RuntimeException: Could not generate DH keypair”
    [转载]安装sql2016时提示Polybase 要求安装Oracle JRE 7更新51 (64位)或更高版本”规则失败
    windows安装配置压缩版mysql
    virtualbox虚拟机centeros7系统桥接网卡网络配置
    oracle导入dmp文件(恢复数据)
    解决PL/SQL DEVELOPER12查询中文乱码问题(本地没装Oracle)
    JAVA线程Thread
    深入构造器
  • 原文地址:https://www.cnblogs.com/zhaojingyu/p/9108760.html
Copyright © 2011-2022 走看看