一、服务器环境
1.1. 服务器硬件配置
【System x3650 M5】32核 128G内存
1.2. 操作系统版本
Oracle Linux Server 7.9
二、安装Oracle数据库的所有先决条件
2.1. 检查内核版本
~]# uname -a
Linux etdb.zytk.com 5.4.17-2011.6.2.el7uek.x86_64 #2 SMP Thu Sep 3 14:09:14 PDT 2020 x86_64 x86_64 x86_64 GNU/Linux
~]# cat /etc/os-release
NAME="Oracle Linux Server"
VERSION="7.9"
ID="ol"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="7.9"
PRETTY_NAME="Oracle Linux Server 7.9"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:oracle:linux:7:9:server"
HOME_URL="https://linux.oracle.com/"
BUG_REPORT_URL="https://bugzilla.oracle.com/"
ORACLE_BUGZILLA_PRODUCT="Oracle Linux 7"
ORACLE_BUGZILLA_PRODUCT_VERSION=7.9
ORACLE_SUPPORT_PRODUCT="Oracle Linux"
ORACLE_SUPPORT_PRODUCT_VERSION=7.9
2.2. 配置/etc/hosts文件
使用root用户执行如下命令,将主机IP地址与主机名写入到/etc/hosts文件中。
IP_LIST=`ip -4 addr show |grep inet |grep -v 127.0.0.1|grep -v virbr0 | awk '{print $2}'|cut -d'/' -f1`
for IP_ADDR in $IP_LIST
do
if [ -z $($cat /etc/hosts |grep "$IP_ADDR `hostname`") ];then
echo "$IP_ADDR `hostname`" >> /etc/hosts
fi
done
2.3. 安装Oracle数据库先决条件
下载Oracle19c预安装包:
http://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
将下载的文件存放到服务器的 /root
目录下,进入下面的安装。
# 下载oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm安装
~]# yum install /root/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
# 配置好YUM源安装
~]# yum install oracle-database-preinstall-19c.x86_64
oracle-database-preinstall-19c.x86_64的准备工具会自动完成用户和用户组的创建、系统参数配置、依赖包检查与安装,实现一键准备好oracle安装环境。
备注:如果是在centos或者rhel等没有oracle的yum源上要先设置源
wget http://public-yum.oracle.com/public-yum-ol7.repo -O /etc/yum.repos.d/public-yum-ol7.repo
wget http://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol7 -O /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
或者直接这样
yum install -y https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-2.el7.x86_64.rpm
2.4. 检查先决条件安装
2.2安装完成后,实际上就完成了如下的工作:创建oracle用户、系统内核参数的调整、安全限制的配置以及安装Oracle软件时需要的依赖包。
以下内容只要检查,不需要再次配置。
- a. Oracle用户
~]# id oracle
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54330(racdba)
- b. 内核参数
~]# cat /etc/sysctl.d/99-oracle-database-preinstall-19c-sysctl.conf
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
acpi_pad.disable=1
# oracle-database-preinstall-19c setting for fs.file-max is 6815744
fs.file-max = 6815744
# oracle-database-preinstall-19c setting for kernel.sem is '250 32000 100 128'
kernel.sem = 250 32000 100 128
# oracle-database-preinstall-19c setting for kernel.shmmni is 4096
kernel.shmmni = 4096
# oracle-database-preinstall-19c setting for kernel.shmall is 1073741824 on x86_64
kernel.shmall = 1073741824
# oracle-database-preinstall-19c setting for kernel.shmmax is 4398046511104 on x86_64
kernel.shmmax = 4398046511104
# oracle-database-preinstall-19c setting for kernel.panic_on_oops is 1 per Orabug 19212317
kernel.panic_on_oops = 1
# oracle-database-preinstall-19c setting for net.core.rmem_default is 262144
net.core.rmem_default = 262144
# oracle-database-preinstall-19c setting for net.core.rmem_max is 4194304
net.core.rmem_max = 4194304
# oracle-database-preinstall-19c setting for net.core.wmem_default is 262144
net.core.wmem_default = 262144
# oracle-database-preinstall-19c setting for net.core.wmem_max is 1048576
net.core.wmem_max = 1048576
# oracle-database-preinstall-19c setting for net.ipv4.conf.all.rp_filter is 2
net.ipv4.conf.all.rp_filter = 2
# oracle-database-preinstall-19c setting for net.ipv4.conf.default.rp_filter is 2
net.ipv4.conf.default.rp_filter = 2
# oracle-database-preinstall-19c setting for fs.aio-max-nr is 1048576
fs.aio-max-nr = 1048576
# oracle-database-preinstall-19c setting for net.ipv4.ip_local_port_range is 9000 65500
net.ipv4.ip_local_port_range = 9000 65500
- c. 安全限制
~]# cat /etc/security/limits.d/oracle-database-preinstall-19c.conf
# oracle-database-preinstall-19c setting for nofile soft limit is 1024
oracle soft nofile 1024
# oracle-database-preinstall-19c setting for nofile hard limit is 65536
oracle hard nofile 65536
# oracle-database-preinstall-19c setting for nproc soft limit is 16384
# refer orabug15971421 for more info.
oracle soft nproc 16384
# oracle-database-preinstall-19c setting for nproc hard limit is 16384
oracle hard nproc 16384
# oracle-database-preinstall-19c setting for stack soft limit is 10240KB
oracle soft stack 10240
# oracle-database-preinstall-19c setting for stack hard limit is 32768KB
oracle hard stack 32768
# oracle-database-preinstall-19c setting for memlock hard limit is maximum of 128GB on x86_64 or 3GB on x86 OR 90 % of RAM
oracle hard memlock 134217728
# oracle-database-preinstall-19c setting for memlock soft limit is maximum of 128GB on x86_64 or 3GB on x86 OR 90% of RAM
oracle soft memlock 134217728
三、安装Oracle软件
3.1. 创建目录
mkdir -p /u01/app/oraInventory
mkdir -p /u01/app/oracle/product/19.3.0/db_1
chown -R oracle:oinstall /u01/app/oraInventory
chown -R oracle:oinstall /u01/app/oracle
3.2. 配置Oracle用户的环境变量
~]# su - oracle
~]$ vim ~/.bash_profile
在配置文件的末尾添加环境变量,内容如下:
umask 022
#oracle数据库安装目录
export ORACLE_BASE=/u01/app/oracle
#oracle数据库路径
export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/db_1
#oracle启动数据库实例名
export ORACLE_SID=catalogdb
#xterm窗口模式安装
export ORACLE_TERM=xterm
#配置时间格式
NLS_DATE_FORMAT="YYYY-MM-DD HH24: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.AL32UTF8
3.3. 生效环境变量
# 重新登录或者执行source 立即生效
~]$ source ~/.bash_profile
3.4. 解压Oracle安装软件到ORACLE_HOME目录
1)从Oracle官网下载Oracle19c的安装包到/media目录下。
官方下载地址:https://www.oracle.com/database/technologies/oracle-database-software-downloads.html
2)解压Oracle安装软件到ORACLE_HOME目录
使用oracle用户登录图形界面,并打开一个终端,运行如下命令:
unzip /home/oracle/LINUX.X64_193000_db_home.zip -d $ORACLE_HOME/
19.10版本的安装包文件为:V982063-01.zip
3) 运行runInstaller进行Oracle软件的安装
cd $ORACLE_HOME
./runInstaller
弹出图形界面,进行Oracle软件的安装:
3.5. 图形化安装Oracle软件
1) 选择安装选项(Select Configuration Option)
这里先仅安装Oracle软件,之后再用dbca命令创建数据库。
2) 选择数据库安装选项(Select Database Installation Option)
这里选择单实例数据库安装。
3) 选择数据库版本(Select Database Edition)
这里选择企业版。
4) 指定安装位置(Specify Installation Location)
由于oracle安装目录已经在环境变量中配置了,无须修改。
同样在环境变量中配置了ORACLE_BASE目录,产品清单目录会放置在该文件夹内。
6) 已授权的操作系统组(Privileged Operating System groups)
在使用yum安装oracle-database-preinstall-19c.x86_64时已经创建好了这些操作系统组,无须修改。
7) 根脚本执行配置(Root script execution configuration)
选中标记为“自动运行配置脚本”的复选框,然后输入root用户凭据。 指定root用户凭据以便在安装结束时自动运行特定配置脚本的步骤是可选的。 出于此参考环境的目的,将提供root用户密码以加快Oracle Database 安装过程。
8) 执行先决条件检查(Perform Prerequisite Checks)
如果有不通过的选项,逐一排查解决。
查看提供的所有信息,确认无误后点击“安装(Install)”。
选择“是”。
四、dbca创建数据库
上面的操作结束后,继续在shell下运行dbca
命令进行数据库的创建
1)选择数据库操作(Select Database Operation)
选择“创建数据库”。
2)选择数据库创建模式(Select Database Creation Mode)
选择“高级配置”。
3) 选择数据库部署类型(Select Database Deployment Type)
选择“Oracle单实例数据库”、“一般用途或事务处理”。
4) 指定数据库标识详细信息(Specify Database Identification Details)
输入数据库SID:catalogdb
5) 选择数据库存储选项(Select Database Storage Option)
数据库文件存储类型:文件系统
数据库文件位置:生产环境需要选择合适的存放位置,如存储设备;测试环境使用默认位置,即在$ORACLE_BASE
目录下。
6) 选择快速恢复选项(Select Fast Recovery Option)
生产环境需要设定快速恢复区位置,测试环境可不设置。
7) 指定网络配置详细信息(Specify Network Configuration Details)
创建一个监听,监听程序名称为:LISTENER 监听程序端口:1521
8) 选择 Oracle Data Vault 配置选项(Select Oracle Data Vault Config Option)
这里不用选择。
9) 指定配置选项(Specify Configuration Options)
这里可以“使用自动共享内存管理(Use Automatic Shared Memory Management)”,或者“使用自动内存管理(Use Automatic Memory Management)”。在测试环境中可以将sga与pga的大小按1:2的比例分配,但是在生产环境中需要将sga与pga的大小按2:1的比例分配,视具体业务而定。
oracle连接的进程数,测试环境可设定为600,生产环境视服务器配置而定。
字符集可选择“ZHS16GBK-GBK 16-bit Simplified Chinese”,也可使用“AL32UTF8”,视情况而定。
数据库连接模式为:专用服务器模式(Dedicated server mode)
10) 指定管理选项(Specify Management Options)
不需要配置EM
11) 指定数据库用户身份证明(Specify Database User Credentials)
设定数据库管理账户(sys,system)的密码。 Xxx!Acn%7yrW
12) 选择数据库创建选项(Select Database Creation Option)
至此,Oracle数据库的安装就全部结束了。
五、设置数据库开机启动
5.1. 修改/etc/oratab文件,将N修改为Y
~]# vim /etc/oratab
catalogdb:/u01/app/oracle/product/19.3.0/db_1:Y
文件 /etc/oratab由root.sh
脚本创建,在用dbca命令创建实例时也会更新这个文件。当$ORACLE_SID:$ORACLE_HOME:
设置为Y时,允许实例自启动,当设置为N时,则不允许自启动。这个文件里的配置仅仅起一个开关的作用,其并不会具体的执行启动和关闭,具体的操作由$ORACLE_HOME/bin/dbstart
和 dbshut
脚本来实现。这2个脚本在执行时会检查 /etc/oratab
文件里的配置,为Y时才能继续执行。
5.2. 配置 /etc/rc.d/rc.local
文件
在配置了 /etc/oratab
文件后,然后将以下脚本添加到 /etc/rc.d/rc.local
或 /etc/rc.local
文件中( /etc/rc.local
是 /etc/rc.d/rc.local
的软连接文件):
cat >> /etc/rc.d/rc.local <<"EOF"
# rmmod acpi_pad
export ORACLE_HOME=/u01/app/oracle/product/19.3.0/db_1
su oracle -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
EOF
注:监听程序也已经在 dbstart 脚本中启动了。
5.3. 修改 /etc/rc.d/rc.local
权限
chmod +x /etc/rc.d/rc.local