:::info 单实例Oracle安装(单服务器安装)
CentOS的版本:CentOS 7.9 2009
Oracle的版本:19.3.0.0.0
SSH工具:MobaXterm(最新版本即可) :::

配置初始化参数

这里主要是创建用户及目录、配置内核参数、限制oracle资源使用等。

1、下载Oracle安装包

下载oracle 19c的软件安装包,为之后的安装做准备。这里我们先将包上传至/usr/local/src目录中

LINUX.X64_193000_db_home.zip

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安装的环境

  1. redhat-7

:wq保存并退出。

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

:wq保存并退出。

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 时,该值为 16
102410241024-1 = 17179869183
内存为 32G 时,该值为 32102410241024-1 = 34359738367
内存为 64G 时,该值为 64
102410241024-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 # 执行安装命令

配置仅安装软件选项

image.png

配置单实例安装

image.png

配置企业版安装

image.png

配置Oracle_base目录

image.png

配置产品清单目录

image.png

配置系统用户组权限

image.png

配置root脚本运行

image.png

先决条件检查

image.png
image.png

运行root脚本

image.png
[root@localhost ~]# /home/oraInventory/orainstRoot.sh
image.png
[root@localhost ~]# /home/oracle/root.sh
image.png

安装完成

image.png

图形界面配置Oracle监听

[oracle@localhost ~]$ netca
image.png

配置监听选项

image.png

配置监听名

image.png

配置监听协议

image.png

配置监听端口号

image.png

是否配置其他监听选项

image.png

监听配置完成

image.png

图形界面安装实例

[oracle@localhost ~]$ dbca
image.png

配置数据库安装选项

image.png

配置数据库类型

image.png

配置数据库架构

image.png

配置数据库存储

如果没有指定特定的文件系统存储和目录,那么use template file for database storage attributes和use following for the database storage attributes基本上没有区别。

image.png
OMF和非OMF区别对比:
非OMF
image.png
OMF
image.png

配置快速恢复区

image.png

配置监听器

image.png

配置Data Vault

image.png

配置内存、连接数、字符集、连接模式和示例方案

image.png
image.png
image.png
image.png
image.png

配置管理选项

image.png

配置用户名和密码

image.png

配置数据库创建后脚本

image.png

配置再次确认

image.png

安装完成

image.png
至此,一个Oracle单实例的数据库已经配置完毕,可以正常使用了。

错误

1、先决条件Swap Size导致的警告问题

image.png
原因:Oracle建议不同内存大小的服务器也设置不同大小的swap,以下为参考值:

  • 内存1-2G,建议将swap设置为内存的1.5倍
  • 内存2-16G,建议将swap设置为内存的大小
  • 内存超过16G,将swap设置为16G

解决办法:调大swap值
[root@localhost ~]# free -h # 查看swap内存大小
image.png
[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内存大小
image.png