Oracle 12C Database(12.2) 甲骨文数据库系统

2 简介

ORACLE(甲骨文)公司。Oracle Database (甲骨文数据库) 是一个具有对象和可扩展标记语言(XML)功能的关系数据库,提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。

在关系数据库中,所有数据都存储在由行和列组成的二维表中。Oracle数据库使您能够以高度的性能,可靠性和可伸缩性存储数据,更新数据并有效地检索数据。

3 描述

ORACLE 数据库,是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。

  • Oracle 数据库目前分为:
    • Oracle Database 11GOracle Database 12cOracle Database 18c 三个版本;
    • 目前最新版本为 Oracle Database 18c

4 Oracle 组成

Oracle 数据库由以下组建组成:

  1. Oracle 软件 :安装在 Oracle 主机上的软件
  2. 数据库 : 包含用户数据,元数据和控制结构
    (元数据 和数据集,允许 Oracle 软件管理用户数据。元数据的示例是数据字典。控制结构(例如控制文件和联机重做日志文件)可确保用户数据的完整性,可用性和可恢复性。)
    数据库的物理存储结构是由一些多种物理文件组成,主要有数据文件、控制文件、重做日志文件、归档日志文件、参数文件、口令文件、警告文件等
  3. Oracle instance(Oracle 实例) :由以下部分组成:
    1. 后台进程
    2. 存储
    3. 监视和恢复与数据库相关的用户数据、元数据和控制文件的操作系统进程或线程后台进程使用的共享内存区域
  4. Server processes(服务进程):这些进程使用的内存和临时存储,服务器进程解析并执行SQL语句,并将检索结果返回给用户或应用程序。
  5. Oracle Net listener(Oracle 侦听) :Oracle Net 是一个软件层,支持客户端应用程序和 Oracle 数据库通过网络进行通信
    它是一个侦听来自网络的连接请求的进程。

5 管理数据库的工具

  • 实现数据库管理员目标的一些产品,工具和实用程序:
  1. Oracle Universal Installer
    • Oracle Universal InstallerOUI)是一个安装 Oracle 软件和选件的实用程序。它可以自动启动 Oracle Database Configuration Assistant 来安装数据库。
  2. Oracle 数据库配置助手
    • Oracle 数据库配置助手(DBCA)是一个实用程序,它可以从 Oracle 提供的模板创建数据库,也可以创建自己的模板。使用户可以复制预配置的种子数据库,从而节省生成和自定义新数据库的时间和精力。
  3. 数据库升级助手
    • 数据库升级助手是一个工具,可指导您将现有数据库升级到新的 Oracle 数据库版本。
  4. Net Configuration Assistant
    • Net Configuration AssistantNETCA)是一个实用程序,使用户可以配置侦听器和命名方法,这些方法是 Oracle 数据库网络的关键组件。
  5. Oracle 企业管理器数据库控制
    • 管理数据库的主要产品是 Oracle 企业管理器数据库控制(数据库控制),这是一个基于Web的界面。安装 Oracle 数据库软件,创建或升级数据库并配置网络后,可以使用 Database Control 来管理数据库。
    • Database Control 还为性能顾问和Oracle实用程序(如SQL * Loader和Recovery Manager(RMAN))提供了一个界面。

6 实例安装 Oracle 数据库

6.1 安装 Oracle 数据库 之 软硬件需求


6.1.1
验证 内存条件 ! 注意在Linux上,使用内存映射文件为大型页表分配不可交换的内存。如果启用了 HugePages,那么应该在计算交换空间之前从可用RAM中扣除分配给 HugePages 的内存。

可用内存 需要交换空间 可用内存 需要交换空间 可用内存 需要交换空间
1/2 GB之间 RAM大小的1.5倍 2/16 GB之间 等于RAM的大小 超过16 GB 16 GB

6.1.2
验证 系统架构
从 Oracle Database 11g 第2版​​(11.2)开始,Oracle Linux 4,Oracle Linux 5,Oracle Linux 6,Red Hat Enterprise Linux 4,Red Hat Enterprise Linux 5 和 Red 支持 Security Enhanced Linux(SE Linux)功能Hat Enterprise Linux 6 。
支持的发行版Red Hat Enterprise Linux 7:3.10.0-123.el7.x86_64 或 更高版本

6.1.3
验证 Automatic Memory Management

  • Oracle 数据库从11g开始,自动内存管理特性需要更多的共享内存 ( /dev/shm ) 和文件描述符。共享内存的大小应该至少大于该计算机上每个 Oracle 实例的 MEMORY_MAX_TARGET 和 MEMORY_TARGET 。
    /dev/shm 并不占用磁盘空间,而是存放在内存上面,因此和 RAM (Random Access Memory)一样断电清空数据。
    /dev/shm 使用增量占用空间,并不会是将挂载点的空间全部占用/dev/shm 挂载点未占用的空间将会被内存使用
    Linux (CentOS) 的 /dev/shm 分区,默认大小是系统物理内存的50%

