Oracle数据库18c单实例安装部署文档
- 产品:Oracle数据库
- 版本: 18.14.0.0.210420
- 环境: Red Hat Enterprise Linux Server 7.9 (Maipo)
需求确认
序号 | 需求项 | 需求明细 | 备注 |
---|---|---|---|
1 | 操作系统版本 | Red Hat Enterprise Linux Server 7.9 (Maipo) | |
2 | 系统软件包 | 挂载操作系统镜像 | |
3 | 网卡 | 一个网卡:用于与主库同步数据,IP地址配置在网卡上; | |
4 | IP地址 | 192.168.1.11 | |
5 | 主机名 | xsjan1 | 主机名小写且不用下划线 |
6 | 本地存储 | / 50GB /tmp 50GB /home 100GB /u01 100GB /oradata 1.5TB /oraarch 500G | |
7 | 外置存储 | 无 | |
8 | 交换分区 | 16GB | |
9 | 开放协议 | ssh、vncview | |
10 | 集群版本 | 无 | |
11 | 集群基本目录 | 无 | |
12 | 集群家目录 | 无 | |
13 | 集群用户 | 无 | |
14 | 集群用户家目录 | 无 | |
15 | 数据库版本 | Oracle 18.14.0.0.210420 | |
16 | 数据库基本目录 | /u01/app/oracle/ | |
17 | 数据库家目录 | /u01/app/oracle/product/18.0.0/db_1 | |
18 | 数据库用户 | oracle | |
19 | 数据库用户家目录 | /home/oracle | |
20 | 数据库字符集 | ZHS16GBK | |
21 | 数据库国际字符集 | AL32UTF16 | |
22 | 连接数 | 2000 | |
23 | 数据库唯一名 | xsjan | |
24 | 数据库名 | xsjan | |
25 | 数据库类型 | 非容器数据库 | |
26 | 实例名 | xsjan | |
27 | 数据文件目录 | /oradata/xsjan | |
28 | 在线日志目录 | /oradata/xsjan | |
29 | 归档文件目录 | /oraarch/xsjan | |
30 | 回闪目录 | /oraarch/xsjan | |
31 | 回闪目录大小 | 500G |
环境部署
1、安装依赖包
通过YUM源或挂载操作系统镜像安装
yum -y install bc binutils compat-libcap1 compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel ksh libaio libaio-devel libXrender libXrender-devel libX11 libXau libXi libXtst libgcc libstdc++ libstdc++-devel libxcb make policycoreutils policycoreutils-python smartmontools sysstat gcc gcc-c++ librdmacm-devel net-tools nfs-utils python python-configshell python-rtslib python-six targetcli psmisc
操作系统依赖包参考官方文档:
https://docs.oracle.com/en/database/oracle/oracle-database/18/ladbi/supported-red-hat-enterprise-linux-7-distributions-for-x86-64.html#GUID-2E11B561-6587-4789-A583-2E33D705E498
检查依赖包安装情况
rpm -q --queryformat "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n" bc binutils compat-libcap1 compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel ksh libaio libaio-devel libXrender libXrender-devel libX11 libXau libXi libXtst libgcc libstdc++ libstdc++-devel libxcb make policycoreutils policycoreutils-python smartmontools sysstat gcc gcc-c++ librdmacm-devel net-tools nfs-utils python python-configshell python-rtslib python-six targetcli psmisc
2、配置操作系统内核参数
cat /etc/sysctl.conf
## add by oracle install ##
#setting for fs.file-max is 6815744
fs.file-max = 6815744
#setting for kernel.sem is '250 32000 100 128'
kernel.sem = 250 32000 100 128
#setting for kernel.shmmni is 4096
kernel.shmmni = 4096
#setting for kernel.shmall
kernel.shmall = 23053004
#setting for kernel.shmmax
kernel.shmmax = 94425107660
#setting for kernel.panic_on_oops is 1 per Orabug 19212317
kernel.panic_on_oops = 1
#setting for net.core.rmem_default is 262144
net.core.rmem_default = 262144
#setting for net.core.rmem_max is 4194304
net.core.rmem_max = 4194304
#setting for net.core.wmem_default is 262144
net.core.wmem_default = 262144
#setting for net.core.wmem_max is 1048576
net.core.wmem_max = 1048576
#setting for net.ipv4.conf.all.rp_filter is 2
net.ipv4.conf.all.rp_filter = 2
#setting for net.ipv4.conf.default.rp_filter is 2
net.ipv4.conf.default.rp_filter = 2
#setting for fs.aio-max-nr is 1048576
fs.aio-max-nr = 1048576
#setting for net.ipv4.ip_local_port_range is 9000 65500
net.ipv4.ip_local_port_range = 9000 65500
#setting for kernel.numa_balancing is 0 per Orabug: 26798697
kernel.numa_balancing = 0
参数kernel.shmmax官方建议大于等于物理内存的一半,单位byte
参数kernel.shmall官方建议大于或等于kernel.shmmax值/4096,单位页
MOS搜Requirements for Installing Oracle
https://support.oracle.com/epmos/faces/DocumentDisplay?id=2551169.1
执行sysctl -p使参数生效
4、配置操作系统资源限制
cat /etc/security/limits.conf
## add by oracle install ##
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
oracle soft memlock unlimited
oracle hard memlock unlimited
cat /etc/pam.d/login
## add by oracle install ##
session required pam_limits.so
5、取消透明大页
Oracle官方测试显示在linux开启透明巨页THP,I/O读写性能降低30%,并可能引起实例异常重启及性能问题;如果关闭透明巨页THP,I/O读写性能则恢复正常。建议在Oracle Database中不要使用THP。
参考:
https://support.oracle.com/epmos/faces/DocumentDisplay?id=1557478.1
https://docs.oracle.com/en/database/oracle/oracle-database/19/cwlin/disabling-transparent-hugepages.html
##检查THP (Transparent hugepage)模式,中括号中内容为当前模式
cat /sys/kernel/mm/transparent_hugepage/enabled
##redhat操作系统的路径为:
cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
[always] madvise never
##修改文件/etc/default/grub加入transparent_hugepage=never,如:
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet numa=off transparent_hugepage=never"
GRUB_DISABLE_RECOVERY="true"
##执行grub2-mkconfig加载参数
grub2-mkconfig -o /boot/grub2/grub.cfg
##重启服务器使参数生效
##检查
cat /sys/kernel/mm/transparent_hugepage/enabled
输出:always madvise [never]
6、禁用SELINUX
cat /etc/selinux/config
SELINUX=disabled
如果不想重启系统,使用命令setenforce 0使参数生效
7、配置防火墙
#单实例放通SSH端口:19574/tcp,数据库监听端口:32456/tcp,NTP端口:123/udp
firewall-cmd --list-all
firewall-cmd --zone=public --add-port=19574/tcp --permanent
firewall-cmd --zone=public --add-port=32456/tcp --permanent
firewall-cmd --zone=public --add-port=123/udp --permanent
firewall-cmd --reload
firewall-cmd --list-all
#RAC关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service
8、创建用户和组
以root用户执行
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
groupadd -g 54324 backupdba
groupadd -g 54325 dgdba
groupadd -g 54326 kmdba
useradd -u 54321 -g oinstall -G dba,oper,backupdba,dgdba,kmdba oracle
9、修改Oracle密码
以root用户执行
id oracle
passwd oracle
10、创建目录
以root用户执行
# ORACLE_BASE for DB
mkdir -p /u01/app/oracle
# ORACLE_HOME for DB
mkdir -p /u01/app/oracle/product/18.0.0/db_1
mkdir -p /u01/app/oraInventory
chown -R oracle.oinstall /u01/app/oracle
chown -R oracle.oinstall /u01/app/oraInventory
chmod -R 775 /u01
11、配置Oracle用户的环境变量
修改/home/oracle/.bash_profile文件,添加oracle用户环境变量
按规划调整ORACLE_SID
cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$HOME:/bin:/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:.
export PATH
export ORACLE_SID=xsjan
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/18.0.0/db_1
export ORACLE_TERM=vt100
export TNS_ADMIN=$ORACLE_HOME/network/admin
export NLS_LANG=american_america.zhs16gbk
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/JRE/lib:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export DISPLAY=localhost:0.0
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export DISABLE_HUGETLBFS=1
export LANG=C
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
umask 022
数据库软件安装
1、介质准备
序号 | 介质名称 | 说明 |
---|---|---|
1 | V978967-01.zip | 数据库软件安装介质 |
2、解压数据库软件介质
以oracle用户解压到数据库家目录
su – oracle
cd /u01/app/oracle/product/18.0.0/db_1
unzip -q /tmp/V978967-01.zip
3、配置静默安装响应文件
文件路径:$ORACLE_HOME/install/response/db_install.rsp,需要配置的软件安装参数如下:
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v18.0.0
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
ORACLE_HOME=/u01/app/oracle/product/18.0.0/db_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oper
oracle.install.db.OSBACKUPDBA_GROUP=backupdba
oracle.install.db.OSDGDBA_GROUP=dgdba
oracle.install.db.OSKMDBA_GROUP=kmdba
oracle.install.db.OSRACDBA_GROUP=dba
编辑完成后使用grep命令检查
grep -Ev '^$|^#' db_install.rsp
4、执行静默安装
cd $ORACLE_HOME
./runInstaller -silent -responseFile $ORACLE_HOME/install/response/db_install.rsp
根据安装提示以root用户执行相关脚本
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/18.0.0/db_1/root.sh
补丁安装
1、介质准备
序号 | 介质名称 | 说明 |
---|---|---|
1 | p6880880_180000_Linux-x86-64.zip | OPatch工具 |
2 | p32524155_180000_Linux-x86-64.zip | DB 18.14.0.0.0补丁 |
3 | p32552752_180000_Linux-x86-64.zip | OJVM补丁 |
2、更新OPatch工具
以oracle用户执行
mv $ORACLE_HOME/OPatch $ORACLE_HOME/Opatchbak
unzip p6880880_180000_*.zip -d $ORACLE_HOME/
检查OPatch版本
opatch version
3、数据库补丁预检查
以oracle用户执行
unzip p32524155_180000_Linux-x86-64.zip
#补丁冲突检查
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /tmp/oracle/32524155
#补丁空间检查
$ORACLE_HOME/OPatch/opatch prereq CheckSystemSpace -phBaseDir /tmp/oracle/32524155
4、更新数据库补丁
以oracle用户执行
#执行更新
$ORACLE_HOME/OPatch/opatch apply /tmp/oracle/32524155
#检查更新结果
$ORACLE_HOME/OPatch/opatch lsinv
5、OJVM补丁与检查
以oracle用户执行
unzip p32552752_180000_Linux-x86-64.zip
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph /tmp/oracle/32552752
6、更新OJVM补丁
以oracle用户执行
#执行更新
$ORACLE_HOME/OPatch/opatch apply /tmp/oracle/32552752
#检查更新结果
$ORACLE_HOME/OPatch/opatch lsinv
数据库安装(搭建ADG可忽略)
1、配置静默安装响应文件
文件路径:$ORACLE_HOME/assistants/dbca/dbca.rsp,需要配置的软件安装参数如下:
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v12.2.0
gdbName=xsjan
sid=xsjan
databaseConfigType=SI
createAsContainerDatabase=false
sysPassword=oracle
systemPassword=oracle
datafileDestination=/oradata/xsjan
recoveryAreaDestination=/oraarch/xsjan
storageType=FS
characterSet=ZHS16GBK
nationalCharacterSet=AL32UTF16
memoryPercentage=60
automaticMemoryManagement=FALSE
编辑完成后使用grep命令检查
grep -Ev '^$|^#' db_install.rsp
2、执行静默安装
dbca -silent -createDatabase -responseFile $ORACLE_HOME/assistants/dbca/dbca.rsp
创建监听(搭建ADG可忽略)
1、配置静默安装响应文件
文件路径:$ORACLE_HOME/assistants/netca/netca.rsp,需要配置的软件安装参数如下:
[GENERAL]
RESPONSEFILE_VERSION="12.2"
CREATE_TYPE="CUSTOM"
[oracle.net.ca]
INSTALLED_COMPONENTS={"server","net8","javavm"}
INSTALL_TYPE=""typical""
LISTENER_NUMBER=1
LISTENER_NAMES={"LISTENER"}
LISTENER_PROTOCOLS={"TCP;32456"}
LISTENER_START=""LISTENER""
NAMING_METHODS={"TNSNAMES","ONAMES","HOSTNAME"}
NSN_NUMBER=1
NSN_NAMES={"EXTPROC_CONNECTION_DATA"}
NSN_SERVICE={"PLSExtProc"}
NSN_PROTOCOLS={"TCP;HOSTNAME;32456"}
编辑完成后使用grep命令检查
grep -Ev '^$|^#' netca.rsp
2、执行静默安装
netca -silent -responsefile $ORACLE_HOME/assistants/netca/netca.rsp
配置监听静态注册
vi $ORACLE_HOME/network/admin/listener.ora
#加入静态注册信息
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = xsjan)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = xsjan)
)
)
关注醒狮运维公众号,了解更多运维知识及漏洞信息!