RHEL 7.6 安装 Oracle 19C ZIP 包方式安装
高红兵写于 2019.05.31
QQ: 5979404
目录
一、安装环境 ................................................................. 2
二、Linux 系统配置 ........................................................... 2
1、关闭 iptables 防火墙 ................................................... 2
2、关闭 SELinux 防火墙 .................................................... 2
3、/etc/hosts 配置主机名 ................................................. 2
三、系统环境配置 ............................................................. 2
1、依赖的 rpm 软件包安装 .................................................. 2
2、系统内核参数 .......................................................... 3
4. 修改用户系统限制 ...................................................... 4
5. 修改系统设置 UDP 和 TCP 内核参数 ........................................ 5
6. 修改/dev/shm 大小 ..................................................... 5
四、禁用透明大页、开启大页配置 ............................................... 6
(1) 查看当前 THP 功能状态 ............................................... 6
(2) 修改文件,关闭 THP 功能 ............................................. 6
(3) 修改后重启,确认 THP 功能关闭 ....................................... 6
(4) 开启 HugePages 大页功能 ............................................. 6
五、禁用 Linux 磁盘 I/0 调度程序 ............................................. 7
六、创建安装用户配置 ......................................................... 8
1、建立组和用户 .......................................................... 8
2、oracle 用户配置 bash_profile .......................................... 8
3、创建目录 .............................................................. 9
七、Database 软件图形安装方式 ................................................ 9
八、NETCA 图形界面创建监听 .................................................. 16
七、DBCA 图形界面创建数据库 ................................................. 20
(1)、 创建数据库图解 .................................................... 20
(2)、 重新编辑无效对象 .................................................. 28
九、OEM 配置 ................................................................ 28
1、CDB OEM 配置 ......................................................... 28
2、PDB OEM 配置 ......................................................... 30
第 1 页 /共 32 页
重要:
1. RHEL 7 系统,19C 要求操作系统版高于 Red Hat Enterprise Linux 7.4:3.10.0-
693.5.2.0.1.el7.x86_64 或更高版本。
2. 物理内存和交换分区不能小于 8G,否则在安装前检查项报警告。
3. Database 软件的安装,要将安装程序 ZIP 文件,解压到 ORACLE_HOME 目录。
一、安装环境
[root@RHEL7U6 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.6
Oracle Database:Oracle 19c(19.3.0.0.0) For Linux X86-64
二、Linux 系统配置
1、关闭 iptables 防火墙
[root@RHEL7U6 ~]# systemctl stop firewalld.service
[root@RHEL7U6 ~]# systemctl disable firewalld.service
2、关闭 SELinux 防火墙
[root@RHEL7U6 ~]# vi /etc/selinux/config
SELINUX=disabled
3、/etc/hosts 配置主机名
[root@RHEL7U6 /]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.81 RHEL7U6
三、系统环境配置
1、依赖的 rpm 软件包安装
根据 Oracle 官方文档需要安装如下的软件包(compat-libstdc++ RHEL 没有此包,需要
单独下载安装)
yum install -y bc binutils compat-libcap1 compat-libstdc++ elfutils-libelf elfutils-libelf-
devel fontconfig-devel glibc glibc-devel ksh libaio libaio-devel libX11 libXau libXi libXtst
libXrender libXrender-devel libgcc librdmacm-devel libstdc++ libstdc++-devel libxcb make
net-tools nfs-utils python python-configshell python-rtslib python-six
targetcli
第 2 页 /共 32 页
smartmontools sysstat
yum install compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
yum install compat-libstdc++-33-3.2.3-72.el7.i686.rpm
bc
binutils
compat-libcap1
compat-libstdc++ RHEL 操作系统自身不带,需要单独下载安装, OEL 系统自带此包
elfutils-libelf
elfutils-libelf-devel
fontconfig-devel
glibc
glibc-devel
ksh
libaio
libaio-devel
libX11
libXau
libXi
libXtst
libXrender
libXrender-devel
libgcc
librdmacm-devel
libstdc++
libstdc++-devel
libxcb
make
net-tools (for Oracle RAC and Oracle Clusterware)
nfs-utils (for Oracle ACFS)
python (for Oracle ACFS Remote)
python-configshell (for Oracle ACFS Remote)
python-rtslib (for Oracle ACFS Remote)
python-six (for Oracle ACFS Remote)
targetcli (for Oracle ACFS Remote)
smartmontools
sysstat
2、系统内核参数
如果使用的是 oracle 的自动配置 rpm 包,配置日志文件记录在 /var/log/oracle-
第 3 页 /共 32 页
database-preinstall-19c/backup/timestamp/orakernel.log,可以查看修改的参数信息
vi /etc/sysctl.d/99-oracle-database-sysctl.conf 添加如下内容
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295 #内存的 50%,以字节为单位
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
要更改内核参数的当前值:
# /sbin/sysctl --system
确认值设置正确:
# /sbin/sysctl -a
4. 修改用户系统限制
vi /etc/security/limits.d/oracle-database-.conf
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
oracle hard memlock 134217728
oracle soft memlock 134217728
第 4 页 /共 32 页
5. 修改系统设置 UDP 和 TCP 内核参数
65500
设置 TCP / IP 临时端口范围参数,以便为预期的服务器工作负载提供足够的临时端口, Oracle
推荐的是 9000 到 65500。
查看当前的端口范围
[root@RHEL7U6 /]# cat /proc/sys/net/ipv4/ip_local_port_range
9000
如果不是 9000 到 65500 ,Oracle 建议您永久保留这些设置。root 使用文本编辑器打开
/etc/sysctl.conf,添加或更改以下内容:
net.ipv4.ip_local_port_range = 9000 65500
然后重新启动网络:
# /etc/rc.d/init.d/network restart
6. 修改/dev/shm 大小
服务器内存 256G,准备给 Oracle SGA 100G,则将 /dev/shm 设置为 128G 大于 100G
[root@RHEL7U6 ~]# vi /etc/fstab
tmpfs /dev/shm tmpfs defaults,size=128G 0 0
[root@RHEL7U6 ~]# mount -o remount /dev/shm
[root@RHEL7U6 ~]# df -h
官方文档 ORA-00845 - 没有 ORA-00845 启动数据库需要/ dev / shm 的值(文档 ID
1399209.1):
从 Oracle Database 11g 开始,自动内存管理功能需要更多共享内存(/ dev / shm)
和文件描述符。共享内存的大小必须至少是计算机上每个 Oracle 实例
的 MEMORY_MAX_TARGET 和 MEMORY_TARGET 参数中的较大者。
第 5 页 /共 32 页
如果 MEMORY_MAX_TARGET 参数或 MEMORY_TARGET 参数设置为非零值,并且为共享内存
分配了错误的大小,则会在启动时导致 ORA-00845 错误。
在 Linux 系统上,如果操作系统/ dev / shm 安装大小对于 Oracle 系统全局区域
(SGA)和程序全局区域(PGA)来说太小,则会遇到以下错误:
ORA-00845:此系统不支持 MEMORY_TARGET。
导致此错误的原因是/ dev / shm 分配不足。设置初始化参数 MEMORY_TARGET 或
MEMORY_MAX_TARGET 的 SGA 和 PGA 的总内存大小不能大于操作系统上的共享内存文件系统
(/ dev / shm)
四、禁用透明大页、开启大页配置
Oracle 建议您在开始安装之前禁用 Transparent HugePages。
透明 HugePages 内存与标准 HugePages 内存不同,因为内核 khugepaged 线程在运行
时动态分配内存。标准 HugePages 内存在启动时预先分配,并且在运行时不会更改。
Disabling Transparent HugePages, 在/etc/default/grub.conf GRUB_CMDLINE_LINU 的
最后,加上 transparent_hugepage=never
(1) 查看当前 THP 功能状态
[root@RHEL7U4 /]# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
[root@RHEL7U4 /]#
(2) 修改文件,关闭 THP 功能
[root@RHEL7U4 /]# vi /etc/default/grub
GRUB_CMDLINE_LINUX="rhgb quiet transparent_hugepage=never"
[root@ RHEL7U4 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
[root@ RHEL7U4 ~]# reboot
(3) 修改后重启,确认 THP 功能关闭
[root@ RHEL7U4 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
(4) 开启 HugePages 大页功能
计算需要的页数:
第 6 页 /共 32 页
hugepages > (180*1024)/2 = 92160
linux 一个大页的大小为 2M,开启大页的总内存应该比 sga_max_size 稍稍大一点,比如
sga_max_size=180g,则:
配置 sysctl.conf 文件,添加:
[oracle@RHEL7U6 ~]$ vi /etc/sysctl.d/97-oracle-database-sysctl.conf
vm.nr_hugepages = 92200
配置/etc/security/limit.conf,添加(比 sga_max_size 稍大,以 K 为单位):
[oracle@RHEL7U6 ~]$ vi /etc/security/limits.d/oracle-database.conf
oracle soft memlock 188800000
oracle hard memlock 188800000
五、禁用 Linux 磁盘 I/0 调度程序
为了获得 Oracle ASM 的最佳性能,Oracle 建议您使用 Deadline I / O Scheduler。
磁盘 I / O 调度程序对磁盘 I / O 的请求进行重新排序,延迟或合并,以实现更高的吞吐量
和更低的延迟。Linux 有多个磁盘 I / O 调度程序可用,包括 Deadline,Noop,
Anticipatory 和 Completely Fair Queuing(CFQ)
(1) 查看磁盘配置的 I / O 调度程序
[root@RHEL7U6 /]# cat /sys/block/sda/queue/scheduler
noop [deadline] cfq
如果默认磁盘 I / O 调度程序不是 Deadline,则使用 rules 文件设置它
1. 使用文本编辑器为 Oracle ASM 设备创建 UDEV 规则文件:
# vi /etc/udev/rules.d/60-oracle-schedulers.rules
2. 将以下行添加到规则文件并保存:
ACTION=="add|change", KERNEL=="sd[a-z]",
ATTR{queue/rotational}=="0",
ATTR{queue/scheduler}="deadline"
3. 在群集系统上,将规则文件复制到群集上的所有其他节点。例如:
$ scp 60-oracle-schedulers.rules
root@node2:/etc/udev/rules.d/
加载规则文件并重新启动 UDEV 服务。例如:
a. Oracle Linux 和 Red Hat Enterprise Linux
# udevadm control --reload-rules
第 7 页 /共 32 页
六、创建安装用户配置
1、建立组和用户
[root@RHEL7U6 /]# groupadd -g 54321 oinstall
[root@RHEL7U6 /]# groupadd -g 54322 dba
[root@RHEL7U6 /]# groupadd -g 54323 oper
[root@RHEL7U6 /]# groupadd -g 54324 backupdba
[root@RHEL7U6 /]# groupadd -g 54325 dgdba
[root@RHEL7U6 /]# groupadd -g 54326 kmdba
[root@RHEL7U6 /]# groupadd -g 54327 asmdba
[root@RHEL7U6 /]# groupadd -g 54328 asmoper
[root@RHEL7U6 /]# groupadd -g 54329 asmadmin
[root@RHEL7U6 /]# groupadd -g 54330 racdba
[root@RHEL7U6/]# /usr/sbin/useradd -u 54321 -g oinstall -G
dba,oper,asmdba,backupdba,dgdba,kmdba,racdba oracle
[root@RHEL7U6/]# /usr/sbin/useradd -u 54331 -g oinstall -G
dba,asmdba,asmoper,asmadmin,racdba grid
查询用户组信息
$ id oracle
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),
54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54327(asmdba),54330(racd
ba)
$ id grid
uid=54331(grid) gid=54321(oinstall) groups=54321(oinstall),54322(dba),
54327(asmdba),54328(asmoper),54329(asmadmin),54330(racdba)
[root@RHEL7U6/]# passwd oracle
[root@RHEL7U6/]# passwd grid
2、oracle 用户配置 bash_profile
[oracle@RHEL7U6~]$ cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
fi
. ~/.bashrc
第 8 页 /共 32 页