• Centos-7静默安装Oracle-11gr2


    系统版本:

    cat /etc/redhat-release
    #CentOS Linux release 7.2.1511 (Core)
    redhat 4
    
    • 1
    • 2
    • 3

    系统内存不要用4G,shm默认是系统的一半,2G,问题多多!手动建库啥的超级慢!!(最好大于等于8G)
    官网下载安装包:
    /data/linux.x64_11gR2_database_1of2.zip
    /data/linux.x64_11gR2_database_2of2.zip

    ssh登录root用户做以下配置

    cd /data
    unzip linux.x64_11gR2_database_1of2.zip
    unzip linux.x64_11gR2_database_2of2.zip
    解压命令会把两个包都解压到/data/database目录

    查看hostname:

    [oracle@VM_12_28_centos database]$ hostname
    VM_12_28_centos
    
    • 1
    • 2

    检查hosts文件,要在hosts里添加一行,本机IP跟hostname对应的

    [oracle@VM_12_28_centos database]$ cat /etc/hosts
    127.0.0.1 localhost localhost.localdomain VM_12_28_centos
    ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
    172.28.12.28 VM_12_28_centos   ###hosts文件里添加这一行
    
    • 1
    • 2
    • 3
    • 4

    确认hostname文件里跟/etc/hosts添加的这行的主机名是一样:

    [oracle@VM_12_28_centos ~]$ cat /etc/hostname
    VM_12_28_centos
    
    • 1
    • 2

    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 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=1048586
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    使内核参数马上生效:
    /sbin/sysctl -p
    在/etc/security/limits.conf 添加打开文件数限制:
    oracle soft nproc 2047
    oracle hard nproc 16384
    oracle soft nofile 4096
    oracle hard nofile 65536
    oracle soft stack 10240
    /etc/pam.d/login添加登录认证动态库:
    session required pam_limits.so
    把一些命令添加大pre_install.sh里面,执行bash pre_install.sh 安装必须的依赖库。

    [oracle@VM_12_28_centos database]$ cat pre_install.sh
    yum install binutils -y
    yum install compat-libstdc++-33 -y
    yum install compat-libstdc++-33.i686 -y
    yum install gcc -y
    yum install gcc-c++ -y
    yum install glibc -y
    yum install glibc.i686 -y
    yum install glibc-devel -y
    yum install glibc-devel.i686 -y
    yum install ksh -y
    yum install libgcc -y
    yum install libgcc.i686 -y
    yum install libstdc++ -y
    yum install libstdc++.i686 -y
    yum install libstdc++-devel -y
    yum install libstdc++-devel.i686 -y
    yum install libaio -y
    yum install libaio.i686 -y
    yum install libaio-devel -y
    yum install libaio-devel.i686 -y
    yum install libXext -y
    yum install libXext.i686 -y
    yum install libXtst -y
    yum install libXtst.i686 -y
    yum install libX11 -y
    yum install libX11.i686 -y
    yum install libXau -y
    yum install libXau.i686 -y
    yum install libxcb -y
    yum install libxcb.i686 -y
    yum install libXi -y
    yum install libXi.i686 -y
    yum install make -y
    yum install sysstat -y
    yum install unixODBC -y
    yum install unixODBC-devel -y
    yum install zlib-devel -y
    yum install elfutils-libelf-devel -y
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39

    添加用户和用户组:

    groupadd -g 54321 oinstall
    groupadd -g 54322 dba
    groupadd -g 54323 oper
    useradd -g oinstall -G dba,oper oracle
    
    • 1
    • 2
    • 3
    • 4

    执行命令修改用户密码: passwd oracle

    查看selinux的状态:getenforce
    返回Disable 或Permissive
    如果不是就setenforce 0

    关闭防火墙systemctl stop firewalld

    在/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
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    切换到oracle 用户: su - oracle
    下面的操作用oracle用户进行

    新建oracle安装目录:
    mkdir -p /data/oracle/
    mkdir -p /data/oracle/product/11.2.0.4/db_1/

    设置oracle用户的系统环境变量:cat .bashrc
    export TMP=/tmp
    export TMPDIR= T M P e x p o r t O R A C L E H O S T N A M E = V M 1 2 2 8 c e n t o s e x p o r t O R A C L E U N Q N A M E = P Y F U N D e x p o r t O R A C L E B A S E = / d a t a / o r a c l e / e x p o r t O R A C L E H O M E = / d a t a / o r a c l e / p r o d u c t / 11.2.0.4 / d b 1 / e x p o r t O R A C L E S I D = P Y F U N D e x p o r t P A T H = TMP export ORACLE_HOSTNAME=VM_12_28_centos export ORACLE_UNQNAME=PYFUND export ORACLE_BASE=/data/oracle/ export ORACLE_HOME=/data/oracle/product/11.2.0.4/db_1/ export ORACLE_SID=PYFUND export PATH= TMPexportORACLEHOSTNAME=VM1228centosexportORACLEUNQNAME=PYFUNDexportORACLEBASE=/data/oracle/exportORACLEHOME=/data/oracle/product/11.2.0.4/db1/exportORACLESID=PYFUNDexportPATH=ORACLE_HOME/bin: P A T H e x p o r t L D L I B R A R Y P A T H = PATH export LD_LIBRARY_PATH= PATHexportLDLIBRARYPATH=ORACLE_HOME/lib:/lib:/usr/lib
    export CLASSPATH= O R A C L E H O M E / J R E : ORACLE_HOME/JRE: ORACLEHOME/JRE:ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

    进入oracle解压目录:cd /data/databse
    原文件做个备份:cp response/db_install.rsp response/db_install.rsp_bak
    修改db_install.rsp文件(其他选项用默认的配置):
    oracle.install.option=INSTALL_DB_SWONLY
    ORACLE_HOSTNAME=VM_12_28_centos
    UNIX_GROUP_NAME=oinstall
    INVENTORY_LOCATION=/home/oracle/oraInventory/
    SELECTED_LANGUAGES=en,zh_CN
    ORACLE_HOME=/data/oracle/product/11.2.0.4/db_1/
    ORACLE_BASE=/data/oracle/
    oracle.install.db.InstallEdition=EE
    oracle.install.db.isCustomInstall=true
    oracle.install.db.DBA_GROUP=oinstall
    oracle.install.db.OPER_GROUP=oper
    oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
    oracle.install.db.config.starterdb.globalDBName=PYFUDN
    oracle.install.db.config.starterdb.SID=PYFUND
    oracle.install.db.config.starterdb.characterSet=AL32UTF8
    oracle.install.db.config.starterdb.memoryOption=true
    oracle.install.db.config.starterdb.memoryLimit=4096
    oracle.install.db.config.starterdb.installExampleSchemas=false
    oracle.install.db.config.starterdb.enableSecuritySettings=true
    oracle.install.db.config.starterdb.password.ALL=oracle902

    ****第二次用上面的配置安装,报错,电子邮件地址不存在,修改了下面的选项
    DECLINE_SECURITY_UPDATES=true

    oracle 用户创建文件夹和文件:
    mkdir -p /home/oracle/oraInventory/
    [oracle@BJDC-PYT-oracle-slave database]$ cat /home/oracle/oraInventory/oraInst.loc
    inventory_loc=/data/oracle/oraInventory
    inst_group=oinstall
    这个文件到底需不需要?一开始建了,安装会报错,删掉才行

    结果还报错:
    INFO: Checking whether the given inventory location /home/oracle/oraInventory/ is user home or not…
    SEVERE: [FATAL] [INS-32035] 无法在指定位置创建新的主产品清单。
    原因: 提供的主产品清单位置不为空。
    操作: 请为产品清单提供其他位置, 或者清除当前位置。
    把oraInst.loc删除,OK

    又报别的错:
    SEVERE: [FATAL] [INS-35341] User is not a member of the following chosen OS groups: [null]
    CAUSE: User is not a member of one or more of the chosen OS groups.
    ACTION: Please choose OS groups of which user is a member.
    INFO: Advice is ABORT
    OPER_GROUP没设置,设置一下,OK

    #####2018-11-28 系统还得有swap空间才行######
    [oracle@VM_12_97_centos database]$ ./runInstaller -silent -force -responseFile /data/database/response/db_install.rsp
    正在启动 Oracle Universal Installer…

    检查临时空间: 必须大于 120 MB。 实际为 42852 MB 通过
    检查交换空间: 可用的交换空间为 0 MB, 所需的交换空间为 150 MB。 未通过 <<<<

    未通过某些要求检查。必须先满足这些 要求,

    然后才能继续安装,
    dd if=/dev/zero of=/boot/swap bs=1024 count=8192000
    mkswap /boot/swap
    chmod 0600 /boot/swap
    [root@VM_12_97_centos database]# swapon /boot/swap
    swapon: /boot/swap:不安全的权限 0644,建议使用 0600。
    swapon: /boot/swap:swapon 失败: 设备或资源忙
    chmod 0600 /boot/swap
    swapoff /boot/swap
    swapon /boot/swap

    静默安装:
    ./runInstaller -silent -force -responseFile /data/database/response/db_install.rsp

    安装过程会提示执行root.sh,切换到root用户执行改脚本即可。

    安装过程如果出现FATEL ,就是出错了,查看出错日志。

    安装完了还要手动建库

    oracle 用户继续做建库的操作:
    cd $ORACLE_HOME/dbs
    cp init.ora initPYFUND.ora

    修改initPYFUND.ora:
    db_name=‘PYFUND’
    memory_target=2G
    processes = 150
    audit_file_dest=‘/data/oracle/product/11.2.0.4/db_1/oradata/adump’
    audit_trail =‘db’
    db_block_size=8192
    db_domain=‘’
    db_recovery_file_dest=‘/data/oracle/product/11.2.0.4/db_1/oradata/flash_recover_area’
    db_recovery_file_dest_size=2G
    diagnostic_dest=‘/data/oracle/product/11.2.0.4/db_1/oradata/’
    dispatchers=‘(PROTOCOL=TCP) (SERVICE=ORCLXDB)’
    open_cursors=300
    remote_login_passwordfile=‘EXCLUSIVE’
    undo_tablespace=‘undotbs’
    control_files = db(‘/data/oracle/product/11.2.0.4/db_1/oradata/pyfund01.ctl’,‘/data/oracle/product/11.2.0.4/db_1/oradata/pyfund02.ctl’)
    compatible =‘11.2.0’

    mkdir -p /data/oracle/product/11.2.0.4/db_1/oradata/adump
    mkdir -p /data/oracle/product/11.2.0.4/db_1/oradata/flash_recover_area
    (control_files的ctl文件不需要手动建)

    启动Oracle进程:

    $ lsnrctl start
    LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 14-NOV-2022 10:48:54
    
    Copyright (c) 1991, 2009, Oracle.  All rights reserved.
    
    Starting /data/oracle/product/11.2.0.4/db_1/bin/tnslsnr: please wait...
    
    TNSLSNR for Linux: Version 11.2.0.1.0 - Production
    Log messages written to /data/oracle/diag/tnslsnr/oracle-master/listener/alert/log.xml
    Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
    
    Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
    STATUS of the LISTENER
    ------------------------
    Alias                     LISTENER
    Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
    Start Date                14-NOV-2022 10:48:54
    Uptime                    0 days 0 hr. 0 min. 0 sec
    Trace Level               off
    Security                  ON: Local OS Authentication
    SNMP                      OFF
    Listener Log File         /data/oracle/diag/tnslsnr/oracle-master/listener/alert/log.xml
    Listening Endpoints Summary...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
    The listener supports no services
    The command completed successfully
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    建库脚本:/data/PYFUND.sql
    CREATE DATABASE PYFUND
    USER SYS IDENTIFIED BY oracle
    USER SYSTEM IDENTIFIED BY oracle
    LOGFILE GROUP 1 (‘/data/oracle/product/11.2.0.4/db_1/oradata/PYFUND/redo01a.log’) SIZE 2000M BLOCKSIZE 512,
    GROUP 2 (‘/data/oracle/product/11.2.0.4/db_1/oradata/PYFUND/redo02a.log’) SIZE 2000M BLOCKSIZE 512,
    GROUP 3 (‘/data/oracle/product/11.2.0.4/db_1/oradata/PYFUND/redo03a.log’) SIZE 2000M BLOCKSIZE 512
    MAXLOGFILES 5
    MAXLOGMEMBERS 5
    MAXLOGHISTORY 1
    MAXDATAFILES 1000
    CHARACTER SET ZHS16GBK
    NATIONAL CHARACTER SET AL16UTF16
    EXTENT MANAGEMENT LOCAL
    DATAFILE ‘/data/oracle/product/11.2.0.4/db_1/oradata/PYFUND/system01.dbf’ SIZE 300M REUSE
    SYSAUX DATAFILE ‘/data/oracle/product/11.2.0.4/db_1/oradata/PYFUND/sysaux01.dbf’ SIZE 300M REUSE
    DEFAULT TABLESPACE users
    DATAFILE ‘/data/oracle/product/11.2.0.4/db_1/oradata/PYFUND/users01.dbf’
    SIZE 5M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
    DEFAULT TEMPORARY TABLESPACE temp
    TEMPFILE ‘/data/oracle/product/11.2.0.4/db_1/oradata/PYFUND/temp01.dbf’
    SIZE 20M REUSE
    UNDO TABLESPACE undotbs
    DATAFILE ‘/data/oracle/product/11.2.0.4/db_1/oradata/PYFUND/undotbs01.dbf’
    SIZE 20M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

    sqlplus / as sysdba
    >startup nomount;
    >@/root/PYFUND.sql;
    
    • 1
    • 2
    • 3

    startup nomount如果报错,看日志
    /home/oracle/oradiag_oracle/diag/clients/user_oracle/host_1200893338_76/alert/log.xml

    Directory does not exist for read/write [/data/oracle/product/11.2.0.4/db_1/log] [/data/oracle/product/11.2.0.4/db_1/log/diag/clients]

    mkdir -p /data/oracle/product/11.2.0.4/db_1/log/diag
    mkdir -p  /data/oracle/product/11.2.0.4/db_1/log/diag/client
    
    • 1
    • 2

    还报错,原来是前面执行的时候,创建了control文件
    SQL> startup nomount;
    ORACLE instance started.

    Total System Global Area 4275781632 bytes
    Fixed Size 2220200 bytes
    Variable Size 2298482520 bytes
    Database Buffers 1962934272 bytes
    Redo Buffers 12144640 bytes
    SQL> @/data/oracle/sql/pyfund.sql;
    CREATE DATABASE PYFUND
    *
    ERROR at line 1:
    ORA-01501: CREATE DATABASE failed
    ORA-00200: control file could not be created
    ORA-00202: control file: ‘/data/oracle/product/11.2.0.4/db_1/dbs/ora_control1’
    ORA-27038: created file already exists
    Additional information: 1
    删掉即可

    
    rm  /data/oracle/product/11.2.0.4/db_1/dbs/ora_control1
    rm  /data/oracle/product/11.2.0.4/db_1/dbs/ora_control2
    
    • 1
    • 2
    • 3

    创建数字字典:

    >@$ORACLE_HOME/rdbms/admin/catalog.sql
    >@$ORACLE_HOME/rdbms/admin/catproc.sql
    >conn system/manager
    >@$ORACLE_HOME/sqlplus/admin/pupbld.sql
    
    • 1
    • 2
    • 3
    • 4

    要自己创建一个spfile

    create pfile from spfile

    查看MEMROY_TARGET的大小:

    >show parameter target; 
    
    • 1

    修改MEMORY_TARGET

    ALTER SYSTEM SET MEMORY_TARGET = 16384M SCOPE = both
    
    • 1

    修改MEMORY_MAX_TARGET的值:

    ALTER SYSTEM SET MEMORY_MAX_TARGET = 16G SCOPE = spfile
    
    • 1

    修改后重启收生效:

    SQL> shutdown immediate
    SQL> startup nomount;
    
    • 1
    • 2

    startup nomount的时候,ORA-00845: MEMORY_TARGET not supported on this system
    把 initPYFUND.ora文件里ORACLE MEMORY_TARGET参数设置超过了oracle服务器本身内存
    改小即可,或者把shm改大:增加一行 /etc/fstab, mount -o remount /dev/shm即可

    tmpfs    /dev/shm      tmpfs   defaults,size=24G        0 0
    
    • 1

    启动及报错日志:
    cd $ORACLE_HOME
    tail -f oradata/diag/rdbms/pyfund/PYFUND/alert/log.xml

    ORA-09925: Unable to create audit trail file
    ps -ef |grep smon
    把这个进程kill了,再sqlplus / as sysdba即可

    centos 7.2 安装KDE桌面环境,不然oracle 太多东西不能用了:

    yum groupinstall “KDE Plasma Workspaces”

    切换到图形界面:

    systemctl get-default

    安装GNOME也行,切换命令一样:

    yum groupinstall “GNOME Desktop”

  • 相关阅读:
    Go 微服务开发框架 DMicro 的设计思路
    java计算机毕业设计爱心公益网站设计与制作源码+系统+lw文档+mysql数据库+部署
    2、Elasticsearch分词器简介与使用(一)
    推荐系统:从经典模型到深度学习,你需要掌握什么?
    监听页面滚动位置定位底部按钮(包含页面初始化定位不对鼠标滑动生效的解决方案)
    Polygon zkEVM FFT和多项式evaluate计算的circom约束
    Android开机动画
    网安之python基础作业(2-3)
    权限系统设计
    软件测试需不需要懂代码?
  • 原文地址:https://blog.csdn.net/MRQ1734/article/details/127843237