代码改变世界

【翻译】--19C Oracle 安装指导

2019-06-02 16:02  那个,我  阅读(12308)  评论(0编辑  收藏  举报

18C新功能

    1.简化的基于镜像的Oracle数据库安装
    从18C开始,Oracle可以作为镜像文件来下载和安装,必须解压缩镜像文件到ORACLE_HOME目录,然后执行runInstaller安装。
    有关更多信息,请参阅关于基于映像的Oracle数据库安装
    2.基于RPM的Oracle数据库安装
    rpm -ivh 命令安装,可以自动完成安装前检查,将提取的软件包分配给预分配的用户和组,完成其他所有操作。
    有关更多信息,请参阅使用RPM软件包安装Oracle数据库
    3.只读Oracle Home
    从Oracle 18C 如果选择只读OracleHome,那么数据库工具和进程都会写入到OracleBase 目录下,而不是OracleHome下。通过这种将Oracle_Home 和配置,日志文件隔离,可以实现多个部署共享ORACLE_HOME
    有关更多信息,请参阅配置只读Oracle主目录
    4.用于打数据库补丁的本地切换Home 命令
    从Oracle Database 18c开始,ORACLE_HOME包含一个内置工具,rhpctl 允许你从当前的ORACLE_HOME,切换到已经打了补丁的ORACLE_HOME,如果需要回退,则可以再切回来。rhpctl 执行切换目录的所有操作,该命令还提供选项,使用会话管理滚动或不滚动群集中的单个节点或节点集
    有关更多信息,请参见“ Oracle Clusterware管理和部署指南”

 

Oracle数据库在发行版(19C)中的更改

新功能

oracle 数据库安装的root 脚本自动化支持。
基于镜像的Oracle客户端安装
不推荐的功能
clone.pl脚本在Oracle19C 中不推荐,将来可能会弃用。

1.Oracle数据库安装检查列表

显示器 1024 x 768
RAM DB安装 至少1G,建议2G以上
Grid安装 至少8G
OS

Red Hat Enterprise Linux 7.4: 3.10.0-693.5.2.0.1.el7.x86_64 or later

SUSE Linux Enterprise Server 12 SP3: 4.4.162-94.72-default or later

HugePages Oracle建议禁用Transparent HugePages并使用标准HugePages以提高性能
/tmp 至少1G,如果不足需配置TMPTMPDIR变量指定位置
SWAP     ORACLE DB
1G<RAM<=2G 1.5倍RAM
2G<RAM<=16G  等于RAM
RAM>16G  16G
ORACLE RESTART
8G<RAM<16G 等于RAM
RAM>16G =16G
以上如果配置了HugePages,可以先减去分配给HugePages的内存,再计算SWAP
UNSET环境变量 如果已经安装的有Oracle 软件,且使用相同用户安装Oracle软件,需要取消所有相关环境变量配置
unset ORACLE_HOME, ORACLE_BASE, ORACLE_SID, TNS_ADMIN,ORA_NLS10,ORA_CRS_HOME
Root 脚本 可使用root 执行,也可以使用sudo 执行
最小磁盘需求 对于Linux x86-64
对于standalone 服务器安装,Grid 至少需要6.8G
Oracle Database 至少7.5G 
License信息
只能使用购买了授权的组件,更多License信息参考Oracle Database Licensing Information
Oracle ORAchk 建议在Fresh 安装或升级前都使用ORAchk检查,避免安装过程中出现问题。
Fresh 数据库安装 ./orachk -profile preinstall
升级数据库 ./orachk -u -o pre
GI 安装 如果要使用ASM或Oracle Restart需要在安装数据库前先安装 Oracle Grid Infrastructure for a standalone server
关闭Oracle进程 在不使用Oracle ASM的独立数据库上:安装Oracle Grid Infrastructure时无需关闭数据库
在使用Oracle ASM的独立数据库上:在安装期间会重启Oracle ASM实例
在Oracle RAC数据库节点上,安装需要升级Oracle Clusterware,您必须一次关闭一个节点,执行滚动升级。
Oracle数据库管理工具
默认情况下,Oracle数据库由Oracle Enterprise Manager Database Express管理。
如果您有Oracle Management Agent,并决定使用OEM Cloud Control集中管理数据库,那么请获取以下信息:
OMS主机/OMS端口/EM管理员用户名/EM管理员密码/ASMSNMP用户的密码
内存管理 建议使用ASMM,物理内存大于4G不能使用AMM,也不建议使用
 

Oracle 19C 下的几个小工具:

[oracle@orcl19c ~]$ ls $ORACLE_HOME/suptools
orachk oratop tfa

2.为Oracle检查和配置服务器硬件

检查硬件和内存
grep MemTotal /proc/meminfo
grep SwapTotal /proc/meminfo
df -h /tmp
free
uname -m
df -h /dev/shm
 
 

使用Oracle Preinstallation RPM自动配置Oracle Linux

4 为Oracle配置Linux操作系统

Oracle 18C RPM 包需求
RedHat 6:
SSH
Red Hat Enterprise Linux 6.4: 2.6.32-358.el6.x86_64 or later
 
yum install -y bc binutils compat-libcap1 compat-libstdc++ compat-libstdc++.i686 e2fsprogs e2fsprogs-libs glibc.i686 glibc \
glibc-devel.i686 glibc-devel ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libX11.i686 libX11 libXau.i686 libXau libXi.i686 \
libXi libXtst.i686 libXtst libXrender.i686 libXrender libXrender-devel.i686 libXrender-devel libgcc.i686 libgcc libstdc++.i686 libstdc++ \
libstdc++-devel.i686 libstdc++-devel libxcb.i686 libxcb make net-tools nfs-utils smartmontools sysstat
 
 
RedHat 7:
SSH
Red Hat Enterprise Linux 7: 3.10.0-123.el7.x86_64 or later

yum install -y bc binutils compat-libcap1 compat-libstdc++.i686 compat-libstdc++ glibc.i686 glibc glibc-devel.i686 glibc-devel \
ksh libaio.i686 libaio libaio-devel.i686 libaio-devel libX11.i686 libX11 libXau.i686 libXau libXi.i686 libXi libXtst.i686 libXtst \
libXrender-devel.i686 libXrender-devel libXrender.i686 libXrender libgcc.i686 libgcc libstdc++.i686 libstdc++ libstdc++-devel.i686 libstdc++-devel \
libxcb libxcb.i686 make nfs-utils net-tools python python-configshell python-rtslib python-six smartmontools sysstat targetcli gcc-c++
 
 
检查是否有遗漏

rpm -q bc binutils compat-libcap1 compat-libstdc++-33.i686 compat-libstdc++-33 glibc.i686 glibc glibc-devel.i686 glibc-devel \
ksh libaio.i686 libaio libaio-devel.i686 libaio-devel libX11.i686 libX11 libXau.i686 libXau libXi.i686 libXi libXtst.i686 libXtst \
libXrender-devel.i686 libXrender-devel libXrender.i686 libXrender libgcc.i686 libgcc libstdc++.i686 libstdc++ libstdc++-devel.i686 libstdc++-devel \
libxcb libxcb.i686 make nfs-utils net-tools python python-configshell python-rtslib python-six smartmontools sysstat targetcli gcc-c++
 
 
操作系统RedHat7.6 不包含如下两个包,忽略:

package compat-libstdc++.i686 is not installed
package compat-libstdc++ is not installed
 
 
Oracle 19C需要的软件包
ssh
Red Hat Enterprise Linux 7.4: 3.10.0-862.11.6.el7.x86_64 or later

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 smartmontools sysstat
 
其他可能需要的包
yum install -y xorg-x11-xauth tigervnc-server zip unzip smartmontools lrzsz readline readline-devel
适用于Linux的其他驱动程序和软件包(略,一般不需要)
非必须安装,但您可以有选择的安装或配置这些包
PAM Oracle 强烈建议安装最新的PAM库
OCFS2 包含在OEL6/OEL7中,您可以和GI 一起使用,但并不是必须使用,也没必要。
Oracle Messaging Gateway 和数据库一起安装了,其他组件通常不需要。
ODBC 是一系列数据库访问API,如果您要安装请安装最新的:http://www.unixodbc.org,最低版本要求:unixODBC-2.3.4 or later
LDAP 如果需要使用LDAP特性的功能,才需要装,略
编程环境,略
Web浏览器,略

安装适用于Linux的cvuqdisk RPM

如果没有cvuqdisk,Cluster Verification Utility无法发现共享磁盘,并且在运行Cluster Verification Utility时收到错误消息“Package cvuqdisk not installed”。
  1. 找到cvuqdiskRPM包,它位于Grid_home目录中/cv/rpm
  2. cvuqdisk程序包复制到群集上的每个节点。您应该确保每个节点都运行相同版本的Linux。
  3. root登录
  4. CVUQDISK_GRP=oinstall; export CVUQDISK_GRP
    rpm -iv cvuqdisk-1.0.10-1.rpm

确认主机名解析

如:ping myhostname  应该是可解析的

禁用透明HugePages

Oracle建议您在开始安装之前禁用Transparent HugePages。

透明HugePages内存和标准HugePages 内存不同,因为内核khugepaged 线程会在运行期间自动分配内存,而标准HugePages内存是在启动时预分配的,不会在运行期间调整。

透明HugePages可能导致运行期间内存分配延迟,Oracle建议禁用,改用标准HugePages以提升性能,检查是否开启透明大页:

RedHat内核:

# cat /sys/kernel/mm/redhat_transparent_hugepage/enabled

其他内核:

# cat /sys/kernel/mm/transparent_hugepage/enabled

输出如下[always]表示启用了透明大页

[always] never 

如果透明HugePages 被从内核中移除,则文件/sys/kernel/mm/transparent_hugepage 和 /sys/kernel/mm/redhat_transparent_hugepage 将不存在

禁用透明HugePagegs,在RedHat 7中,添加transparent_hugepage=never 参数到/etc/default/grub文件。例如:

RUB_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"

注意,不同操作系统可能文件名不同。

运行如下命令,重新生成grub.cfg文件

# grub2-mkconfig -o /boot/grub2/grub.cfg

重启操作系统使变更永久生效。

在安装期间使用自动SSH配置

    集群环境下,每个节点都要配置ssh,在安装期间OUI通过ssh/scp 向远程节点copy 文件并在远程节点执行命令,Oracle EM 同样要使用SSH.
你可以在安装期间通过OUI为安装用户配置SSH,该自动配置将在集群节点间配置无需密码的 SSH连接,Oralce建议尽可能使用该自动化配置过程。

在极少数情况下,当远程节点关闭SSH连接时,Oracle Clusterware安装可能会在“AttachHome”操作期间失败。要避免此问题,请通过在所有群集节点上的SSH守护程序配置文件/etc/ssh/sshd_config中设置以下参数,将timeout wait设置为无限制

vi /etc/ssh/sshd_config
LoginGraceTime 0

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

为了获得Oracle ASM的最佳性能,Oracle建议您使用Deadline I/O 调度程序。
磁盘 I/O 调度程序对磁盘I/O的请求进行重新排序,延迟或合并,以实现更高的吞吐量和更低的延迟。Linux有多个磁盘I/O调度程序可用,包括Deadline,Noop,Anticipatory和Completely Fair Queuing(CFQ)。
在每个群集节点上,输入以下命令以验证是否已配置Deadline磁盘I/O调度程序以供使用:
# cat /sys/block/${ASM_DISK}/queue/scheduler
noop [deadline] cfq
在此示例中,默认磁盘I / O调度程序为Deadline,并且ASM_DISK是Oracle自动存储管理(Oracle ASM)磁盘设备。

在某些虚拟环境(VM)和特殊设备(如快速存储设备)上,上述命令的输出可能是none操作系统或VM绕过内核I / O调度并将所有I / O请求直接提交给设备。请勿在此类环境中更改I / O计划程序设置。

如果默认磁盘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/
  4. 加载规则文件并重新启动UDEV服务。例如:
    1. Oracle Linux和Red Hat Enterprise Linux
      # udevadm control --reload-rules
    2. SUSE Linux Enterprise Server
      # /etc/init.d boot.udev restart
  5. 验证磁盘I/O调度程序是否设置为Deadline。

为Oracle Grid Infrastructure和Oracle数据库配置用户,组和环境

在安装之前,请创建操作系统组和用户,以及配置用户环境。

所需的操作系统组和用户

当您第一次在系统上安装Oracle软件时,OUI会创建该oraInst.loc文件。

使用此more命令确定您的系统上是否有Oracle中央库存。例如:

# more /etc/oraInst.loc
inventory_loc=/u01/app/oraInventory    #当前的Oracle 中央目录路径
inst_group=oinstall             #对中央目录具有写权限的操作系统组,默认oinstall

使用如下命令确认Oracle Inventory组仍存在于系统上。例如:

$ grep oinstall /etc/group
oinstall:x:54321:grid,oracle
不要把oraInventory 放在Oracle base 目录下,因为这可能导致其他安装的用户权限错误。
如果Oracle Inventory组不存在,则添加
# /usr/sbin/groupadd -g 54321 oinstall
你只能拥有一个GI安装所有者grid,负责Oracle Clusterware 和Oracle ASM.
但你可以为多个不同的安装,有多个Oracle 用户。
Oracle软件所有者必须将Oracle Inventory组作为其主要组,以便每个Oracle软件安装所有者都可以写入中央目录(oraInventory),以便正确设置OCR和Oracle Clusterware资源权限。数据库软件所有者还必须具有OSDBA组和OSOPER,OSBACKUPDBA,OSDGDBA,OSRACDBA和OSKMDBA组作为辅助组(如果您创建它们。如:

/usr/sbin/groupadd -g 54321 oinstall
/usr/sbin/groupadd -g 54322 dba          #管理数据库
/usr/sbin/groupadd -g 54323 oper         #数据库启停
/usr/sbin/groupadd -g 54324 backupdba    #备份恢复dba
/usr/sbin/groupadd -g 54325 dgdba        #管理和监视dg
/usr/sbin/groupadd -g 54326 kmdba        #加密密钥管理
/usr/sbin/groupadd -g 54327 asmdba       #访问Oracle ASM
/usr/sbin/groupadd -g 54328 asmoper      #启动和关闭Oracle ASM
/usr/sbin/groupadd -g 54329 asmadmin
/usr/sbin/groupadd -g 54330 racdba        #rac管理
/usr/sbin/useradd -u 54321 -g oinstall -G dba,asmdba,backupdba,dgdba,kmdba,racdba oracle
useradd -g oinstall -G dba,asmdba,asmoper,asmadmin,racdba grid
 
 
对于Oracle Restart安装,要成功安装Oracle数据库,请确保grid用户是racdba的成员
Oracle数据库有两个标准管理员组:OSDBA(必需)和OSOPER(可选)。
Oracle Database 12c第1版(12.1)及更高版本提供了系列扩展的数据库组,用于授予基于特定任务的系统特权。
ASMSNMP  是一个具有监控Oracle ASM权限的ASM用户,安装过程中要求您提供其密码。OEM使用它监控Oracle ASM 实例。
您可以创建asmsnmp数据库用户,授予他ASM的sysdba权限。用来监控ASM运行状态。
Oracle GI 组为其成员提供访问和管理Oracle ASM的权限。
如果您不想使用角色分配组,那么Oracle强烈建议您至少使用两个组.dba 和 oinstall
dba 负责所有的系统管理权限
oinstall (oraInventory 组)具有所有Oracle软件安装权限
 

创建操作系统权限组

/usr/sbin/groupadd -g 54327 asmdba     #具有访问ASM权限

/usr/sbin/groupadd -g 54328 asmoper    #具有启动关闭ASM权限

/usr/sbin/groupadd -g 54322 dba        #SYSDBA权限
/usr/sbin/groupadd -g 54323 oper       #启动和关闭数据库

/usr/sbin/groupadd -g 54324 backupdba  #通过RMAN 或 SQLPLUS 执行备份恢复

/usr/sbin/groupadd -g 54325 dgdba      #管理和监控DG

/usr/sbin/groupadd -g 54326 kmdba      #加密密钥管理

/usr/sbin/groupadd -g 54330 racdba     #RAC集群下的Oracle DB 日常管理

创建操作系统Oracle安装用户

/usr/sbin/useradd -u 54321 -g oinstall -G dba,asmdba,backupdba,dgdba,kmdba,racdba oracle
对于Oracle Grid Infrastructure安装,所有节点上的用户ID和组ID必须相同。
为grid/oracle 用户设置umask 022, 确保创建的文件权限为644
echo umask 022 >>~/.bash_profile
设置grid/oracle 用户descriptors and processes
vi ~/.bash_profile 移除环境变量设置ORACLE_SIDORACLE_HOME, or ORACLE_BASE 等
如果/tmp 不足1G,设置TMP,TMPDIR 变量指向空间足够的位置,/tmp 不能指向共享文件系统
 

检查Oracle软件安装用户的资源限制

vi /etc/security/limits.conf

oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
oracle soft memlock (使用HugePage:90%Mem,单位KB.不使用HuagePages:3145728 (3G))
oracle hard memlock (使用HugePage:90%Mem,单位KB.不使用HuagePages:3145728 (3G))
 

设置远程显示和X11转发配置

远程显示:
export DISPLAY=hostname:0
X11转发
配置用户级ssh客户端配置文件
vi ~/.ssh/config
Host * 
    ForwardX11 no

防止终端输出命令引起的安装错误

Grid Infrastructure 安装期间需要通过ssh在远程运行命令,scp 复制文件。如果系统隐藏文件包含stty 命令可能导致安装错误。
为了避免这个问题,你需要修改每个oracle 软件安装用户家目录的隐藏文件,抑制STDOUT or STDERR,如下:
if [ -t 0 ]; then
   stty intr ^C
fi

创建Oracle Database Vault用户帐户

如果您打算默认使用Oracle Database Vault,则必须创建Oracle Database Vault用户帐户并配置该用户。

您必须先创建Database Vault Owner帐户,然后才能使用Oracle Database Vault。您还可以创建Database Vault Account Manager管理帐户。

Oracle Database Vault安装基准数据库审计策略。此策略涵盖存储在Oracle Database Vault数据库表中的访问控制配置信息,存储在Oracle Catalog中的信息(回滚段,表空间等),系统权限的使用以及Oracle Label Security配置。安装Oracle Database Vault时,将使用默认值初始化特定于安全性的数据库初始化参数。

参考:

 

取消Oracle安装用户环境变量

在开始安装之前,请取消设置Oracle安装所有者环境变量。如果环境变量设置与安装所需的值冲突,则可能会导致问题。
unset ORA_CRS_HOME ORACLE_HOME ORA_NLS10 TNS_ADMIN以及为Oracle安装用户设置的任何其他环境变量。
确保将$ORACLE_HOME/bin 从环境变量PATH 中移除
 

6 配置Oracle数据库网络

在安装期间分配全局数据库名

输入的数据库名用于设置DB_NAMEDB_UNIQUE_NAMEDB_DOMAIN参数。

Oracle数据库软件通过其全局数据库名称标识数据库。全局数据库名称由数据库名称和数据库域组成。通常,数据库域与网络域相同,但不一定如此。全局数据库名称唯一的区分数据库与同一网络中的任何其他数据库。在安装期间或使用Oracle Database Configuration Assistant创建数据库时,可以指定全局数据库名称。

例如:
sales.us.example.com

这里:

  • sales.us是数据库的名称。数据库名称(DB_UNIQUE_NAME)部分是一个不超过30个字符的字符串,可以包含字母数字字符,下划线(_),美元符号($)和井号(#),但必须以字母字符开头。数据库名称中不允许使用其他特殊字符。
  • sales.us也是DB_NAMEDB_NAME初始化参数指定最多八个字符的数据库识别符。
  • example.com是数据库所在的数据库域。在此示例中,数据库域等于网络域。数据库名称和数据库域一起使全局数据库名称唯一。域部分是一个不超过128个字符的字符串,可以包含字母数字字符,下划线(_)和井号(#)。DB_DOMAIN初始化参数指定数据库的域名。

但是,DB_NAME参数不一定是DB_UNIQUE_NAME的前八个字符

DB_UNIQUE_NAMEDB_DOMAIN结合起来,构成全局数据库名SERVICE_NAMES

系统标识符(SID)标识特定的数据库实例。同一台电脑上SID唯一标记一个实例。每个数据库实例都需要唯一的SID和数据库名称。在大多数情况下,SID等于全局数据库名称的数据库名称部分。

 

设置ORACLE_HOSTNAME环境变量

$ ORACLE_HOSTNAME=somehost.example.com
$ export ORACLE_HOSTNAME
安装数据库在包含多个主机别名的服务器上,必须指定变量ORACLE_HOSTNAME 。(同一个IP地址注册到naming service,解析为多个主机名),命名服务将任何这些别名解析为同一台计算机。设置Oracle安装用户环境变量ORACLE_HOSTNAME为你想要使用的主机名。
 

7 OracleDB和GI支持的存储选项

存储选项 二进制文件 数据文件 恢复文件
oracle ASM
(环回设备不支持使用Oracle ASM)
No Yes Yes
Oracle ACFS Yes Yes (12.1以后) Yes (12.1以后)
本地文件系统 Yes Yes (不推荐) Yes (不推荐)
NAS(network-attached storage) 上的NFS Yes Yes Yes

选择存储选项时,请遵循以下准则:

  • Oracle强烈建议您为Oracle ASM使用一系列专用磁盘。
  • 如果满足所选存储选项的所有要求,则可以为每种文件类型选择受支持的存储选项的任意组合。
  • 您可以使用Oracle ASM存储Oracle Clusterware文件。
  • 不支持直接使用原始或块设备。您只能在Oracle ASM下使用原始设备或块设备。
关于Standalone Server的Oracle GI
如果您计划使用Oracle ASM,则必须在安装数据库之前安装Oracle Restart。
Oracle GI for a standalone server 是一个支持单实例数据库的Oracle GI版本。此支持包括卷管理,文件系统和自动重启功能。用于standalone server 的Oracle GI包括Oracle Restart和Oracle ASM.Oracle将这两种基础架构产品组合成一组安装在Oracle Restart主目录中的二进制文件。
Oracle Restart是作为Oracle Grid Infrastructure的一部分提供的功能。Oracle Restart监视并可以重新启动Oracle数据库实例,Oracle Net Listeners和Oracle ASM实例。Oracle Restart目前仅限于管理单实例Oracle数据库和Oracle ASM实例。
Oracle ASM 是一个卷管理器也是文件系统,用来存储Oracle 数据文件,它支持单实例Oracle数据库和Oracle RAC配置。Oracle ASM还支持通用文件系统,包括Oracle二进制文件。Oracle ASM是Oracle推荐的存储管理解决方案,可替代传统的卷管理器和文件系统。

Oracle Restart通过提供以下服务来提高Oracle数据库的可用性:

  • 当出现硬件或软件故障时,Oracle Restart会自动启动所有Oracle组件,包括Oracle数据库实例,Oracle Net Listener,数据库服务和Oracle ASM。
  • 重新启动数据库主机时,Oracle Restart以正确的顺序启动组件。
  • Oracle Restart会定期检查以监视Oracle组件的状态。如果组件的检查操作失败,则组件将关闭并重新启动。

Oracle ACFS的限制和指南

  • Oracle ACFS 提供通用文件系统。
  • 配置Oracle ASM的情况下,才能使用Oracle ACFS。
  • 请注意以下有关在Oracle ACFS上放置Oracle数据库和Oracle Grid Infrastructure文件的一般准则和限制:
    • 您可以在Oracle ACFS上放置Oracle数据库二进制文件,数据文件和管理文件(例如,跟踪文件)。
    • Oracle ACFS不支持对Oracle数据库数据文件,表空间文件,控制文件和重做日志进行加密。
    • 仅当数据库版本为Oracle Database 11g第2版或更新版本时,才能将Oracle数据库主目录置于Oracle ACFS上。您无法在Oracle ACFS上安装早期版本的Oracle数据库。
    • 您无法将Oracle Clusterware文件放在Oracle ACFS上。
  • Oracle Restart不支持基于root的Oracle Clusterware资源。因此,如果在Oracle Restart 配置上运行Oracle ACFS,则以下限制适用:
    • 从Oracle Database 18c开始,配置助手不允许在Oracle Restart配置中的Oracle ACFS上创建Oracle数据库主目录。
    • Oracle Restart 在所有平台都不支持Oracle ACFS资源。
    • 从Oracle Database 12c开始,Oracle Restart配置不支持Oracle ACFS注册。
    • 在Linux上,Oracle ACFS提供了一种自动机制,用于在系统重新启动和关闭时加载和卸载驱动程序以及装载和卸载Oracle ACFS文件系统。但是,Oracle ACFS在系统运行时不提供已装入文件系统的自动恢复。除Linux之外,Oracle ACFS不在其他操作系统上提供此自动机制。
    • 不支持在Oracle Restart配置的Oracle ACFS文件系统上创建Oracle数据文件。支持在GI for RAC 的ACFS 上创建数据文件。
  • IBM AIX Workload Partitions(WPAR)不支持Oracle ACFS和Oracle ADVM。

Oracle数据库的文件系统选项

如果在文件系统上安装Oracle数据库文件,Oracle建议将文件系统与操作系统或Oracle数据库软件使用的文件系统分开。
标准Oracle数据库创建选项
  • 如果要在非逻辑卷或RAID设备的基本磁盘上创建数据库,建议将数据文件分散到多个磁盘
  • 如果在LVM或RAID配置中使用多个磁盘,则Oracle建议您使用Stripe and Mirror Everything(SAME)方法来提高性能和可靠性。使用此方法,您不必为数据库存储指定多个文件系统挂载点。
  • 从认证的NAS 设备挂载的NFS,您还可以选择使用Direct NFS Client,它简化了NFS配置的管理并提高了性能。

高级Oracle数据库创建选项

  • 标准Oracle数据库安装可用的三个文件系统选项。
  • 使用Oracle Managed Files,您可以指定文件系统目录,数据库在对象级别自动创建,命名和管理文件。
  • 如果使用OMF特性,则在创建或删除数据库文件时,必须仅指定数据库对象名而不是文件名。

 

NFS 是一种共享文件系统协议,因此NFS 支持单实例和RAC数据库
存储在NAS设备上的Oracle软件和数据库的性能取决于服务器与NAS设备之间的网络连接性能。为了获得更好的性能,Oracle建议您使用专用网络将服务器连接到NAS设备。应使用千兆以太网或更好。
在开始安装之前,NFS文件系统必须已经mount 并可供服务器使用。
 

关于挂载到NFS存储设备的Direct NFS客户端

Direct NFS Client直接在Oracle软件中集成NFS客户端功能,以优化Oracle和NFS服务器之间的I / O路径。这种集成可以显着提高性能。
Direct NFS Client支持NFSv3,NFSv4,NFSv4.1和pNFS协议来访问NFS服务器。Direct NFS Client还简化了数据库工作负载的NFS客户端配置的性能优化,并在许多情况下实现了自动化。
从Oracle Database 12c第2版开始,启用Direct NFS时,还可以启用Direct NFS dispatcher。Direct NFS调度程序可以将创建的从数据库实例到NFS服务器的TCP连接合并。在大型数据库部署中,使用Direct NFS调度程序可提高可伸缩性和网络性能。并行NFS部署同样需要大量连接。因此,也建议使用Direct NFS调度程序进行并行NFS部署。
Direct NFS Client可以从操作系统挂载点或oranfstab文件获取NFS挂载点

直接NFS客户端要求

  • NFS服务器的写入大小值(wtmax必须为32768或更高才能与Direct NFS Client一起使用。
  • NFS挂载点必须由操作系统内核NFS客户端和Direct NFS Client同时挂载,即使您配置了Direct NFS Client提供文件服务。

    如果Oracle数据库无法使用Direct NFS Client连接到NFS服务器,则Oracle Database将使用操作系统内核NFS客户端连接到NFS服务器。当Oracle数据库无法通过Direct NFS Client连接到NAS存储时,它会在Oracle Alert log和trace files中记录有关Direct NFS客户端连接错误的信息性消息。

  • 遵循标准指南,以维护操作系统NFS和Direct NFS客户端安装的Oracle数据库文件的完整性。

直接NFS挂载点搜索顺序

Direct NFS Client按以下顺序搜索挂载点:

  1. $ORACLE_HOME/dbs/oranfstab
  2. /etc/oranfstab
  3. /etc/mtab

Direct NFS Client使用第一个匹配条目作为挂载点。

注意:

每个实例只能有一个活动的Direct NFS客户端。在实例上使用Direct NFS Client会阻止另一个Direct NFS Client实施。

Oracle Database Reference 设置enable_dnfs_dispatcher 参数启用 Direct NFS dispatcher
Oracle Database Performance Tuning Guide 了解启用Parallel NFS and Direct NFS dispatcher的性能优势
Oracle Automatic Storage Management Administrator's Guide 使用Direct NFS Client 或 kernel NFS创建的数据文件管理指导

配置Oracle数据库文件系统存储

为了获得最佳的数据库组织和性能,Oracle建议您将数据文件和Oracle数据库软件安装在不同的磁盘中。
如果计划将存储放在网络文件系统(NFS)设备,Oracle建议您使用Oracle Direct NFS(dNFS)来利用Oracle Direct NFS客户端内置的性能优化。

Related Topics


为Oracle数据库配置NFS Buffer Size 参数
设置NFS buffer size参数rsize  和wsize为至少 32768.
例如, 为一个Oracle 数据文件挂载点设置buffer size 为32768, 设置类似如下:
nfs_server:/vol/DATA/oradata /home/oracle/netapp nfs\
rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,actimeo=0,vers=3,timeo=600
Direct NFS Client 以wtmax 粒度向NFS 服务器写入
 

为Direct NFS Client检查TCP网络协议Buffer

默认情况下,TCP的network buffer size 设置为1 MB,UDP的network buffer size 设置为2 MB。TCP buffer size 可以对文件传输设置限制,这可能会对Direct NFS Client用户性能产生负面影响。
检查当前的TCP缓冲区大小,请输入以下命令:
# sysctl -a |grep -e net.ipv4.tcp_[rw]mem

此命令的输出类似于以下内容:

net.ipv4.tcp_rmem = 4096        87380   1056768
net.ipv4.tcp_wmem = 4096        16384   1056768

Oracle建议您根据服务器的链接速度设置值。例如,执行以下步骤:

  1. 因为root,使用文本编辑器打开/etc/sysctl.conf,添加或更改以下内容:
    net.ipv4.tcp_rmem = 4096        87380   4194304
    net.ipv4.tcp_wmem = 4096        16384   4194304
    
  2. 运行以下命令应用您的更改:
    # sysctl -p
    
  3. 重启网络:
    # /etc/rc.d/init.d/network restart

为Direct NFS客户端创建oranfstab文件

Direct NFS通过配置文件oranfstab来确定可用的挂载点。
为你要通过Direct NFS Client连接的每台NFS 服务器,创建具有如下属性的oranfstab  文件:

  • server

    NFS服务器名称。

  • local

    数据库主机上最多指定四个路径,可使用IP地址或名称,在数据库主机上使用ifconfig的命令显示

  • path

    最多四个到NFS服务器的网络路径,由IP地址或名称指定,在NFS服务器上使用ifconfig的命令显示

  • export

    NFS服务器上的导出路径。

  • mount

    导出卷的相应本地挂载点。

  • mnt_timeout

    指定(以秒为单位)Direct NFS Client在超时之前应等待成功挂载的时间。此参数是可选的。默认超时为10分钟(600)。

  • nfs_version

    指定Direct NFS Client使用的NFS协议版本。可能的值包括NFSv3,NFSv4,NFSv4.1和pNFS。默认版本为NFSv3。如果选择NFSv4.x,则必须配置oranfstab 的值nfs_version如果要将Direct NFS与并行NFS一起使用,请指定nfs_versionpNFS

  • security_default

    指定服务器访问的所有导出的NFS服务器路径都适用的默认安全模式。此参数是可选的。sys是默认值。请参考security 参数描述,了解security_default参数支持的安全级别

  • security

    指定安全级别,为Direct NFS Client使用Kerberos认证协议保证安全性。该可选参数可为每个export-mount 对分别指定。security_defaultsecurity参数支持的安全级别为

    • sys:UNIX级别安全性基于UID和GID的AUTH_UNIX认证。这是安全参数的默认值。
    • krb5:Direct NFS在Kerberos认证下运行。服务器被认证为真实服务器,就如它声称的一样。
    • krb5i:Direct NFS在Kerberos认证和NFS完整性下运行。对服务器进行身份验证,并检查每个消息传输的完整性。
    • krb5p:Direct NFS在Kerberos认证和NFS隐私下运行。服务器都要通过身份验证,并且所有数据都是完全加密的。

    安全参数,如果指定,优先于security_default参数。如果这些参数都未指定,则sys是默认身份验证。

    对于NFS服务器Kerberos安全设置,请查看相关的NFS服务器文档。对于Kerberos客户端设置,请查看相关的操作系统文档。

  • dontroute

    指定传出消息不应由操作系统路由,而是使用它们绑定的IP地址发送。

    注意:

    dontroute选项是POSIX选项,在同一subnet中具有多个路径的Linux系统上有时不起作用。

  • management

    使Direct NFS Client能够使用管理接口进行SNMP查询。如果SNMP在NFS服务器上的单独管理接口上运行,则可以使用此参数。默认值是服务器参数值。

  • community

    指定用于SNMP查询的社区字符串。默认值是public

以下示例显示了oranfstab三个可能的NFS服务器访问单个oranfstab可以有多个NFS服务器访问条目。

示例8-1 使用 Local 和 Path 的服务器访问条目

以下示例同时使用了local和path。因为它们位于不同的子网中,所以您不必指定dontroute

server: MyDataServer1
local: 192.0.2.0
path: 192.0.2.1
local: 192.0.100.0
path: 192.0.100.1
export: /vol/oradata1 mount: /mnt/oradata1

示例8-2 在同一子网中使用 local 和path,指定dontroute

local和path在同一子网,指定dontroute

server: MyDataServer2
local: 192.0.2.0
path: 192.0.2.128
local: 192.0.2.1
path: 192.0.2.129
dontroute
export: /vol/oradata2 mount: /mnt/oradata2

示例8-3使用名称代替IP地址,具有多个Exports,management和community

server: MyDataServer3
local: LocalPath1
path: NfsPath1
local: LocalPath2
path: NfsPath2
local: LocalPath3
path: NfsPath3
local: LocalPath4
path: NfsPath4
dontroute
export: /vol/oradata3 mount: /mnt/oradata3
export: /vol/oradata4 mount: /mnt/oradata4
export: /vol/oradata5 mount: /mnt/oradata5
export: /vol/oradata6 mount: /mnt/oradata6
management: MgmtPath1
community: private

示例8-4使用Direct NFS Exports的Kerberos身份认证

security参数覆盖security_default

server:  nfsserver
 local: 192.0.2.0
 path: 192.0.2.2
 local: 192.0.2.3
 path: 192.0.2.4
 export: /private/oracle1/logs  mount: /logs  security: krb5
 export: /private/oracle1/data  mount: /data  security: krb5p
 export: /private/oracle1/archive mount: /archive security: sys 
 export: /private/oracle1/data1 mount: /data1
 security_default: krb5i

启用和禁用NFS的Direct NFS客户端控制

默认情况下,Direct NFS Client 以禁用状态和单实例数据库一起安装,启用之前,您必须配置oranfstab 文件
通过以下步骤启用或禁用。
启用
 
cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk dnfs_on
 
禁用1. oracle 用户执行

cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk dnfs_off
 
2. 删除oranfstab 文件

注意:

如果删除Oracle数据库正在使用的NFS路径,则必须重新启动数据库才能使更改生效。

在Direct NFS客户端上启用混合列压缩

执行以下步骤以在Direct NFS客户端上启用混合列压缩(HCC):

  1. 确保在NFS存储服务器上启用了SNMP。例如:
    $ snmpget -v1 -c public server_name .1.3.6.1.4.1.42.2.225.1.4.2.0
    SNMPv2-SMI::enterprises.42.2.225.1.4.2.0 = STRING: "Sun Storage 7410"
  2. 如果在NFS服务器以外的接口上启用了SNMP,则配置oranfstab使用management参数
  3. 如果使用public之外的社区字符串配置SNMP,则配置oranfstab使用community参数
  4. 检查snmpget是否可用来 确保libnetsnmp.so已经安装

为Standalone Server配置Oracle Grid Infrastructure存储

 
10 为Standalone Server安装和配置Oracle Grid Infrastructure
 

11 安装Oracle数据库

Oracle数据库和Oracle Grid Infrastructure安装软件在多种介质中以基于映像的zip文件的形式提供,可以使用多个选项进行安装。

在大多数情况下,您使用Oracle Universal Installer提供的图形用户界面(GUI)来安装软件。但是,您也可以使用Oracle Universal Installer完成静默模式安装。

注意:

要在Oracle自动存储管理(Oracle ASM)上安装Oracle数据库文件,必须首先为standalone server安装完成Oracle Grid Infrastructure。用于standalone server的Oracle Grid Infrastructure包含了Oracle Restart和Oracle ASM。

要升级现有Oracle ASM,请通过运行Oracle Grid Infrastructure升级来升级。

您不能使用早期版本的Oracle Universal Installer来安装此版本的组件。

关于基于映像的Oracle数据库安装

从18C 开始Oracle提供了镜像形式的Oracle 软件,创建Oracle Home(建议符合OFA建议)后,解压软件包到ORACLE_HOME,然后运行runInstaller注册数据库软件。
单实例和集群都可以通过这种方式部署。
使用此方法可以实现自定义镜像的部署,比如打过补丁或升级后,创建黄金镜像部署到其他服务器。

关于使用Oracle Fleet Patching和Provisioning部署Oracle数据库

从Oracle 19C 开始, Rapid Home Provisioning被重命名为Oracle Fleet Patching and Provisioning (Oracle FPP).。
通过Oracle Fleet Patching和Provisioning,您可以Oracle软件镜像方式创建,存储和管理OracleHome模板(这称为gold images)。比如数据库,中间件和应用。您可以制作任何黄金映像的工作副本,然后您可以将该工作副本提供给数据中心或云计算环境中的任何节点。
无论集群还是单节点还是OracleRestart 上,无论是否安装有GI 都可以通过Oracle FPP部署,打补丁和升级。
Microsoft Windows和HP-UX Itanium系统不支持Oracle Fleet Patching和Provisioning
 
挂载镜像到操作系统
# mount -t iso9660 /dev/dvd /mnt/dvd

关于安装期间的字符集选择

创建数据库后,更改其字符集通常在时间和资源方面非常昂贵。此类操作可能需要通过导出导入来转换所有字符数据。因此,在安装时仔细选择数据库字符集非常重要。

Oracle在以下地方使用字符集:

  • 字符数据类型(CHARVARCHAR2CLOB,和LONG)。
  • 表名,列名和PL / SQL变量等标识符。
  • 存储的SQL和PL / SQL源代码,包括嵌入在此代码中的文本文字
从Oracle Database 12c第2版(12.2)开始,从通用/事务处理或数据仓库模板创建的数据库的缺省数据库字符集是Unicode AL32UTF8
Unicode是通用字符集,支持世界上大多数当前使用的语言。它还支持许多历史脚本(字母表)。Unicode是许多技术的默认编码,包括Java,XML,XHTML,ECMAScript和LDAP。Unicode非常适合支持互联网和全球化。
AL32UTF8是一个多字节字符集,字符操作相比单字节字符集(如WE8ISO8859P1或WE8MSWIN1252)可能会稍微慢一些。存储空间AL32UTF8与支持该语言的传统字符集相比要求更高一些英文数据只有存储在CLOB列中时,才可能需要更多空间非字符数据类型(如NUMBER or DATE)的存储不依赖于字符集。Unicode的普遍性和灵活性通常超过了这些额外的成本。
多租户容器数据库(CDB)的数据库字符集决定以后可以插入哪些数据库。确保你的容器数据库与要插拔的PDB字符集兼容。如果你选择AL32UTF8, 则可插拔任何Oracle 数据库支持的字符集(基于EBCDIC的字符集除外)。
 

关于AMM

如果物理内存大于4GB,则安装过程中不能选择AMM,可以选择ASMM

安装Oracle数据库软件

在启动Oracle数据库或Grid 安装向导之前,请确定是否要使用任何可用的镜像创建选项。
提取数据库镜像文件并运行runInstaller命令开始安装。        

安装向导用于创建镜像的安装选项

基于镜像的安装你可以安装数据库或Grid通过运行runInstaller 和 gridSetup.sh ,他们都提供了镜像创建选项:

表11-1安装向导的映像创建选项

选项
描述
-createGoldImage 从当前的Oracle Home创建黄金镜像
-destinationLocation 指定要创建黄金镜像的完整路径或位置。
-exclFiles 指定要从新创建的黄金镜像中排除的文件的完整路径。
—help 帮助。
 

例如:

./runInstaller -createGoldImage -destinationLocation /tmp/my_db_images
./gridSetup.sh -createGoldImage -destinationLocation /tmp/my_grid_images

 

运行Oracle数据库安装向导以安装Oracle数据库

Oracle 给出的安装步骤:
Oracle用户执行:
$ mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1
$ chgrp oinstall /u01/app/oracle/product/19.0.0/dbhome_1
$ cd /u01/app/oracle/product/19.0.0/dbhome_1
$ unzip -q /tmp/db_home.zip
$ cd /u01/app/oracle/product/19.0.0/dbhome_1
$ ./runInstaller
配置选项选择:Create and configure a single instance database.
你可以提供信息自动运行root脚本,也可以手工运行。如果自动运行该失败,你可以修复问题后重新执行。

使用RPM软件包安装Oracle数据库

关于基于RPM的Oracle数据库安装

从Oracle Database 18c开始,您可以使用RPM软件包安装单实例Oracle数据库或Oracle Database Instant Client软件。

基于RPM的安装执行预安装检查,提取数据库软件,将提取的软件的所有权重新分配给预配置的用户和组,维护Oracle清单,并执行为单实例Oracle配置Oracle数据库软件所需的所有根操作数据库创建和配置。

基于RPM的安装过程会检测何时不满足安装的最低要求,并提示您完成这些最低预安装要求。

基于RPM的安装执行仅限软件的Oracle数据库安装并创建Oracle Home。创建Oracle Home后,您可以使用 DBCA 创建Oracle数据库。

基于RPM的安装过程为您提供了使用/etc/init.d/oracledb_ORCLCDB-19c服务配置脚本使用默认设置创建数据库的选项

基于RPM的安装的限制和指南

  • 不支持使用RPM为Oracle数据库软件打补丁。请使用OPatch并按照常规修补过程应用Oracle数据库补丁。
  • 基于RPM的Oracle数据库安装不适用于Standard Edition 2。
  • 不支持使用 rpm -Uvh 升级数据库对于Oracle数据库升级,请遵循常规升级过程。
  • 支持RPM安装在同一台计算机上将多个Oracle数据库软件版本安装到不同的Oracle主目录中。

运行RPM软件包以安装Oracle数据库

手动安装Oracle Database RPM

  1. root登录
  2. 下载并安装OracleRPM包:
    1. 在Oracle Linux上
      # yum -y install oracle-database-preinstall-19c
    2. 在Red Hat Enterprise Linux上
      # curl -o oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
      # yum -y localinstall oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm

      成功安装后,您可以删除下载的RPM文件:

      # rm oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
  3. 也可以从以下位置访问基于Oracle Database RPM的安装的软件下载页面,下载RPM包
  4. 下载后通过如下命令安装
        # yum -y localinstall oracle-database-ee-19c-1.0-1.x86_64.rpm
创建和配置Oracle数据库
    以默认配置安装示例数据库:
    # /etc/init.d/oracledb_ORCLCDB-19c configure
如果需要修改参数请编辑:/etc/sysconfig/oracledb_ORCLCDB-19c.conf
该脚本创建包含一个PDB(ORCLPDB1)的容器数据库(ORCLCDB),并配置好监听(1521)

12 Oracle数据库安装后续任务

安装Oracle数据库后,Oracle建议您立即完成其他任务。在使用这些产品之前,还必须完成特定于产品的配置任务。

注意:

本章仅介绍基本配置。有关更详细的配置和调整信息,请参阅特定于产品的管理和调整指南。
        1.打补丁 Release Updates (RU) and Release Update Revisions (RUR) patch
            从Oracle Database 18c开始,Oracle以Release Updates(RU)和Release Update Revisions(RUR)的形式提供季度更新。Oracle不再发布补丁集。有关更多信息,请参阅My Oracle Support说明2285040.1。
         登陆Mos,搜索你需要的补丁版本号,点击ReadMe,它包含了补丁信息和如何打补丁。
         补丁升级成功后不要删除$ORACLE_HOME/.patch_storage目录,因为它包含了补丁信息。
        2.除了SYS, SYSTEM, 和 DBSMP 用户外,其他的系统管理员账户密码均被收回,如果要使用请解锁并重设密码。
        Oracle  默认账户描述说明
        但运行各种cat*.sql脚本时,你可能会自动创建大部分的账户。检查哪些账户是Oracle 创建并维护的,查询ALL_USERS 表的USERNAME  和 ORACLE_MAINTAINED 列。如果RACLE_MAINTAINED 是Y
        那么一定不要修改账户,除非运行创建他的脚本
    1.建议安装后,备份root.sh脚本,因为如果你之后在相同ORACLE HOME下通过OUI安装其他oracle 产品,将会更新root.sh的内容。
    2.Oracle 建议安装/升级/打补丁后,运行utlrp.sql脚本,查找并重新编译失效对象。
    3.升级ORAchK 工具。
    ORAchk 检查覆盖所有Oralce软件栈,识别并定位top问题,ORAch'k 主动扫描软件,部署等已知问题。,包括如下:   
    • 独立的Oracle数据库
    • Oracle Grid Infrastructure
    • Oracle Real Application Clusters
    • 最高可用性架构(MAA)验证
    • 升级准备验证
    • Oracle GoldenGate

         Oracle正在继续根据客户要求扩展检查。

    Oracle ORAchk需要Python 3.6软件和库。运行时提供了确切需要哪些库的信息。
    ORAchk预安装在 $ORACLE_HOME/suptools/orachk 目录,Oracle建议升级导最新版,也可以从Mos(note 1268927.2)下载独立软件。
$ cd $ORACLE_HOME/oui/bin
$ ./runInstaller
检查安装组件,然后关闭退出该OUI.
命令选项描述
oaa

Oracle Advanced Analytics

olap

Oracle OLAP

partitioning

Oracle分区

rat

Oracle Real Application Testing

使用该工具必须先关闭数据库,修改选项后再启动数据库,用法示例:
cd $ORACLE_HOME/bin
srvctl stop database -d Sales
chopt enable oaa
srvctl start database -d Sales
        Oracle Restart安装过程中,您只能创建一个磁盘组。在Oracle Clusterware安装过程中,您可以创建多个磁盘组。如果计划为独立服务器或Oracle RAC添加Oracle数据库,则应为数据库文件创建快速恢复区。
       设定 DB_RECOVERY_FILE_DEST参数指定快速恢复区,Oracle会将所有RMAN备份,归档,控制文件自动备份和数据库副本写入FRA。RMAN通过删除不再需要的过时备份和归档文件自动管理FRA中的文件。
        Oracle建议您创建FRA磁盘组。Oracle Clusterware文件和Oracle数据库文件可以放在同一磁盘组,您也可以将快速恢复文件放在同一磁盘组中。但是,Oracle建议您创建单独的FRA磁盘组以减少存储争用。
        设定DB_RECOVERY_FILE_DEST 启用快速恢复区,通过DB_RECOVERY_FILE_DEST_SIZE设定快速恢复区大小,一般规则来说,FRA越大月有用,为了方便使用,Oracle建议创建FRA磁盘组至少        能保留3天恢复信息。理想情况下,FRA 应该能够包含所有的文件副本(数据恢复所需要的所有的数据文件,控制文件,在线日志和归档文件)。
       多个数据库可以指向同一个FRA,根据数据库的重要性通过DB_RECOVERY_FILE_DEST_SIZE参数分别指定其对应的大小。
$ cd /u01/app/oracle/product/19.0.0/grid/bin
$ ./asmca
    如果你需要安装多套Oracle 数据库,那么您可能想要克隆Oracle Home,因为克隆比重新安装要节省时间,如果你已经打了补丁,那么此方法同样有用。新的OracleHOME已经打了补丁。
执行以下步骤以克隆Oracle主目录:
    1.验证你要克隆的数据库是成功的。
    cat /u01/app/oracle/oraInventory/logs/installActionsdate_time.log
    如果打了补丁,检查
$ORACLE_HOME/OPatch/opatch lsinventory
    2. 停止与Oracle home.有关的所有进程
    3. 创建Oracle Home的压缩文件(不是Oracle Base)
    如:
# zip -r dbhome_1.zip /u01/app/oracle/product/19.0.0/dbhome_1
或
# tar -cvf dbhome_1.tar /u01/app/oracle/product/19.0.0/dbhome_1
不要包含Oracle Base 下的adminfast_recovery_area, 和oradata 目录,这些目录会在安装新库的时候创建。
    4. Copy 文件导目标库,如果使用FTP,请使用Binary模式传输
    5. 使用如下命令抽取压缩包
# unzip -d / dbhome_1.zip
# tar -xvf dbhome_1.tar
    6.修改目录拥有者
# chown -R oracle:oinstall /u01/app/oracle/product/19.0.0/dbhome_1
    7. 移除解压缩的ORACLE HOME 下不需要的文件
# cd $ORACLE_HOME
# rm -rf network/admin/*.ora
# rm dbs/old_database_entries
9. 运行 $ORACLE_HOME/clone/bin/clone.pl 脚本,使用如下语法,你也可以添加其他组。
$ORACLE_HOME/perl/bin/perl $ORACLE_HOME/clone/bin/clone.pl ORACLE_BASE="/u01/app/oracle" ORACLE_HOME="/u01/app/oracle/product/19.0.0/dbhome_1"
OSDBA_GROUP=dba OSOPER_GROUP=oper OSBACKUPDBA_GROUP=backupdba OSDGDBA_GROUP=dgdba OSKMDBA_GROUP=kmdba OSRACDBA_GROUP=racdba -defaultHomeName
 
如果此命令中未指定操作系统组,clone.pl使用源ORACLE HOME 的操作系统组
运行$ORACLE_HOME/perl/bin/perl $ORACLE_HOME/clone/bin/clone.pl -help 获取更多选项
 clone.pl 在19C中已弃用,将来会被移除。所以Oracle 建议您使用仅安装软件选项代替clone.pl克隆数据库
 
OUI启动,然后将克隆操作记录在cloneActionstimestamp.log文件中。此日志文件通常位于/u01/app/oracle/oraInventory/logs目录中。
使用以下命令运行Net Configuration Assistant以配置新数据库的连接信息:

Oracle卸载选项

$ cd $ORACLE_HOME/bin
$ ./netca
使用以下命令运行Database Configuration Assistant以为新克隆的oracle主目录创建新的Oracle数据库:
$ cd $ORACLE_HOME/bin
$ ./dbca

13删除Oracle数据库软件

执行Oracle HOME 下的 deinstall  删除Oracle 软件。
注意:如果您在集群中某个节点上安装了单实例数据库,或者你有多个数据库使用了相同的Global Name(GDN),您不能使用deinstall只移除一个数据库
您可以通过deinstall 来停止和删除数据库软件和组件。包括:
  • Oracle Database
  • Oracle Grid Infrastructure, which includes Oracle Clusterware and Oracle Automatic Storage Management (Oracle ASM)
  • Oracle Real Application Clusters (Oracle RAC)
  • Oracle Database Client

 deinstall 命令位于  $ORACLE_HOME/deinstall 目录

-checkonly 选项,你可以创建响应文件,您也可以编辑默认响应文件。

卸载Grid, RAC 下以root 执行rootcrs.sh; Oracle Gi for Standalone 下以root执行roothas.sh 替代deinstall 删除Grid Infrastracture

 

如果Oracle Home 中的软件未运行(比如安装失败),那么deinstall 不能确定配置文件,您需要交互或通过响应文件提供。

在卸载Oracle GI前,您需要卸载ACFS且禁用ADVM.

如果您在使用GNS,通知管理员移除DNS相关子域名

运行时deinstall,如果中央目录(oraInventory)中不包含其他已注册的oracle 软件,则将以下文件和目录:

 

  • admin
  • cfgtoollogs
  • checkpoints
  • diag
  • oradata
  • fast_recovery_area

Oracle强烈建议您使用Optimal Flexibl

deinstall 删除Oracle 配置文件,数据文件和FRA   文件。即使他们不在ORACLE BASE下。卸载语法:

 

 

./deinstall [-silent] [-checkonly] [-paramfile complete path of input response file] 
[-params name1=value name2=value . . .] 
[-o complete path of directory for saving files] 
[-tmpdir complete path of temporary directory to use] 
[-logdir complete path of log directory to use] [-local] [-skipLocalHomeDeletion] [-skipRemoteHomeDeletion] [-help]
参考:https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/oracle-deinstallation-tool-deinstall.html#GUID-71E860C5-4E1E-4D2F-AFD1-141709A172C0

Oracle数据库的卸载示例

cd $ORACLE_HOME/deinstall
./deinstall 执行卸载
你可以加上-checkonly 用来创建响应文件,也可以编辑响应文件模板:$ORACLE_HOME/deinstall/response/deinstall.rsp.tmpl
通过参数 -paramfile 指定响应文件位置
案例1,卸载Oracle
$ cd /u01/app/oracle/product/19.0.0/dbhome_1/deinstall
$ ./deinstall -paramfile /home/usr/oracle/my_db_paramfile.tmpl
案例2,卸载Grid Infrostrucure
$ cd  /u01/app/oracle/product/19.0.0/grid/deinstall
$ ./deinstall -paramfile /home/usr/oracle/my_grid_paramfile.tmpl

降级Oracle Restart

如果在安装期间收到错误,请使用此过程取消配置和降级Oracle Restart,或者对Oracle Restart进行故障排除。

要降级Oracle Restart,必须首先降级Oracle数据库,取消配置Oracle Restart,然后重新配置Oracle Restart。

此外,roothas.sh-deconfig -force 可以在不删除已安装的二进制文件的情况下取消配置Oracle Restart。如果在为独立服务器安装Oracle Grid Infrastructure期间遇到错误,则此功能非常有用。

例如,运行root.sh命令时,您发现缺少操作系统软件包。通过运行roothas.sh -deconfig -force,您可以取消配置Oracle Restart,修正错误,然后再次运行root.sh

注意:

在取消配置或降级Oracle Restart之前,停止所有正在运行的数据库,服务和侦听器。
  • oracle用户身份创建PFILE的备份
    CREATE PFILE='/u01/app/oracle/product/19.0.0/dbhome_1/dbs/test_init.ora'
    FROM SPFILE='/u01/oracle/dbs/test_spfile.ora';
    
  • root用户身份登录
  • 降级Oracle数据库。
  • 降级Oracle Restart资源:
    # srvctl downgrade database -d db_unique_name -o $ORACLE_HOME -t to_version
  • 切换到Grid_home/crs/install目录:
    # cd /u01/app/oracle/product/19.0.0/grid/crs/install
  • 取消配置Oracle Restart。
    # roothas.sh -deconfig -force
  • grid用户身份执行deinstall卸载Oracle Restart 
    $ cd /u01/app/19.0.0/grid/deinstall/
    $ ./deinstall
    deinstall工具将Oracle Grid Infrastructure home分离,更新OraInventory并清空目录。
  • 在早期版本的Oracle Restart home中root用户身份手动运行root.sh以配置Oracle Restart。
    如果您的系统上没有早期版本的Oracle Restart,则安装相应版本的Oracle Grid Infrastructure for standalone server 以安装Oracle Restart。
  • grid用户将组件添加回Oracle Restart 
    1. 将Oracle数据库添加到Oracle Restart配置:
      $ srvctl add database -db db_unique_name -o $ORACLE_HOME
    2. 将监听添加到Oracle Restart配置:
      $ srvctl add listener -l listener_name -o $ORACLE_HOME
    3. 使用srvctl add service命令将每个服务添加到数据库例如:
      $ srvctl add service -db mydb -service myservice
  1. 将Oracle主目录连接到Oracle Restart配置:
    $ ./runInstaller -silent -ignoreSysPrereqs -attachHome ORACLE_HOME="/u01/app/oracle/product/19.0.0/dbhome_1" ORACLE_HOME_NAME="Ora19c_home

    删除基于RPM的Oracle数据库安装

    1. # yum -y remove oracle-database-ee-19c
    yum命令检测OracleHome中的默认配置组件,例如数据库(ORCLCDB)和监听(LISTENER),并为您删除这些组件。

    yum命令检测到Oracle主目录中的其他已配置组件(如其他数据库或监听),则会停止卸载过程。将显示一条消息,指示您手动删除这些已配置的组件。 要删除这些已配置的组件:

    $ cd $ORACLE_HOME/bin
  2. $ ./dbca
    
  3. 要删除与安装关联的任何监听,请运行Oracle Net Configuration Assistant(Oracle NETCA)。
    $ cd $ORACLE_HOME/bin 
    $ ./netca
  4. 再次登录root执行yum命令以删除基于rpm的数据库安装。
    # yum -y remove oracle-database-ee-19c
卸载以前的版本Grid Home
对于以前版本的升级,如果要卸载以前版本的Grid home,请执行以下步骤:
  1. root用户身份登录
  2. 手动更改先前版本Grid home的权限。
    # chmod -R 775 /u01/app/oracle/product/18.0.0/grid
    # chown -R oracle:oinstall /u01/app/oracle/product/18.0.0/grid
    # chown oracle /u01/app/oracle/product/18.0.0

    在这个例子中:

    • /u01/app/oracle/product/18.0.0/grid 是以前版本的Oracle Grid Infrastructure,用于独立服务器Home
    • oracle 是Oracle Grid Infrastructure安装所有者用户
    • oinstall 是Oracle Inventory组的名称(OINSTALL组)
    • /u01/app/oracle/product/18.0.0 是前一个Grid Home的父目录。
  3. 以Oracle Grid Infrastructure软件所有者user(oracle身份登录并运行deinstall命令。
A 手工完成预安装任务
Oracle建议您使用Oracle Universal Installer和Cluster Verification Utility修复脚本来完成最小配置设置。如果您无法使用修复脚本,请手动完成最低系统设置。

配置Linux内核参数

这些主题说明了如果无法使用修复脚本完成它们,如何为Linux手动配置内核参数。

安装的最小参数设置

如果无法使用修正脚本,请使用此表手动设置参数

注意:

  • 除非另行指定,否则下表中显示的内核参数和shell限制值仅为最小值。对于生产数据库系统,Oracle建议您调整这些值以优化系统性能。有关调整内核参数的更多信息,请参阅操作系统文档。
  • 如果任何参数的当前值大于此表中列出的值,则Fixup脚本不会更改该参数的值。

表A-1最低操作系统资源参数设置

参数文件

SEMMSL

SEMMNS

SEMOPM

SEMMNI

250

32000

100

128

/proc/sys/kernel/sem
SHMALL

大于或等于shmmax的值,以页为单位。

/proc/sys/kernel/shmall
SHMMAX

物理内存大小的一半(以字节为单位)

有关配置shmmax的其他信息,请参阅My Oracle Support说明567506.1。

/proc/sys/kernel/shmmax
SHMMNI

4096

/proc/sys/kernel/shmmni
panic_on_oops

1

/proc/sys/kernel/panic_on_oops
file-MAX

6815744

/proc/sys/fs/file-max
AIO-MAX-NR

1048576

注意:此值限制并发高峰的请求,应设置为避免I/O子系统故障。

/proc/sys/fs/aio-max-nr
ip_local_port_range

最低:9000

最大值:65500

/proc/sys/net/ipv4/ip_local_port_range
rmem_default

262144

/proc/sys/net/core/rmem_default
rmem_max

4194304

/proc/sys/net/core/rmem_max
wmem_default

262144

/proc/sys/net/core/wmem_default
wmem_max

1048576

/proc/sys/net/core/wmem_max

更改内核参数值

如果内核参数值与最小建议值不同,请使用这些说明显示和更改内核参数值。

使用以下命令显示内核参数的当前值:

表A-2显示内核参数值的命令

参数命令
semmslsemmnssemopmsemmni # /sbin/sysctl -a | grep sem

此命令显示信号量参数的值。

shmall,shmmaxshmmni # /sbin/sysctl -a | grep shm

此命令显示共享内存段大小的详细信息。

file-MAX # /sbin/sysctl -a | grep file-max

此命令显示最大文件句柄数。

ip_local_port_range # /sbin/sysctl -a | grep ip_local_port_range

此命令显示端口号范围。

rmem_default # /sbin/sysctl -a | grep rmem_default
rmem_max # /sbin/sysctl -a | grep rmem_max
wmem_default # /sbin/sysctl -a | grep wmem_default
wmem_max # /sbin/sysctl -a | grep wmem_max
AIO-MAX-NR # /sbin/sysctl -a | grep aio-max-nr

如果您使用Oracle预安装RPM来完成预安装配置任务,那么Oracle预安装RPM会为您设置这些内核参数。但是,如果您未使用Oracle预安装RPM或内核参数与建议的最小值不同,则更改这些内核参数值:

  1. 使用任何文本编辑器,创建或编辑/etc/sysctl.d/97-oracle-database-sysctl.conf文件,添加或编辑类似于以下内容的行:
    fs.aio-max-nr = 1048576
    fs.file-max = 6815744
    kernel.shmall = 2097152
    kernel.shmmax = 4294967295
    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
  2. 更改内核参数的当前值:
    # /sbin/sysctl --system
    查看输出。如果值不正确,请编辑该/etc/sysctl.d/97-oracle-database-sysctl.conf文件,然后再次输入此命令。
  3. 确认值设置正确:
    # /sbin/sysctl -a
  4. 重新启动计算机,或运行sysctl --system以使/etc/sysctl.d/97-oracle-database-sysctl.conf生效
设置内核参数值的准则
  • 如果您使用了Oracle预安装RPM,那么您的内核参数设置将驻留在/etc/sysctl.d/99-oracle-database-server-19c-preinstall-sysctl.conf文件中。
  • 仅包含要更改的内核参数值的行。对于信号量参数(kernel.sem),您必须指定所有四个值。如果任何当前值大于最小值,则指定较大的值。
  • /etc/sysctl.conf文件已被弃用。
  • 避免在/etc/sysctl.d/下的多个文件中设置内核参数值具有词法后面名称的文件/etc/sysctl.d/优先,然后才是/etc/sysctl.confOracle建议您使用Oracle预安装RPM,除其他预安装任务外,还会为数据库安装设置内核参数值。

配置SUSE Linux的其他内核设置

SUSE Linux Enterprise Server系统上需要其他内核参数设置配置。

仅在SUSE Linux Enterprise Server系统上执行以下步骤:
  1. 输入以下命令以使系统/etc/sysctl.conf 在重新启动时读取文件:
    # /sbin/chkconfig boot.sysctl on
  2. 输入oinstall组的GID作为参数/proc/sys/vm/hugetlb_shm_group.的值。

    例如,oinstall组GID是501

    # echo 501 > /proc/sys/vm/hugetlb_shm_group
    使用vi 添加下面的文本/etc/sysctl.conf,并使boot.sysctl 脚本在系统重新启动后运行:
    vm.hugetlb_shm_group=501

    注意:

    只能将一个组定义为vm.hugetlb_shm_group。

 

手动设置UDP和TCP内核参数

如果不使用Fixup脚本或CVU设置临时端口,则设置TCP / IP临时端口范围参数,以便为预期的服务器工作负载提供足够的临时端口。

确保将较低范围设置为至少9000或更高,以回避Well Known端口,并回避Oracle和其他服务器端口常用的Registered Ports范围。将端口范围设置得足够高,以为您打算使用的任何应用程序保留端口。

如果您所拥有的范围的较低值大于9000,并且该范围足以满足您的预期工作负载,那么您可以忽略有关临时端口范围的Oracle Universal Installer警告。

例如,使用IPv4,使用以下命令检查临时端口的当前范围:
$ cat /proc/sys/net/ipv4/ip_local_port_range
32768 61000

在前面的示例中,最低端口(32768)和最高端口(61000)设置为默认范围。

如有必要,请将UDP和TCP临时端口范围更新到足以满足预期系统工作负载的范围,并确保临时端口范围从9000及更高开始。例如:
# echo 9000 65500 > /proc/sys/net/ipv4/ip_local_port_range
Oracle建议您永久保留这些设置。例如,root使用文本编辑器打开/etc/sysctl.conf,添加或更改以下内容:net.ipv4.ip_local_port_range = 9000 65500,然后重新启动网络:
# /etc/rc.d/init.d/network restart

使用Oracle ASMLIB配置存储设备路径持久性

要使用Oracle ASMLIB配置Oracle ASM设备,请完成以下任务:

注意:

要创建在安装期间使用Oracle ASM驱动程序的数据库,必须选择以交互模式运行ASMCA的安装方法。您还必须将磁盘发现字符串更改为ORCL:*

IBM不支持Oracle ASMLIB:System z上的Linux。

因使用ASMLIB不太方便,此处略过
手动配置存储设备路径持久性

您可以通过创建规则文件来维护存储文件路径持久性。

默认情况下,设备文件命名方案udev在服务器启动时动态创建设备文件名,并将其所有权分配给root。如果udev应用默认设置,则会为磁盘修改Oracle设备文件名和所有者,导致服务器重新启动时无法访问磁盘。

例如,在重新启动服务器之后拥有者为grid 的表决盘/dev/sdd可能变成拥有者为root 的设备/dev/sdf

如果使用Oracle ASMFD,则无需确保udev权限和设备路径持久性

如果不使用Oracle ASMFD,则必须创建自定义规则文件。Linux供应商自定义其udev配置并使用不同的顺序来读取规则文件。例如,在某些Linux发行版udev启动时,它会依次执行规则文件中定义的规则(配置指令)。

这些文件位于路径中/etc/udev/rules.d/规则文件以词法顺序读取。例如,文件10-wacom.rules中的规则在90-ib.rules之前被解析和执行

udev规则文件中指定设备信息时,请确保指定OWNER,GROUP和MODE在显示的顺序中的所有其他特征之前。例如,要在UDEV行上包含特征ACTION,请在OWNER,GROUP和MODE之后指定ACTION。

如果规则文件指向了相同设备,在受支持的Linux内核版本上,最后读取的文件生效。

为Oracle ASM手动配置设备持久性

  1. 在现有系统(单实例或群集)上,要获取当前挂载路径,请在服务器上的存储设备上运行命令scsi_id/sbin/scsi_id)以获取其唯一的设备标识符。 scsi_id使用-s参数运行命令时,您提供的设备路径和名称应该相对于sysfs目录/sys,(例如/block/device)对于/sys/block/device例如:
          # /sbin/scsi_id -g -s /block/sdb/sdb1
    360a98000686f6959684a453333524174
    # /sbin/scsi_id -g -s /block/sde/sde1
    360a98000686f6959684a453333524179

  记录唯一的SCSI标识符,以便在需要时提供它们。

  注意:

  无论scsi_id命令从哪个节点运行,该命令都应返回给定设备的相同设备标识符值。

  1. 通过编辑/etc/scsi_id.config文件并添加options=-g文件,将SCSI设备配置为可信设备(列为白名单)例如:
    # cat > /etc/scsi_id.config
    vendor="ATA",options=-p 0x80
    options=-g
  2. 使用文本编辑器为Oracle ASM设备创建UDEV规则文件,为安装所有者和您指定OSASM组的操作系统组设置权限0660,其成员是Oracle Grid Infrastructure软件的管理员。 例如,在Oracle Linux上,要创建rules.d安装所有者所在的基于角色的配置文件grid和OSASM组asmadmin,请输入类似于以下内容的命令:
    # vi /etc/udev/rules.d/99-oracle-asmdevices.rules
     
    KERNEL=="sdb1, OWNER="grid", GROUP="asmadmin", MODE="0660", 
    BUS=="scsi", PROGRAM=="/sbin/scsi_id", RESULT=="14f70656e66696c00000000"
    KERNEL=="sdc1", OWNER="grid", GROUP="asmadmin", MODE="0660",
    BUS=="scsi", PROGRAM=="/sbin/scsi_id", RESULT=="14f70656e66696c00000001"
    KERNEL=="sdd1", OWNER="grid", GROUP="asmadmin", MODE="0660",
    BUS=="scsi", PROGRAM=="/sbin/scsi_id", RESULT=="14f70656e66696c00000002"
  3. 在群集系统上,将rules.d文件复制到群集上的所有其他节点。例如:
    # scp 99-oracle-asmdevices.rules root@node2:/etc/udev/rules.d/99-oracle-asmdevices.rules
  4. 以root用户身份,运行partprobe命令。 
    # /sbin/partprobe /dev/sdc1
    # /sbin/partprobe /dev/sdd1
    # /sbin/partprobe /dev/sde1
    # /sbin/partprobe /dev/sdf1
  5. 运行命令udevtest/sbin/udevtest)以测试您创建的UDEV规则配置。输出应指示设备可用且规则按预期应用。例如,对于/dev/ssd1
    # udevtest /block/sdd/sdd1
    main: looking at device '/block/sdd/sdd1' from subsystem 'block'
    udev_rules_get_name: add symlink
    'disk/by-id/scsi-360a98000686f6959684a453333524174-part1'
    udev_rules_get_name: add symlink
    'disk/by-path/ip-192.168.1.1:3260-iscsi-iqn.1992-08.com.netapp:sn.887085-part1'
    udev_node_mknod: preserve file '/dev/.tmp-8-17', because it has correct dev_t
    run_program: '/lib/udev/vol_id --export /dev/.tmp-8-17'
    run_program: '/lib/udev/vol_id' returned with status 4
    run_program: '/sbin/scsi_id'
    run_program: '/sbin/scsi_id' (stdout) '360a98000686f6959684a453333524174'
    run_program: '/sbin/scsi_id' returned with status 0
    udev_rules_get_name: rule applied, 'sdd1' becomes 'data1'
    udev_device_event: device '/block/sdd/sdd1' validate currently present symlinks
    udev_node_add: creating device node '/dev/data1', major = '8', minor = '17', 
    mode = '0640', uid = '0', gid = '500'
    udev_node_add: creating symlink
    '/dev/disk/by-id/scsi-360a98000686f6959684a453333524174-part1' to '../../data1'
    udev_node_add: creating symlink
    '/dev/disk/by-path/ip-192.168.1.1:3260-iscsi-iqn.1992-08.com.netapp:sn.84187085
    -part1' to '../../data1'
    main: run: 'socket:/org/kernel/udev/monitor'
    main: run: '/lib/udev/udev_run_devd'
    main: run: 'socket:/org/freedesktop/hal/udev_event'
    main: run: '/sbin/pam_console_apply /dev/data1
    /dev/disk/by-id/scsi-360a98000686f6959684a453333524174-part1
    /dev/disk/by-path/ip-192.168.1.1:3260-iscsi-iqn.1992-08.com.netapp:sn.84187085-
    part1'

    在示例输出中,请注意应用规则会将OCR设备/dev/sdd1重命名/dev/data1

  6. 加载规则并重新启动UDEV服务。例如:
    • Oracle Linux和Red Hat Enterprise Linux
      # udevadm control --reload-rules
    • SUSE Linux Enterprise Server
      # /etc/init.d boot.udev restart
验证是否正确设置了设备权限和拥有者。

B使用响应文件安装和配置Oracle数据库

查看以下主题以使用响应文件安装和配置Oracle产品。

响应文件的工作原理

响应文件可以帮助您在多台计算机上多次安装Oracle产品。

启动Oracle Universal Installer(OUI)时,您可以使用响应文件自动安装和配置Oracle软件的全部或部分。OUI使用响应文件中包含的值来提供部分或全部安装提示的答案。

通常,安装程序以交互模式运行,这意味着它会提示您在图形用户界面(GUI)中提供信息。使用响应文件提供此信息时,可以使用以下任一模式从命令提示符运行安装程序:

  • 静默模式

    如果响应文件中包含所有提示的响应,在启动安装程序时指定-silent选项,则它将以静默方式运行。在静默模式安装期间,安装程序不显示任何屏幕,而是在您用于启动它的终端中显示进度信息。

  • 响应文件模式

    如果在响应文件中包含部分或全部提示的响应并省略-silent选项,则安装程序将以响应文件模式运行。在响应文件模式安装期间,安装程序将显示所有屏幕,包括在响应文件中为其指定信息的屏幕,以及未在响应文件中指定所需信息的屏幕。

您可以通过输入响应文件中列出的变量的值来定义静默或响应文件安装的设置。例如,要指定Oracle主目录名,请提供ORACLE_HOME环境变量的Oracle主路径

ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1

使用静默模式或响应文件模式的原因

有关在静默模式或响应文件模式下运行安装程序的用例,请查看本节。

模式用途

静默模式

使用静默模式进行以下安装:

  • 完成无人参与安装,您可以使用操作系统 at 实用程序进行安排
  • 在多个系统上完成几个类似的安装,无需用户交互
  • 在没有安装X Window System软件的系统上安装软件。

安装程序会在您用于启动它的终端上显示进度信息,但不会显示任何安装程序屏幕。

响应文件模式

在多个系统上使用响应文件模式完成类似的Oracle软件安装,为某些提示提供默认答案,但不是所有提示。

使用响应文件

使用以下常规步骤在静默或响应文件模式下使用安装程序安装和配置Oracle产品:

注意:

在以静默或响应文件模式运行安装程序之前,必须在系统上完成所有必需的预安装任务。

  1. 准备响应文件。
  2. 以静默或响应文件模式运行安装程序。
  3. 根据Oracle Universal Installer的提示运行 root 脚本。
  4. 如果您完成了纯软件安装,则以静默或响应文件模式运行Net Configuration Assistant和Oracle DBCA,以分别创建数据库侦听器和Oracle数据库实例。

准备响应文件

Oracle为每个产品和每个配置工具都提供响应文件模板。
对于Oracle数据库,响应文件模板位于$ORACLE_HOME/install/response目录中。
对于Oracle Grid Infrastructure,响应文件模板位于Grid_home/install/response目录中。

表B-1 Oracle数据库和Oracle Grid Infrastructure的响应文件

响应文件描述

db_install.rsp

无声安装Oracle数据库。

dbca.rsp

使用Oracle DBCA静默创建和配置Oracle数据库。

netca.rsp

使用Oracle NETCA静默配置Oracle Net。

gridsetup.rsp

Oracle Grid Infrastructure安装的静默配置。

警告:

修改响应文件模板并保存文件以供使用时,响应文件可能包含纯文本密码。响应文件的所有权应仅提供给Oracle软件安装所有者,响应文件的权限应更改为600. Oracle强烈建议数据库管理员在不使用时删除或保护响应文件。

要复制和修改响应文件:

  1. 将响应文件从响应文件目录复制到系统上的目录:

    例如,对于Oracle数据库:

    $ cp $ORACLE_HOME/install/response/db_install.rsp local_directory
  2. 在文本编辑器中打开响应文件:
    $ vi /local_dir/db_install.rsp
  3. 按照文件中的说明进行编辑。

    注意:

    如果未正确配置响应文件,安装程序或配置助手将失败。另外,请确保您的响应文件名具有.rsp后缀。

  4. 通过将文件的权限更改为600来保护响应文件:
    $ chmod 600 /local_dir/db_install.rsp
    

    确保只有Oracle软件所有者用户可以查看或修改响应文件,或者在安装成功后考虑删除它们。

    注意:

    Oracle数据库安装的完全指定的响应文件包含数据库管理帐户的密码以及作为OSDBA组成员的用户的密码(自动备份所需)。

 

录制响应文件

您可以在交互模式下使用OUI来记录响应文件,然后您可以编辑并使用它们来完成静默模式或响应文件模式安装。此方法对于高级或纯软件安装非常有用。

在安装过程中通过在Summary page 点击 Save Response File 您可以保存所有安装步骤到响应文件,您可以将响应文件应用于稍后的静默安装。
保存响应文件后,您可以继续安装,也可以选择退出安装。

注意:

OUI在记录响应文件时不保存密码。

要记录响应文件:

  1. 完成标准安装的预安装任务。

    当您运行安装程序以记录响应文件时,它会检查系统以验证它是否满足安装软件的要求。因此,Oracle建议您完成所有必需的安装前任务。

  2. 确保Oracle软件所有者用户(通常oracle)对指定的OracleHome 目录具有创建或写权限
  3. 在每个安装屏幕上,指定所需信息。
  4. 当安装程序显示“Smmary”屏幕时,请执行以下步骤:
    1. 单击保存响应文件在窗口中,指定新响应文件的文件名和位置。
    2. 单击“ 完成”继续安装。

      如果您不想继续安装,请单击“ 取消”安装停止,但保留记录的响应文件。

    注意:

    确保您的响应文件名具有.rsp后缀。
  5. 在另一个系统上使用该响应文件之前,请编辑该文件并进行所需的更改。编辑时,请使用文件中的说明作为指导。

使用响应文件运行Oracle Universal Installer

获取帮助信息

  • 对于Oracle数据库:
    $ $ORACLE_HOME/runInstaller -help
  • 对于Oracle Grid Infrastructure:
    $ /u01/app/oracle/product/19.0.0/grid/gridSetup.sh -help

要使用响应文件运行安装程序:

  1. 完成正常安装的预安装任务。
  2. 以软件安装所有者用户身份登录。
  3. 如果要以响应文件模式安装,请设置DISPLAY环境变量,静默模式不需要。
  4. 要以静默或响应文件模式启动安装程序,请输入类似于以下内容的命令:
    • 对于Oracle数据库:
      $ $ORACLE_HOME/runInstaller [-silent] \
       -responseFile responsefilename
    • 对于Oracle Grid Infrastructure:
      $ /u01/app/oracle/product/19.0.0/grid/gridSetup.sh [-silent] \
       -responseFile responsefilename

    注意:

    不要指定响应文件的相对路径。如果指定相对路径,则安装程序将失败。

  5. 如果这是您第一次在系统上安装Oracle软件,则Oracle Universal Installer会提示您运行orainstRoot.sh脚本。

    root用户身份登录并运行orainstRoot.sh脚本:

    $ su root
    password:
    # /u01/app/oraInventory/orainstRoot.sh
  6. 安装完成后,以root用户身份登录并运行root.sh脚本。例如:
    $ su root
    password:
    # $ORACLE_HOME/root.sh

    使用响应文件运行netca

$ cp /directory_path/assistants/netca/netca.rsp local_directory
$ vi /local_dir/netca.rsp
$ $ORACLE_HOME/bin/netca /silent /responsefile /local_dir/netca.rsp

使用响应文件运行Oracle DBCA

 

$ cp /directory_path/assistants/dbca/dbca.rsp local_directory
$ $ORACLE_HOME/bin/dbca -help
$ vi /local_dir/dbca.rsp
$ORACLE_HOME/bin/dbca [-silent] -responseFile /local_dir/dbca.rsp 
您还可以在命令行上指定响应文件中的选项。安装前请设定ORACLE_HOME 环境变量,如果采用响应文件模式,您还需要设定DISPLAY 环境变量。

为安装后配置使用安装响应文件

从Oracle Database 12c第2版(12.2)开始,您可以使用在安装期间创建的响应文件来完成安装后配置。

使用参数-executeConfigTools 安装来配置配置助手。您可以使用位于$ORACLE_HOME/install/response/product_timestamp.rsp的响应文件来获取运行配置工具所需的密码。 在运行-executeConfigTools命令之前,必须更新响应文件中的密码。

Oracle强烈建议您使用密码响应文件来维护安全性:

  • 响应文件的权限应设置为600。
  • 响应文件的所有者应该是安装所有者用户,并将该组设置为中央inventory(oraInventory)组。

示例B-1 Oracle Grid Infrastructure的响应文件密码(grid用户)

grid.install.crs.config.ipmi.bmcPassword=password
grid.install.asm.SYSASMPassword=password
grid.install.asm.monitorPassword=password
grid.install.config.emAdminPassword=password

如果您没有BMC卡,或者您不想启用IPMI,请将ipmi.bmcPassword输入字段留空。

如果您不想启用Oracle Enterprise Manager进行管理,请将emAdminPassword密码字段留空。

示例B-2独立服务器(oracle用户)的 Oracle Grid Infrastructure的响应文件密码

oracle.install.asm.SYSASMPassword=password
oracle.install.asm.monitorPassword=password
oracle.install.config.emAdminPassword=password

如果您不想启用Oracle Enterprise Manager进行管理,请将emAdminPassword密码字段留空。

示例B-3 Oracle数据库的响应文件密码(oracle用户)

此示例说明了指定用于数据库配置助手的密码。

oracle.install.db.config.starterdb.password.SYS=password 
oracle.install.db.config.starterdb.password.SYSTEM=password 
oracle.install.db.config.starterdb.password.DBSNMP=password 
oracle.install.db.config.starterdb.password.PDBADMIN=password 
oracle.install.db.config.starterdb.emAdminPassword=password 
oracle.install.db.config.asm.ASMSNMPPassword=password 

您还可以指定oracle.install.db.config.starterdb.password.ALL=密码 以对所有数据库用户使用相同的密码。

DBCA需要SYS,SYSTEM和DBSNMP密码才能使用。您必须指定以下密码,具体取决于您的系统配置:

  • 如果数据库使用Oracle自动存储管理(Oracle ASM)进行存储,则必须为ASMSNMPPassword指定密码如果您未使用Oracle ASM,请将此密码变量的值保留为空。
  • 如果创建有一个或多个可插拔数据库(PDB)的多租户容器数据库(CDB),则必须为PDBADMIN变量指定密码如果您未使用Oracle ASM,请将此密码变量的值保留为空。

使用响应文件运行安装后配置

  1. 编辑响应文件并为配置设定所需的密码。安装期间创建的响应文件位于$ORACLE_HOME/install/response/product_timestamp.rsp例如:

    对于Oracle数据库(oracle用户)

    oracle.install.asm.SYSASMPassword=password
    oracle.install.config.emAdminPassword=password

    对于Oracle Grid Infrastructure(grid用户)

    grid.install.asm.SYSASMPassword=password
    grid.install.config.emAdminPassword=password
  2. 切换目录到包含安装软件的Oracle Home。例如:

    对于Oracle Grid Infrastructure:

    cd Grid_home

    Grid_home路径/u01/app/oracle/product/19.0.0/grid

    对于Oracle数据库:

    cd $ORACLE_HOME
  3. 使用以下语法运行配置脚本:

    对于Oracle Grid Infrastructure:

    $ ./gridSetup.sh -executeConfigTools -responseFile Grid_home/install/response/product_timestamp.rsp

    对于Oracle数据库:

    $ ./runInstaller -executeConfigTools -responseFile $ORACLE_HOME/install/response/product_timestamp.rsp

    对于Oracle数据库,您还可以运行

    $ ./runInstaller -executeConfigTools -responseFile $ORACLE_HOME/inventory/response/db_install.rsp

    安装后配置工具以图形界面运行,显示配置进度。指定 [-silent]在静默模式下运行安装后配置选项。

    例如,对于Oracle Grid Infrastructure:

    $ ./gridSetup.sh -executeConfigTools -responseFile /u01/app/oracle/product/19.0.0/grid/response/grid_2016-01-09_01-03-36PM.rsp [-silent]

    对于Oracle数据库:

    $ ./runInstaller -executeConfigTools -responseFile /u01/app/oracle/product/19.0.0/dbhome_1/inventory/response/db_2016-01-09_01-03-36PM.rsp [-silent]

 

使用ConfigToolAllCommands脚本进行安装后配置

从Oracle Database 12c第2版(12.2)开始,configToolAllCommands不推荐使用,并且可能在将来的发行版中不支持脚本。

C最佳灵活架构

Oracle Optimal Flexible Architecture(OFA)规则是一组配置指南,旨在确保组织良好的Oracle安装,从而简化管理,支持和维护。

表C-2最佳灵活体系结构分层文件路径示例

目录描述
/ 

根目录

/u01/

用户数据挂载点1

/u01/app/

应用软件子目录

/u01/app/oraInventory

中央目录,用于维护服务器上的Oracle安装信息。设定OINSTALL组有写权限。所有Oracle软件安装用户必须将OINSTALL作为主组,并能够写入该组。

/u01/app/oracle/

用户Oracle的Oracle Base目录服务器上可以安装许多Oracle数据库,以及许多Oracle数据库软件安装所有者。

Oracle软件主目录应位于Oracle软件安装所有者的Oracle Base目录中,除非该Oracle软件是为群集部署的Oracle Grid Infrastructure。

/u01/app/grid

用户grid的Oracle Base目录用于群集安装的Oracle Grid Infrastructure的Oracle Home(Grid home)位于Grid用户之外。

服务器上只能有一个Grid Home,并且只有一个Grid软件安装所有者。GridHome包含日志文件和其他管理文件。

/u01/app/oracle/admin/

数据库管理文件子目录

/u01/app/oracle/admin/TAR

支持日志文件子目录

/u01/app/oracle/admin/db_sales/

名为“sales”的数据库的Admin子树

/u01/app/oracle/admin/db_dwh/

名为“dwh”的数据库的管理子目录

/u01/app/oracle/fast_recovery_area/

恢复文件子目录

/u01/app/oracle/fast_recovery_area/db_sales

名为“sales”的数据库的恢复文件

/u01/app/oracle/fast_recovery_area/db_dwh

名为“dwh”的数据库的恢复文件

/u02/app/oracle/oradata
/u03/app/oracle/oradata
/u04/app/oracle/oradata

Oracle数据文件目录

/u01/app/oracle/product/

除Oracle Grid Infrastructure之外的Oracle软件产品的通用目录

/u01/app/oracle/product/19.0.0/dbhome_1

Oracle数据库1的Oracle Home目录,由oracle帐户拥有 

/u01/app/oracle/product/19.0.0/dbhome_2

Oracle数据库2的Oracle Home目录,由oracle帐户拥有

/u01/app/oracle2/product/19.0.0/dbhome_2

Oracle数据库2的Oracle Home目录,由oracle2帐户拥有 

/u01/app/oracle/product/19.0.0/grid

适用于独立服务器的Oracle Grid Infrastructure的Oracle Home目录,由Oracle database和Oracle Grid Infrastructure的安装所有者oracle账户拥有

/u01/app/19.0.0/grid
用于集群的Oracle Grid Infrastructure的Oracle Home(Grid home),在安装之前由grid用户拥有,在安装后由root拥有
/u01/app/oracle/product/19.0.0/client_1

Oracle数据库客户端1的Oracle主目录,由Oracle数据库安装所有者帐户 oracle拥有

 

D 配置只读Oracle Homes

了解只读Oracle Home

关于只读Oracle Home

从Oracle Database 18c开始,您可以配置Oracle Home为只读模式。

在只读Oracle home模式下,所有配置数据和日志文件都位于只读Oracle home外。此功能允许您将只读Oracle home当作镜像可以分布到多个服务器

除了传统的ORACLE_BASE和ORACLE_HOME目录之外,以下目录包含以前在ORACLE_HOME中的文件:

  • ORACLE_BASE_HOME
  • ORACLE_BASE_CONFIG

只读Oracle Home的优点

  • 不停机打补丁和更新数据库
  • 简化打修补和批量部署,因为只需更新一个镜像即可将补丁分发到许多服务器。
  • 通过实施安装和配置分离来简化配置。
  • 安装和配置分离,简化配置
此特性不会影响数据库监控,诊断和性能调优。

关于 Oracle Base Homes

无论是只读Oracle Home 还是读写Oralce Home,用户文件,实例文件,日志文件都在ORACLE_BASE_HOME下.
在读写Oracle Home环境,ORACLE_BASE_HOME 路径和ORACLE_HOME  相同,在只读Oracle Home 模式下,ORACLE_BASE_HOME 位于ORACLE_BASE/homes/HOME_NAME.
其中HOME_NAME 是ORACLE_HOME 的内部名
例如network/{admin,trace,log }目录位于ORACLE_BASE_HOME ,读写环境下就在ORACLE_HOME下,只读环境下位于ORACLE_BASE/homes/HOME_NAME。
获取ORACLE_BASE_HOME 路径
$ setenv ORACLE_HOME /u01/app/oracle/product/19.0.0/dbhome_1
$ cd $ORACLE_HOME/bin
$ ./orabasehome
/u01/app/oracle/homes/OraDB19Home1
OraDB19Home1 就是HOME_NAME

关于 Oracle Base Config

ORACLE_BASE_CONFIG 读写环境下路径和ORACLE_HOME相同,在只读环境下与ORACLE_BASE路径相同
ORACLE_BASE_CONFIG/dbs 包含了ORACLE_HOME的配置文件,里面的每个文件都包含ORACLE_SID,所以这个目录是可以多个ORACLE_SID 共享的
获取ORACLE_BASE_CONFIG 路径
$ setenv ORACLE_HOME /u01/app/oracle/product/19.0.0/dbhome_1
$ cd $ORACLE_HOME/bin
$ ./orabaseconfig
/u01/app/oracle

关于 orabasetab

orabasetab 基于ORACLE_HOME 定义ORACLE_BASE,ORACLE_BASE_HOME和ORACLE_BASE_CONFIG
orabasetab 位于ORACLE_HOME/install/orabasetab,可用来确定ORACLE_HOME是只读还是读写,还用来定义ORACLE_BASE 和ORACLE_HOME
该文件最后一行由四部分组成,通过冒号分隔如:
$ cat /u01/app/oracle/product/19.0.0/dbhome_1/install/orabasetab
/u01/app/oracle/product/19.0.0/dbhome_1:/u01/app/oracle:OraDB19Home1:Y:
  • 第一个字段匹配当前的$ ORACLE_HOME。
  • 第二个字段定义当前ORACLE_HOME的ORACLE_BASE。
  • 第三个字段定义了HOME_NAME,用于在只读ORACLE_HOME中构造ORACLE_BASE_HOME路径。
  1. 第四个字段在读/写ORACLE_HOME显示N只读ORACLE_HOME中显示Y
在只读ORACLE_HOME中,ORACLE_BASE_HOME路径为ORACLE_BASE/homes/HOME_NAME,ORACLE_BASE_CONFIG与ORACLE_BASE相同。
在读/写ORACLE_HOME中,ORACLE_HOME,ORACLE_BASE_HOME和ORACLE_BASE_CONFIG都是相同的。

启用只读Oracle Home

1. 执行仅限软件的Oracle安装

$ mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1
$ chown oracle:oinstall /u01/app/oracle/product/19.0.0/dbhome_1
$ cd /u01/app/oracle/product/19.0.0/dbhome_1
$ unzip -q /tmp/db_home.zip
然后执行runInstall ,选择仅安装软件,可根据需要有选择无图形界面

 

2.执行roohctl脚本 
$ cd /u01/app/oracle/product/19.0.0/dbhome_1/bin
$ ./roohctl -enable 
Rac环境以上脚本在每个节点都要执行,或通过参数--nodelist执行
$ ./roohctl –enable –nodelist comma_separated_list_of_nodes
3. DBCA 创建数据库
$ ./dbca
可选择有无图形界面安装

 

Copy demo目录到Oracle Base Home

 

在只读Oralce Home 模式下,你必须Copy demo目录从ORACLE_HOME 到ORACLE_BASE_HOME。

Oracle数据库包含各种demo目录,其中包含各种示例和产品演示,您可以使用它们来了解Oracle数据库的产品,选项和功能。这些目录通常用不到,只有在演示的时候才会用

默认情况下,许多演示目录不可用。您必须安装Oracle数据库示例才能查看和使用示例和产品演示。

将相应demo目录复制到ORACLE_BASE_HOME中的相应位置。现在,您可以使用该demo目录的副本

您必须将以下demo目录从ORACLE_HOME 复制到ORACLE_BASE_HOME:

  • jdbc/demo
  • odbc/demo
  • ord/http/demo
  • precomp/demo
  • rdbms/demo
  • sqlj/demo
  • sqlplus/demo
  • xdk/demo

您还必须odbc/demoprecomp/demordbms/demoxdk/demo 目录创建符号链接。请参阅本主题中的“创建符号链接”部分。

Copy demo 目录

 

$ ls -l -d $(orabasehome)/rdbms/demo
$ mkdir -p $(orabasehome)/rdbms
$ cp -r $ORACLE_HOME/rdbms/demo $(orabasehome)/rdbms/demo
同样,将之前列出的所有demo目录从ORACLE_HOME 复制到ORACLE_BASE_HOME。

 

创建符号链接 
您必须为odbc/demoprecomp/demordbms/demo, xdk/demo创建符号链接
将原始的ORACLE_HOME下的demo 目录替换为指向copy 目录的软连接

$ ls -l -d $ORACLE_HOME/rdbms/demo
$ ls -l -d $ORACLE_HOME/odbc/demo
$ ls -l -d $ORACLE_HOME/precomp/demo
$ ls -l -d $ORACLE_HOME/xdk/include

$ mv $ORACLE_HOME/rdbms/demo $ORACLE_HOME/rdbms/demo.installed
$ mv $ORACLE_HOME/odbc/demo $ORACLE_HOME/odbc/demo.installed
$ mv $ORACLE_HOME/precomp/demo $ORACLE_HOME/precomp/demo.installed

$ ln -s $(orabasehome)/rdbms/demo $ORACLE_HOME/rdbms/demo
$ ln -s $(orabasehome)/odbc/demo $ORACLE_HOME/odbc/demo
$ ln -s $(orabasehome)/precomp/demo $ORACLE_HOME/precomp/demo
$ ln -s $ORACLE_HOME/xdk/include $(orabasehome)/xdk/include

 

注意:在只读Oracle Home 模式下 plsql/demo/ncmmpdemo.sql不可用。

复制init.ora文件

cp $ORACLE_HOME/init.ora $(orabasehome)/init.ora

确定Oracle Home是否只读

$ export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
$ cd $ORACLE_HOME/bin
$ ./orabasehome
/u01/app/oracle/homes/OraDB19Home1
如果orabasehome命令输出与$ORACLE_HOME相同,那么OracleHome处于读/写模式。如果显示路径为ORACLE_BASE/homes/HOME_NAME,则OracleHome处于只读模式。

只读Oracle Home 下的文件路径和目录变化

表D-1读/写和只读Oracle主文件路径示例

目录读/写Oracle Home File Path只读Oracle主文件路径

ORACLE_HOME

/u01/app/oracle/product/19.0.0/dbhome_1 /u01/app/oracle/product/19.0.0/dbhome_1

ORACLE_BASE

/u01/app/oracle/ /u01/app/oracle/

ORACLE_BASE_HOME

/u01/app/oracle/product/19.0.0/dbhome_1 /u01/app/oracle/homes/OraDB19Home1

ORACLE_BASE_CONFIG

/u01/app/oracle/product/19.0.0/dbhome_1

/u01/app/oracle/

network

/u01/app/oracle/product/19.0.0/dbhome_1/network

/u01/app/oracle/homes/OraDB19Home1/network

dbs

/u01/app/oracle/product/19.0.0/dbhome_1/dbs

/u01/app/oracle/dbs

E管理Oracle数据库端口号

查看默认端口号。如果需要,请在安装后使用这些步骤更改分配的端口。(略)