6.1.4
Package Requirements(软件包需求),以下是 Oracle Database 11g 第2版​​(11.2)所需的软件包列表:(其中后缀为 .el7.i686 需要从互联网上下载,而其他安装包可以由 CentOS 7.4 映像文件提供 )

6.1.5
端口开放,更多关于 Oracle 的端口开放请参阅 管理Oracle数据库端口号

6.2 安装 Oracle 数据库 之 用户和组


如果要安装Oracle数据库,则需要以下本地操作系统组和用户.

名称 用户类型 用户/组名称 说明
Oracle Inventory 通常为 (oinstall) Oracle 推荐操作系统的用户组,该用户组应该具有 oracle 软件目录 $ORACLE_BAES$ORACLE_HOME 和 oracle Inventory 信息目录仓库;
oracle Inventory信息目录记录了系统上安装过的oracle产品的记录。
如果系统中已经安装有 Oracle 产品软件,则现有的 oracle Inventory 目录的所有组必须是今后用来安装新 oracle 软件产品的用户的主组(primary group)。
OSDBA 通常为 (dba) 系统 DBA 用户组(dba),安装数据库软件及执行管理数据库的任务。
Oracle 用户 软件所有者通常为 (oracle)
OSOPER 可选通常为 (oper) 让 OS 用户以数据库管理权限(包括 SYSOPER 角色权限) 的目的。注意 SYSOPER 的权限包括 startup 和 shutdown,所以要小心为该用户组添加成员。
ASM asmdba asmdba在安装期间将组指定为ASM()组的OSDBA 。该组的成员被授予对Oracle自动存储管理的访问权限。
asmoper asmoper在安装期间将组指定为ASM组()的OSOPER 。该组的成员被授予Oracle自动存储管理的启动和关闭权限。
OSBACKUPDBA backupdba 该组的成员被授予SYSBACKUP权限,以使用RMAN或SQL * Plus执行备份和恢复操作。
OSDGDBA dgdba 该组的成员被授予SYSDG权限以执行Data Guard操作
OSKMDBA kmdba 该组的成员被授予SYSKM权限以执行透明数据加密密钥库操作
OSRACDBA racdba 该组的成员被授予SYSRAC权限,以在Oracle RAC集群上执行Oracle数据库的日常管理。

6.2.1
创建 Oracle 所需的组和用户

  • 如果安装有 Oracle,则 OUI 会从 /etc/oraInst.loc 文件中检测现有的 oraInventory 目录,并使用此位置。

6.3 安装 Oracle 数据库 之 用户环境变量

6.3.1
设置 oracle 用户 和 root 用户的环境变量  ~/UserName/.bash_profile

6.3.2
配置 hostname(本机IP映射)

6.4 安装 Oracle 数据库 之 所需目录


6.4.1
创建 Oracle 所需目录,并为其指定正确的所有者,组和权限:

6.5 安装 Oracle 数据库 之 依赖包


6.5.1
配置 yum 源,以 网易开源镜像站 为例

6.5.2
安装 相关包依赖

6.5.3
Oracle ODBC驱动程序

  • 安装 Linux/Unix 的ODBC驱动程序管理器,可以从 www.unixodbc.org 下载相关的ODBC驱动程序。安装ODBC前还必须安装以下其他ODBC RPM
  • 在 Oracle Linux 7 和 Red Hat Enterprise Linux 7 上需要安装以下数据包:1. unixODBC-2.3.1-6.el7.x86_64 or later
    2. unixODBC-2.3.1-6.el7.i686 or later
    3. unixODBC-devel-2.3.1-6.el7.x86_64 or later
    4. unixODBC-devel-2.3.1-6.el7.i686 or later

6.5.4
下载 Oracle 数据库文件

6.6 禁用 Transparent HugePages

6.6.1 什么是 HugePages(大页面)

当一个进程占用内存时,CPU 会将 RAM 标记为该进程所使用的内存,为了提高效率,CPU 按 4K 字节块分配RAM(这是许多平台上的默认值)。这些块被命名为 Pages。这些 Pages 可以交换到磁盘,等等。

进程地址空间是虚拟的,CPU 和 操作系统 必须记住哪个 pages 属于哪个进程,以及它存储在哪里。
因此,pages 越多,查找内存映射位置所需的时间就越多。当一个进程使用1GB内存时,需要查找262144个条目(1GB / 4K)。如果一个页表条目消耗8字节,那么查找它需要2MB(262144 * 8)。
如果操作系统仍然以 4KB 大小为页面的基本单位,显然不合理呢

如果操作系统以 2MB 甚至更大作为分页的单位时,将会大大减少 TLB Miss 和缺页中断的数量,显著提高应用程序的性能
大多数当前的CPU架构支持更大的页面(因此CPU/OS需要查找的条目更少),这些 pages 被命名为 大页面(HugePages)

为了能以最小的代价实现大页面支持,Linux 操作系统采用了基于 hugetlbfs 特殊文件系统 2M 字节大页面支持。
这种采用特殊文件系统形式支持大页面的方式,使得应用程序可以根据需要灵活地选择虚存页面大小,而不会被强制使用 2MB 大页面。

