Oracle

静默安装部署Oracle 19c版本

温馨提示:本文最后更新于2021-03-02 18:54:50,某些文章具有时效性,若有错误或已失效,请在下方留言或提交工单提交工单
浅时光 · 11月1日 · 2020年 本文8661个字,预计阅读22分钟 123062次已读
Oracle 19C安装包
价格:免费
    大小2.8G
    架构Linux x86-64
    版本19.3 - Enterprise Edition (also includes Standard Edition 2)

    一、环境准备


    1、硬件需求

    内存

    • 大于2 GB 以上
    • 查看内存大小
    grep MemTotal /proc/meminfo

    SWAP

    在Linux上,HugePages功能使用内存映射文件为大型页表分配不可交换的内存。如果启用了HugePages,则应在计算交换空间之前从可用的RAM中扣除分配给HugePages的内存。

    可用内存交换分区
    1 GB~2 GB1.5倍内存大小,4G左右
    2 GB~16 GB等同内存大小
    16GB+16GB
    • 查看交换分区大小:
    grep SwapTotal /proc/meminfo
    • 查看内存和交换分区:
    free

    ASM

    从Oracle Database 11原文链接:https://www.dqzboy.comg开始,自动内存管理功能需要更多的共享内存(/dev/shm)和文件描述符。共享内存的大小至少应大于该计算机上每个Oracle实例的MEMO文章来源(Source):浅时光博客RY_MAX_TARGETMEMORY_TARGET

    • 查看共享内存大小:
    df -h /dev/shm/
    • 可以通过如下命令修改shm的大小:
    mount -t tmpfs shmfs -o size=8g /dev/shm
    • 为了系统重启也可以生效,需要修改/etc/fstab文件,添加如下内容:
    echo "shmfs /dev/shm tmpfs size=8g 0 0" >> /etc/fstab
    • 注:当启用LOCK_SGA或在Linux上使用HugePages时,不能使用MEMORY_MAX_TARGETMEMORY_TARGET

    硬盘

    • 至少1GB可用空间,挂载在/tmp
    • 可用空间不够时,两种办法:
      • 1、删除/tmp下不必要的文件
      • 2、配置oracle用户的环境时,设置TMPTMPDIR环境变量。
    • 创建一个临时目录,并在该目录上设置适当的权限:
    [root@localhost ~]# mkdir -p /mount_point/tmp
    [root@localhost ~]# chmod a+wr /mount_point/tmp
    
    • 设置TMPTMPDIR环境变量:
    [root@localhost ~]# vim /etc/profile
    TMP=/mount_point/tmp
    TMPDIR=/mount_point/tmp
    export TMP TMPDIR
    
    [root@localhost ~]# source /etc/profile
    [root@localhost ~]# echo ${TMPDIR}
    /mount_point/tmp

    2、系统准备

    2.1:关闭防火墙

    [root@localhost ~]# systemctl stop firewalld
    [root@localhost ~]# systemctl disable firewalld

    2.2:关闭SELinux

    [root@localhost ~]# sed -ri 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
    [root@localhost ~]# setenforce 0 && getenforce

    2.3:增加Swap

    • 查看Swap空间大小,如果不足4G则手动扩容增大swap空间大小
    [root@localhost ~]# free -h|grep Swap
    Swap:          2.0G          0B        2.0G

    2.3.1文章来源(Source):https://www.dqzboy.com:创建swap文件

    • 指定swap文件的大小, 先指定区块大小:bs, 再指定区块数量count, 则swap文件的大小是: count*bs
    [root@localhost ~]# mkdir /opt/swap
    [root@localhost ~]# cd /opt/swap/
    [root@localhost swap]# dd if=/dev/zero of=/opt/swap/swapfile bs=1M count=8192

    2.3.2:指定作为交换区的文件

    [root@localhost swap]# mkswap swapfile
    正在设置交换空间版本 1,大小 = 8388604 KiB
    无标签,UUID=89a92f48-a873-42e0-a057-e8ab1fc86ff5

    2.3.3:激活交换分区

    [root@localhost swap]# swapon /opt/swap/swapfile
    [root@localhost swap]# free -h|grep Swap
    Swap:            9G          0B          9G

    2.3.4:设置开机时启用swap

    [root@localhost swap]# echo "/opt/swap/swapfile swap swap defaults 0 0" >> /etc/fstab
    [root@localhost swap]# tail -1 /etc/fstab
    /opt/swap/swapfile swap swap defaults 0 0

    2.3.5:确认swap已经被使用

    [root@localhost swap]# swapon -s

    2.4:修改系统版本

    • 修改系统版本,绕过安装时进行的系统检测
    [root@localhost ~]# vim /etc/redhat-release
    #将原先的值注释或者删除,然后修改为下面的值
    redhat-7

    2.5:安装依赖包

    • 安装Oracle19c可能需要的Centos操作系统的基础RPM包,共41个
    • 更换为腾讯的BASE和epel镜像源,下载快点
    #备份系统官方BASE源,如有配置其他epel源则需要先备份
    [root@localhost ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
    [root@localhost ~]# mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
    
    #下载腾讯YUM源
    [root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
    [root@localhost ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo
    #生成缓存
    [root@localhost ~]# yum clean all
    [root@localhost ~]# yum makecache
    
    [root@localhost ~]# yum install -y bc binutils compat-libcap1 compat-libstdc++ dtrace-modules dtrace-modules-headers dtrace-modules-provider-headers dtrace-utils elfutils-libelf elfutils-libelf-devel fontconfig-devel gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libdtrace-ctf-devel libX11 libXau libXi libXtst libXrender libXrender-devel libgcc librdmacm-devel libstdc++ libstdc++-devel libxcb make net-tools nfs-utils python python-configshell python-rtslib python-six smartmontools sysstat targetcli unixODBC xorg-x11-xauth tigervnc-server zip unzip smartmontools lrzsz readline readline-devel unixODBC-devel
    
    原文链接:https://www.dqzboy.com
    • 手动安装以下的包
    [root@localhost ~]# wget http://mirror.centos.org/centos/7/os/x86_64/Packages/compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
    [root@localhost ~]# rpm -Uvh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
    

    2.6:系统内核优化

    [root@localhost ~]# vim /etc/sysctl.conf
    net.ipv4.icmp_echo_ignore_broadcasts = 1
    net.ipv4.conf.all.rp_filter = 1
    #设置最大打开文件数
    fs.file-max = 6815744
    fs.aio-max-nr = 1048576
    #共享内存的页数,Linux共享内存页大小为4KB,8G内存按照官方设置为内存的1/2,我物理内存4G,设置为2G:2*1024*1024*1024/4096=(kernel.shmmax/4k)=1572864
    kernel.shmall = 524288
    #最大共享内存,官方文档建议是内存的1/2,我物理内存4G,设置为2G:2*1024*1024*1024 = 2147483648
    kernel.shmmax = 2147483648
    kernel.shmmni = 4096
    kernel.sem = 250 32000 100 128
    #tcp参数设置
    #可使用的IPv4端口范围(TCP/UDP协议允许使用的本地端口号)
    net.ipv4.ip_local_port_range = 9000 65500
    #默认&最大的TCP数据接收窗口大小(字节)
    net.core.rmem_default = 262144
    net.core.rmem_max= 4194304
    #默认&最大的TCP数据发送窗口大小(字节)
    net.core.wmem_default= 262144
    net.core.wmem_max= 1048576
    
    • 使内核参数立即生效
    [root@localhost ~]# sysctl -p 	#或者 sysctl --system

    2.7、提高软件运行性能

    [root@localhost ~]# vim /etc/security/limits.conf
    oracle soft nproc 2047
    oracle hard nproc 16384
    oracle soft nofile 1024
    oracle hard nofile 65536
    

    二、开始部署


    • 创建 oracle 目录,授权,cd到oracle安装包路径下,解压oracle到 $ORACL原文链接:https://www.dqzboy.comE_HOME 目录下,然后执行 runInstaller 安装
    • 【注意】从18c开始,安装包必须解压到 $ORACLE_HOME 路径下进行安装!

    1、创建用户

    • 创建Oracle相关用户和组
    [root@localhost ~]# groupadd -g 54321 oinstall
    [root@localhost ~]# groupadd -g 54322 dba
    [root@localhost ~]# groupadd -g 54324 backupdba
    [root@localhost ~]# groupadd -g 54325 dgdba
    [root@localhost ~]# groupadd -g 54326 kmdba
    [root@localhost ~]# groupadd -g 54327 asmdba
    [root@localhost ~]# groupadd -g 54328 asmoper
    [root@localhost ~]# groupadd -g 54330 racdba
    
    • 创建oracle用户
    [root@localhost ~]# useradd -u 54321 -g oinstall -G dba,asmdba,backupdba,dgdba,kmdba,racdba oracle
    • 设置Oracle用户的密码
    [root@localhost ~]# echo "dqz123" | passwd --stdin oracle

    2、创建目录

    mkdir -p /opt/oracle
    mkdir -p /opt/oraInventory
    mkdir -p /opt/database
    mkdir -p /opt/oracle/product/19.3.0
    mkdir -p /opt/oracle/oradata
    mkdir -p /opt/oracle/flash_recovery_area
    mkdir -p /opt/oracle/product/19.3.0/db_1
    
    chown -R oracle:oinstall /opt/oracle
    chown -R oracle:oinstall /opt/oracle/oradata
    chown -R oracle:oinstall /opt/oraInventory
    chown -R oracle:oinstall /opt/database
    
    chmod -R 775 /opt/oracle
    
    • 配置Oracle用户的环境变量
    # su - oracle
    $ vim .bash_profile
    末尾添加环境变量配置内容如下:
    umask 022
    #oracle数据库安装目录
    export ORACLE_BASE=/opt/oracle
    #oracle数据库路径
    export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/db_1
    #oracle启动数据库实例名
    export ORACLE_SID=orcl
    #xterm窗口模式安装
    export ORACLE_TERM=xterm
    #配置时间格式
    NLS_DATE_FORMAT="YYYY:MM:DDHH24:MI:SS"
    #添加系统环境变量
    export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
    #添加系统环境变量
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
    #防止安装过程出现乱码
    #export LANG=en_US.gbk
    export LANG=en_US.UTF-8
    #设置Oracle客户端字符集,必须与Oracle安装时设置的字符集保持一致,
    #export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
    export NLS_LANG=AMERICAN_AMERICA.UTF8
    
    • 生效环境变量
    # 重新登录或者执行source 立即生效
    $ source /home/oracle/.bash_profile
    
    • 检查环境变量是否生效
    $ echo $ORACLE_HOME

    3、下载安装

    • 官方下载地址:Oracle19c
    • 官方下载慢的同学,可以使用本文章所使用Oracle版本的安装包,可在本文登入后进行获取下载
    静默安装部署Oracle 19c版本-浅时光博客
    • 将下载的zip包上传到/opt目录下。然后解压到ORACLE_HOME目录下
    • 切换到oracle用户解压安装zip包
    [root@localhost ~]# su - oracle
    [oracle@localhost ~]$ cd /opt/
    [oracle@localhost opt]$ unzip -q LINUX.X64_193000_db_home.zip -d $ORACLE_HOME
    

    4、修改响应文件

    • 修改响应文件 db_install.rsp
    • 统一复制响应文件到/home/oracle/下面,然后再授权和修改响应文件Oracle 11/12解压后response目录,下面包含 dbca.rsp (用来创建数据库的), db_install.rsp (用来安装Oracle软件),netca.rsp(用来创建监听器) 三个文件
    • Oracle 19c解压后response目录下,只包含 db_install.rsp (用来安装Oracle软件),dbca.rsp$ORACLE_HOME/assistants/dbca/dbca.rsp
    [oracle@localhost opt]$ cd $ORACLE_HOME
    [oracle@localhost db_1]$ find ./ -name dbca.rsp
    ./assistants/dbca/dbca.rsp
    
    [oracle@localhost db_1]$ cp -r $ORACLE_HOME/install/response /home/oracle
    
    [oracle@localhost db_1]$ vim /home/oracle/response/db_install.rsp
    oracle.install.option=INSTALL_DB_SWONLY
    #ORACLE_HOSTNAME=localhost #如果修改过hostname则需要设置正确,否则可以不设置
    UNIX_GROUP_NAME=oinstall
    INVENTORY_LOCATION=/opt/oraInventory
    ORACLE_HOME=/opt/oracle/product/19.3.0/db_1
    ORACLE_BASE=/opt/oracle
    oracle.install.db.InstallEdition=EE
    oracle.install.db.OSDBA_GROUP=dba
    oracle.install.db.OSOPER_GROUP=oinstall
    oracle.install.db.OSBACKUPDBA_GROUP=backupdba
    oracle.install.db.OSDGDBA_GROUP=dgdba
    oracle.install.db.OSKMDBA_GROUP=kmdba
    oracle.install.db.OSRACDBA_GROUP=racdba
    oracle.install.db.rootconfig.executeRootScript=true
    oracle.install.db.rootconfig.configMethod=ROOT
    
    静默安装部署Oracle 19c版本-浅时光博客
    静默安装部署Oracle 19c版本-浅时光博客
    静默安装部署Oracle 19c版本-浅时光博客
    静默安装部署Oracle 19c版本-浅时光博客

    【注意】如果服务器设置了 hostname,则 ORACLE_HOSTNAME 需要设置一致。需要进行 vim /etc/hosts 修改,设置 hostname 相关的修改

    5、开始安装

    • 以 oracle 用户开始静默安装数据库
    [oracle@localhost ~]$ $ORACLE_HOME/runInstaller -silent -ignorePrereq -responseFile /home/oracle/response/db_install.rsp

    【注意】安装过程中会提示输入root用户密码以执行脚本;安装会提示安装的日志文件,可以通过日志文件查看静默安装的进展和信息

    • 安装成功后提示信息如下:
    静默安装部署Oracle 19c版本-浅时光博客
    静默安装部署Oracle 19c版本-浅时光博客

    6、启动监听

    [root@localhost ~]# su - oracle
    [oracle@localhost ~]$ lsnrctl start
    [oracle@localhost ~]$ netstat -an |grep 1521
    

    7、创建数据库

    • 静默方式使用dbca.rsp来创建数据库
    [oracle@localhost ~]$ cp $ORACLE_HOME/assistants/dbca/dbca.rsp /home/oracle/response/
    • 设置以下参数(注意:Oracle11g安装时字符串参数带引号输入,但Oracle 19c需要删除引号,否则会报错,变量设置路径是也不支持$ORACLE_BASE的写法)
    [oracle@localhost ~]$ vim /home/oracle/response/dbca.rsp
    gdbName=orcl
    sid=orcl
    #Oracle自带的默认建库模板 General_Purpose.dbc,文件位于 $Oracle_HOME/assistants/dbca/templates/General_Purpose.dbc,这里设置等同于 dbca 加参数 -templateName General_Purpose.dbc
    templateName=General_Purpose.dbc
    sysPassword=dqz123
    systemPassword=dqz123
    dbsnmpPassword=dqz123
    #datafileDestination 为所有数据文件的目标位置,如果不设置默认为 $ORACLE_BASE/oradata
    datafileDestination=/opt/oracle/oradata
    #recoveryAreaDestination 为恢复区位置,如果不设置默认为 $ORACLE_BASE/flash_recovery_area
    recoveryAreaDestination=/opt/oracle/flash_recovery_area
    characterSet=AL32UTF8
    databaseType=OLTP
    # totalMemory 为6553MB,物理内存4G*80%,我设置为2G = 2048 ,注意:如果设置超过 kernel.shmmax 建库时会报错
    totalMemory=2048
    
    静默安装部署Oracle 19c版本-浅时光博客
    静默安装部署Oracle 19c版本-浅时光博客
    静默安装部署Oracle 19c版本-浅时光博客
    静默安装部署Oracle 19c版本-浅时光博客
    静默安装部署Oracle 19c版本-浅时光博客
    静默安装部署Oracle 19c版本-浅时光博客
    静默安装部署Oracle 19c版本-浅时光博客
    静默安装部署Oracle 19c版本-浅时光博客
    静默安装部署Oracle 19c版本-浅时光博客
    静默安装部署Oracle 19c版本-浅时光博客
    • 使用dbca.rsp静默建库(注意:#responseFile必须使用绝对路径)
    [oracle@localhost ~]$ dbca -silent -createDatabase -responseFile /home/oracle/response/dbca.rsp
    静默安装部署Oracle 19c版本-浅时光博客

    注意:如果建库时提示 SYS 和 SYSTEM 密码太短,直接忽略该告警

    • 建库完毕后,查看监听器状态和端口
    [oracle@localhost ~]$ lsnrctl status
    静默安装部署Oracle 19c版本-浅时光博客
    • 接下来需要创用户、表空间和授权远程访问等操作。参考图形化安装的创建用户、表空间、授权等操作即可



    本文作者:浅时光
    原文链接:https://www.dqzboy.com/4187.html
    版权声明:知识共享署名-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)协议进行许可
    转载时请以超链接形式标明文章原始出处和作者信息

    0 条回应

    必须 注册 为本站用户, 登录 后才可以发表评论!

      本站已稳定运行: | 耗时 0.683 秒 | 查询 35 次 | 内存 14.02 MB