:::info
单实例Oracle安装(单服务器安装)
CentOS的版本:CentOS 7.9 2009
Oracle的版本:19.3.0.0.0
SSH工具:MobaXterm(最新版本即可)
:::
配置初始化参数
这里主要是创建用户及目录、配置内核参数、限制oracle资源使用等。
1、下载Oracle安装包
下载oracle 19c的软件安装包,为之后的安装做准备。这里我们先将包上传至/usr/local/src目录中
2、创建运行oracle数据库的系统用户和用户组
这里主要是创建oracle数据库的用户以及使用的组,使用root用户进行创建。
[root@localhost ~]# su root
# 登录root用户[root@localhost ~]# groupadd oinstall
# 创建用户组oinstall[root@localhost ~]# groupadd dba
# 创建用户组dba[root@localhost ~]# useradd -g oinstall -g dba -m oracle
# 创建oracle用户,并加入到oinstall和dba用户组[root@localhost ~]# groups oracle
# 查询用户组是否授权成功[root@localhost ~]# passwd oracle
# 设置用户oracle的登陆密码[root@localhost ~]# id oracle
# 查看新建的oracle用户权限
3、创建oracle数据库安装目录以及授权
创建oracle数据库需要的目录以及授权,这里以/home为例。 Oracle 19C与之前的12C和11G不同,它的解压包中包含了dbs、network、RDBMS等那些之前需要安装才会有的目录,解压到哪个目录,那个目录即配置为ORACLE_HOME目录。
[root@localhost ~]# mkdir -p /home/oracle
# oracle数据库软件目录[root@localhost ~]# mkdir -p /home/oraInventory
# oracle数据库配置文件目录[root@localhost ~]# cd /home
[root@localhost ~]# ls
[root@localhost home]# chown -R oracle:oinstall /home/oracle
# 将此目录的属主设置为oracle,并将组设置为oinstall,下同[root@localhost home]# chown -R oracle:oinstall /home/oraInventory
4、修改OS系统标识
oracle默认不支持CentOS系统安装, 修改文件 /etc/RedHat-release 内容为RedHat-7
[root@localhost home]# vim /etc/redhat-release
# 编辑配置文件将其调整为支持oracle安装的环境
redhat-7
5、安装oracle数据库所需要的软件包
这里我们安装oracle需要的依赖包,需要有网络支持,如果没有网络支持,就需要配置YUM源。
[root@localhost home]# yum install binutils* compat* gcc* glibc* ksh* libaio* libgcc* libstdc* libXi* libXtst* make* sysstat* elfutils*
6、关闭防火墙和selinux
临时关闭防火墙firewalld和selinux,防止安装出现其他异常问题。生产环境建议临时关闭防火墙,等安装完之后再重新打开,开启端口。
[root@localhost home]# systemctl status firewalld.service
# 查看firewall的状态[root@localhost home]# systemctl stop firewalld.service
# 停止firewall[root@localhost home]# systemctl disable firewalld.service
# 禁止firewall开机启动[root@localhost home]# vim /etc/selinux/config
# 编辑selinux配置文件,将其改为disabled,改完后需要重启才会生效,不重启也可以继续安装下去。
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled #此处修改为disabled
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
7、修改内核参数
调整内核参数,当前配置较低,请根据实际需要进行调整。
[root@localhost home]# 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
kernel.shmall = 2097152
kernel.shmmax = 2147483648
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= 1048576
[root@localhost home]# sysctl -p
# 使配置参数生效
参数介绍:
- net.ipv4.icmp_echo_ignore_broadcasts
- net.ipv4.conf.all.rp_filter
- fs.file-max # 设置最大打开文件数
- fs.aio-max-nr = 1048576
- kernel.shmall = 2097152 # 共享内存的总量,8G内存设置:2097152*4k/1024/1024,物理机的二分之一
- kernel.shmmax = 2147483648 # 最大共享内存的段大小 #一般设置为物理机的80%,这里为2G的內存
- kernel.shmmni = 4096 # 整个系统共享内存端的最大数
- kernel.sem = 250 32000 100 128
- net.ipv4.ip_local_port_range = 9000 65500 # 可使用的IPv4端口范围
- net.core.rmem_default = 262144
- net.core.rmem_max= 4194304
- net.core.wmem_default= 262144
- net.core.wmem_max= 1048576
单实例运行内存参考:
一般情况下,调整主要是调整kernel.shmall和kernel.shmmax参数,一般调整为centos系统的80%。
这里给几个建议值:
内存为 12G 时, kernel.shmall = 3145728
内存为 16G 时, kernel.shmall = 4194304
内次为 32G 时, kernel.shmall = 8388608
内存为 64G 时, kernel.shmall = 16777216
内存为 128G 时, kernel.shmall = 33554432
内存为 12G 时,该值为 12102410241024-1 = 12884901887
内存为 16G 时,该值为 16102410241024-1 = 17179869183
内存为 32G 时,该值为 32102410241024-1 = 34359738367
内存为 64G 时,该值为 64102410241024-1 = 68719476735
内存为 128G 时,该值为 12810241024*1024-1 = 137438953471
8、对oracle用户设置限制,提高软件运行性能
[root@localhost home]# vim /etc/security/limits.conf
# 编辑资源限制文件
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
:wq保存并退出。
参数介绍:
- oracle soft nproc # 单个用户可用的进程数软限制
- oracle hard nproc # 单个用户可用的进程数硬限制
- oracle soft nofile # 打开文件描述符软限制
- oracle hard nofile # 打开文件描述符硬限制
9、配置用户的环境变量
[root@localhost home]# vim /home/oracle/.bash_profile
# 编辑用户配置export ORACLE_BASE=/home/oracle/app export ORACLE_HOME=/home/oracle export ORACLE_SID=orcl export ORACLE_TERM=xterm export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib export LANG=C export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
[root@localhost home]# source /home/oracle/.bash_profile
# 使用户配置生效
参数介绍:
- export ORACLE_BASE # oracle数据库基目录
- export ORACLE_HOME # oracle软件目录
- export ORACLE_SID # oracle启动数据库实例名
- export ORACLE_TERM # xterm窗口模式安装
- export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH # 添加系统环境变量
- export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib # 添加系统环境变量
- export LANG=C # 防止安装过程出现乱码
- export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK # 设置Oracle客户端字符集,必须与Oracle安装时设置的字符集保持一致
10、开放端口
步骤6中已经禁用了firewalld防火墙,待安装完毕后,可以再开放1521的端口。
[root@localhost home]# firewall-cmd --permanent --zone=public --add-port=1521/tcp
[root@localhost home]# systemctl restart firewalld
11、解压下载好的ZIP包
在19C中,因为zip包中有很多之前11G,12C安装后才会有的目录,所以解压时间会比较长。
[root@localhost home]# cd /usr/local/src
# 进入zip包目录[root@localhost src]# unzip LINUX.X64_193000_db_home.zip -d /home/oracle
# 解压zip包至/home/oracle[root@localhost src]# chown oracle:oinstall -R /home/oracle
# 授权/home/oracle目录及子目录权限给oracle和oinstall组
图形界面安装Oracle软件
必须使用oracle用户登录到ssh中,执行图型界面安装。
[oracle@localhost ~]$ cd /home/oracle
# 进入到oracle基目录[oracle@localhost database]$ ./runInstaller
# 执行安装命令
配置仅安装软件选项
配置单实例安装
配置企业版安装
配置Oracle_base目录
配置产品清单目录
配置系统用户组权限
配置root脚本运行
先决条件检查
运行root脚本
[root@localhost ~]# /home/oraInventory/orainstRoot.sh
[root@localhost ~]# /home/oracle/root.sh
安装完成
图形界面配置Oracle监听
配置监听选项
配置监听名
配置监听协议
配置监听端口号
是否配置其他监听选项
监听配置完成
图形界面安装实例
配置数据库安装选项
配置数据库类型
配置数据库架构
配置数据库存储
如果没有指定特定的文件系统存储和目录,那么use template file for database storage attributes和use following for the database storage attributes基本上没有区别。
OMF和非OMF区别对比:
非OMF
OMF
配置快速恢复区
配置监听器
配置Data Vault
配置内存、连接数、字符集、连接模式和示例方案
配置管理选项
配置用户名和密码
配置数据库创建后脚本
配置再次确认
安装完成
至此,一个Oracle单实例的数据库已经配置完毕,可以正常使用了。
错误
1、先决条件Swap Size导致的警告问题
原因:Oracle建议不同内存大小的服务器也设置不同大小的swap,以下为参考值:
- 内存1-2G,建议将swap设置为内存的1.5倍
- 内存2-16G,建议将swap设置为内存的大小
- 内存超过16G,将swap设置为16G
解决办法:调大swap值[root@localhost ~]# free -h
# 查看swap内存大小[root@localhost ~]# dd if=/dev/zero of=/home/swap bs=1024 count=9216000
# 添加交换文件并设置其大小为9G,最好是设置为挂载磁盘较大的目录[root@localhost ~]# mkswap /home/swap
# 将/home/swap设置为swap类型文件[root@localhost ~]# swapon /home/swap
# 启用swap文件[root@localhost ~]# vim /etc/fstab
# 新增一行,配置开机自动挂载swap文件
/home/swap swap swap defaults 0 0
:wq保存并退出。[root@localhost ~]# free -h
# 再次查看swap内存大小