6.6.2 禁用 Transparent HugePages

  • Oracle 建议在开始安装之前禁用 Transparent HugePages
    Transparent HugePages内存 与 Standard HugePages内存不同,因为内核 khugepaged 线程在运行时动态分配内存。Standard HugePages内存在启动时预先分配,并且在运行时不会更改。

6.6.3
查看 Transparent HugePages 状态

6.6.4
禁用 Transparent HugePages

6.6.5
以服务形式自动禁用 Transparent HugePages

6.7 验证Linux上的磁盘I / O调度程序

为了获得 Oracle ASM 的最佳性能,Oracle 建议使用 Deadline I / O Scheduler

磁盘I / O 调度程序对磁盘I / O的请求进行重新排序,延迟或合并,以实现更高的吞吐量和更低的延迟。Linux有多个磁盘I / O调度程序可用,包括(Deadline,Noop,Anticipatory和Completely Fair Queuing (CFQ)

6.7.1
验证Linux上的磁盘I / O调度程序:在集群上更加适用

6.8 安装 Oracle 数据库 之 内核参数


6.8.1
验证 下表中显示 内核和shell 的参数是否设置为 <大于或等于> 显示的最小值的值。表后面的过程描述了如何验证和设置值。

参数 可接受最低值 文件路径 命令
semmsl、semmns、semopm、semmni 250、32000、100、128 /proc/sys/kernel/sem /sbin/sysctl -a | grep sem
shmall 2097152 /proc/sys/kernel/shmall /sbin/sysctl -a | grep shm
shmmax Minimum:536870912;
Maximum:比物理内存小1个字节的值;
Recommended:超过一半的物理内存;
最大共享内存,官方文档建议是内存的1/2
/proc/sys/kernel/shmmax /sbin/sysctl -a | grep shm
shmmni 4096 /proc/sys/kernel/shmmni /sbin/sysctl -a | grep shm
file-max 6815744 /proc/sys/fs/file-max /sbin/sysctl -a | grep file-max
ip_local_port_range Minimum: 9000;
Maximum: 65500
/proc/sys/net/ipv4/ip_local_port_range /sbin/sysctl -a | grep ip_local_port_range
rmem_default 262144 /proc/sys/net/core/rmem_default /sbin/sysctl -a | grep rmem_default
rmem_max 4194304 /proc/sys/net/core/rmem_max /sbin/sysctl -a | grep rmem_max
wmem_default 262144 /proc/sys/net/core/wmem_default /sbin/sysctl -a | grep wmem_default
wmem_max 1048576 /proc/sys/net/core/wmem_max /sbin/sysctl -a | grep wmem_max
aio-max-nr 1048576
注意:此值限制并发未完成的请求,
应设置此值以避免I/O子系统故障。
/proc/sys/fs/aio-max-nr /sbin/sysctl -a | grep aio-max-nr

6.8.2
调整 内核和shell 的参数

6.8 安装 Oracle 数据库 之 shell限制


6.9.1
检查 Oracle 软件安装用户的资源限制,更新 /etc/security/limits.conf  安装所有者的配置文件中的资源限制

6.9.2
配置 PAM /etc/pam.d/login 登入会话要求使文件 /etc/security/limits.conf 对 shell 限制生效

6.10 安装 Oracle 数据库 之 使用应答文件静默安装

6.10.1
编辑 静默安装应答 文件

6.10.2
开始静默安装

6.10.3
以 root 用户身份执行 /usr/local/Oracle/Inventory/orainstRoot.sh 和 /usr/local/Oracle/Product/11.2.0/root.sh 脚本

  1. orainstRoot.sh 创建库存指针(/etc/oraInst.loc);将 Inventory(oraInventory) 目录的权限更改为770;并将 Inventory(oraInventory) 目录的组名更改为 oinstall 组;设置变量 ORACLE_OWNER = ;ORACLE_HOME =
  2. root.sh 创建 /etc/oratab 文件;设置 Oracle 用户的环境
  3. 更多的 orainstRoot.sh 和 root.sh 脚本信息请参阅 执行orainstRoot.sh和root.sh脚本的重要性是什么

6.10.4
启动 Oracle Net 侦听器,使用相应文件运行 Net Configuration Assistant。 在 静默模式(silent mode)下,使用响应文件模板 netca.resp,该模板在 DVD 目录中的 database/response 中。关于 netca.rsp 模板文件以及启动方式请参阅 安装和配置Oracle数据库使用响应文件

6.11 安装 Oracle 数据库 之 使用应答文件静默创建数据库

6.11.1
编辑静默(silent)应答模板文件 dbca.rsp,模板在 DVD 目录中的 database/response

6.11.2
使用 Database Configuration Assistant (DBCA) 来创建数据库,DBCA 是一种自动化的方法,DBCA 支持(静默/交互)两种模式来创建数据库。有关使用 DBCA 的(silent mode)静默模式的详细信息,请参阅:静默模式的数据库配置助手命令参考

6.11.3
查看数据库侦听状态,并使用 as sysdba 登入数据库测试

6.11.4
配置 Oracle Systemd 守护服务

发表评论