Oracle 19c 安装文档

一 注意事项

  1. 最好使用Centos7系统, 本教程基于CentOS-7-x86_64-Minimal-2009所写

  2. 服务器内存不要低于2G, 虽然1G可以跑Oracle 但是比较卡

  3. 默认系统内核参数不适用与运行Oracle 建议修改内核参数

  4. 如不能访问请确保防火墙是否放行默认端口 1521, 不知道的话就直接关闭防火墙

    systemctl stop firewalld.service     # 关闭防火墙
    systemctl disable firewalld.service  # 禁用自启动
    
  5. 在10和12步均有密码配置, 本文使用的是123456作为密码, 安装时自行修改

  6. 用户创建的时候使用的是DsiCHFuZ5作为用户密码, 主要是考虑到免输入密码

二 安装教程

01. 关闭防火墙

systemctl stop firewalld && systemctl disable firewalld

02. 安装依赖项

  1. 离线安装教程

    # 上传依赖包, 这里采用的是内网传输的方式
    curl -o /root/package.tar.gz http://10.100.2.130:1234/package.tar.gz
    # 解压依赖包
    tar -zvxf /root/package.tar.gz
    # 安装依赖包
    rpm -Uvh --force --nodeps /root/package/*.rpm
    
  2. 在线安装教程

    # 更新下载源(非必须)
    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
    curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
    yum clean all
    yum makecache
    
    # 安装依赖包
    yum install -y wget vim unzip bc binutils compat-libcap1 compat-libstdc++-33 dtrace-utils
    yum install -y elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel ksh
    yum install -y libaio libaio-devel libdtrace-ctf-devel libXrender libXrender-devel libX11
    yum install -y libXau libXi libXtst libgcc librdmacm-devel libstdc++ libstdc++-devel libxcb
    yum install -y make net-tools nfs-utils python python-configshell python-rtslib python-six
    yum install -y targetcli smartmontools sysstat unixODBC
    

03. 创建用户和组

groupadd -g 54321 oinstall
groupadd -g 54322 dba
#groupadd -g 54323 oper
#groupadd -g 54324 backupdba
#groupadd -g 54325 dgdba
#groupadd -g 54326 kmdba
#groupadd -g 54327 asmdba
#groupadd -g 54328 asmoper
#groupadd -g 54329 asmadmin
#groupadd -g 54330 racdba
useradd -u 54321 -g oinstall -G dba oracle
echo 'DsiCHFuZ5' | passwd --stdin oracle

04. 创建安装目录

mkdir -p /u01
# mount /dev/sdb1 /u01
mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1
mkdir -p /u01/app/oracle/oradata
mkdir -p /u01/app/oraInventory

05. 添加环境变量

echo 'export ORACLE_HOSTNAME=server.oracle' >> /home/oracle/.bashrc
echo 'export ORACLE_UNQNAME=cdb1' >> /home/oracle/.bashrc
echo 'export ORACLE_BASE=/u01/app/oracle' >> /home/oracle/.bashrc
echo 'export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1' >> /home/oracle/.bashrc
echo 'export ORA_INVENTORY=/u01/app/oraInventory' >> /home/oracle/.bashrc
echo 'export ORACLE_SID=orcl' >> /home/oracle/.bashrc
echo 'export PDB_NAME=orclpdb' >> /home/oracle/.bashrc
echo 'export DATA_DIR=$ORACLE_BASE/oradata' >> /home/oracle/.bashrc
echo 'export PATH=/usr/sbin:/usr/local/bin:$PATH' >> /home/oracle/.bashrc
echo 'export PATH=$ORACLE_HOME/bin:$PATH' >> /home/oracle/.bashrc
echo 'export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib' >> /home/oracle/.bashrc
echo 'export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib' >> /home/oracle/.bashrc
source /home/oracle/.bashrc

06. 修改内核参数

export SYSCTL_CONFIG=/etc/sysctl.d/98-oracle.conf
echo 'kernel.shmmax = 2147483648' >> $SYSCTL_CONFIG
echo 'kernel.shmmni = 4096' >> $SYSCTL_CONFIG
echo 'kernel.shmall = 2097152' >> $SYSCTL_CONFIG
echo 'kernel.sem = 250 32000 100 128' >> $SYSCTL_CONFIG
echo 'fs.file-max = 6815744' >> $SYSCTL_CONFIG
echo 'fs.aio-max-nr = 1048576' >> $SYSCTL_CONFIG
echo 'kernel.panic_on_oops = 1' >> $SYSCTL_CONFIG
echo 'net.ipv4.ip_local_port_range = 9999 65000' >> $SYSCTL_CONFIG
echo 'net.core.rmem_default = 262144' >> $SYSCTL_CONFIG
echo 'net.core.rmem_max = 262144' >> $SYSCTL_CONFIG
echo 'net.core.wmem_default = 262144 ' >> $SYSCTL_CONFIG
echo 'net.core.wmem_max = 262144' >> $SYSCTL_CONFIG
sysctl -p $SYSCTL_CONFIG && export -n SYSCTL_CONFIG
echo 'oracle   soft   nofile   10240' >> /etc/security/limits.conf
echo 'oracle   hard   nofile   65536' >> /etc/security/limits.conf
echo 'oracle   soft   nproc    16384' >> /etc/security/limits.conf
echo 'oracle   hard   nproc    16384' >> /etc/security/limits.conf
echo 'oracle   soft   stack    10240' >> /etc/security/limits.conf
echo 'oracle   hard   stack    32768' >> /etc/security/limits.conf
echo 'oracle   hard   memlock  134217728' >> /etc/security/limits.conf
echo 'oracle   soft   memlock  134217728' >> /etc/security/limits.conf

07. 下载安装程序

# 下载安装程序包, 也可以使用其他方式上传到linux, 这里采用的是内网传输的方式
wget -P /root http://10.100.2.130:1234/LINUX.X64_193000_db_home.zip

08. 解压安装程序

# 解压安装程序到之前创建的目录下
unzip -o /root/LINUX.X64_193000_db_home.zip -d $ORACLE_HOME

09. 修改用户权限

# 赋予oracle用户和oinstall用户组控制/u01/app目录的权限
chown -R oracle.oinstall /u01/app && chmod -R 775 /u01/app

10. 开始安装程序

su oracle               # 切换到oracle用户

# 开始安装, 此步骤有点久,是异步安装, 安装好后有提示切换到oracle用户并允许下面2行命令
# 以下涉及到数据库密码, 该文章使用的是123456作为 sys system 的密码, 请自行修改名密码
$ORACLE_HOME/runInstaller -ignorePrereq -waitforcompletion -silent \
  -responseFile ${ORACLE_HOME}/install/response/db_install.rsp     \
  oracle.install.option=INSTALL_DB_SWONLY                          \
  ORACLE_HOSTNAME=${ORACLE_HOSTNAME}                               \
  UNIX_GROUP_NAME=oinstall                                         \
  INVENTORY_LOCATION=${ORA_INVENTORY}                              \
  SELECTED_LANGUAGES=en,zh_CN                                      \
  ORACLE_HOME=${ORACLE_HOME}                                       \
  ORACLE_BASE=${ORACLE_BASE}                                       \
  oracle.install.db.InstallEdition=EE                              \
  oracle.install.db.OSDBA_GROUP=dba                                \
  oracle.install.db.OSOPER_GROUP=dba                               \
  oracle.install.db.OSBACKUPDBA_GROUP=dba                          \
  oracle.install.db.OSDGDBA_GROUP=dba                              \
  oracle.install.db.OSKMDBA_GROUP=dba                              \
  oracle.install.db.OSRACDBA_GROUP=dba                             \
  oracle.install.db.config.starterdb.globalDBName=orcl             \
  oracle.install.db.config.starterdb.SID=orcl                      \
  oracle.install.db.config.starterdb.memoryLimit=512               \
  oracle.install.db.config.starterdb.password.ALL=123456           \
  oracle.install.db.config.starterdb.password.SYS=123456           \
  oracle.install.db.config.starterdb.password.SYSTEM=123456        \
  DECLINE_SECURITY_UPDATES=true
exit                    # 切换到root用户
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/19.0.0/dbhome_1/root.sh

11. 启动监听器

su oracle -lc 'lsnrctl start'

12. 创建数据库

su oracle                    # 切换到oracle用户

# 以下涉及到数据库密码, 该文章使用的是123456作为 sys system 的密码, 请自行修改名密码
dbca -silent -createDatabase -ignorePreReqs                                    \
     -templateName General_Purpose.dbc                                         \
     -gdbname ${ORACLE_SID} -sid  ${ORACLE_SID} -responseFile NO_VALUE         \
     -characterSet AL32UTF8                                                    \
     -sysPassword 123456                                                       \
     -systemPassword 123456                                                    \
     -createAsContainerDatabase true                                           \
     -numberOfPDBs 1                                                           \
     -pdbName ${PDB_NAME}                                                      \
     -pdbAdminPassword 123456                                                  \
     -databaseType MULTIPURPOSE                                                \
     -memoryMgmtType auto_sga                                                  \
     -totalMemory 2000                                                         \
     -storageType FS                                                           \
     -datafileDestination "${DATA_DIR}"                                        \
     -redoLogFileSize 50                                                       \
     -emConfiguration NONE

# 如果提示没有实例正在运行, 运行下面命令
su oracle -lc 'dbstart'

13. 设置开机自启

exit      # 切换到root用户

# 替换/etc/oratab文件的实例重启标志改为Y
sed -i 's/:N/:Y/g' /etc/oratab

14. 一键执行脚本

vim /root/oracle
#! /bin/bash
# chkconfig: 234 61 61
# description: Oracle 11g AutoRun Service
# /etc/rc.d/init.d/oracle

case "$1" in
    start)
        # starts oracle listener and instance
        echo "Starting Oracle Database:"
        su oracle -lc "lsnrctl start"
        su oracle -lc dbstart
        ;;
    stop)
        # shutdown oracle listner and instance
        echo "Shuting down Oracle Database:"
        su oracle -lc "lsnrctl stop"
        su oracle -lc dbshut
        ;;
    reload|restart)
        $0 stop
        $0 start
        ;;
    *)
        echo "Usage: {start|stop|reload|restart}"
        exit 1
esac
exit 0
chmod 770 /root/oracle

三 其他文档

01. 参考文章

linux 安装oracle数据库

https://oracle-base.com/articles/19c/oracle-db-19c-installation-on-oracle-linux-7

切换Centos数据源

https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b11fhySEa

服务器重启后, 启动数据库

https://www.cnblogs.com/mingforyou/p/7374565.html

离线RPM包下载及安装

https://my.oschina.net/daodaotest/blog/4373517

linux tar 文件解压工具

https://blog.csdn.net/kkw1992/article/details/80000653

02. Linux命令

命令: lsblk [查看分区详情]

用法:
 lsblk [选项] [<设备> ...]

选项:
 -a, --all            打印所有设备
 -b, --bytes          以字节为单位而非易读的格式来打印 SIZE
 -d, --nodeps         不打印从属设备(slave)或占位设备(holder)
 -D, --discard        打印时丢弃能力
 -e, --exclude <列表> 根据主设备号排除设备(默认:内存盘)
 -I, --include <列表> 只显示有指定主设备号的设备
 -f, --fs             输出文件系统信息
 -h, --help           使用信息(此信息)
 -i, --ascii          只使用 ascii 字符
 -m, --perms          输出权限信息
 -l, --list           使用列表格式的输出
 -n, --noheadings     不打印标题
 -o, --output <列表>  输出列
 -p, --paths          打印完整设备路径
 -P, --pairs          使用 key=“value” 输出格式
 -r, --raw            使用原生输出格式
 -s, --inverse        反向依赖
 -t, --topology       输出拓扑信息
 -S, --scsi           输出有关 SCSI 设备的信息

 -h, --help     显示此帮助并退出
 -V, --version  输出版本信息并退出

命令: fdisk [硬盘分区工具]

用法:
 fdisk [选项] <磁盘>    更改分区表
 fdisk [选项] -l <磁盘> 列出分区表
 fdisk -s <分区>        给出分区大小(块数)

选项:
 -b <大小>             扇区大小(512、1024、2048或4096)
 -c[=<模式>]           兼容模式:“dos”或“nondos”(默认)
 -h                    打印此帮助文本
 -u[=<单位>]           显示单位:“cylinders”(柱面)或“sectors”(扇区,默认)
 -v                    打印程序版本
 -C <数字>             指定柱面数
 -H <数字>             指定磁头数
 -S <数字>             指定每个磁道的扇区数
上一篇:Thymeleaf 学习笔记


下一篇:如何使用RPM安装ORACLE-19c数据库