在进行容灾业务配置前,请先检查生产端和灾备端的Oracle数据库环境和存储侧环境是否满足要求。如果不满足要求,请及时调整。
以下检查项目需要在生产端数据库环境和灾备端数据库环境中进行检查和配置。
当生产端应用为Oracle RHCS集群,如果使用CLVM卷管理配置方式,不支持灾备端单机部署方式。
当主机为AIX操作系统时,如果用户执行rendev命令修改生产端物理卷(PV)的名称,且修改后的PV名称以“/dev/hdisk”开头时,执行容灾测试、计划性迁移或故障恢复操作后,灾备端的设备名称可能会发生变化。
执行rpm -qa | grep sysfsutil命令,检查主机上是否已经安装systool软件。
以主机操作系统为RedHat Linux 6.3 for x86_64,且sysfsutils软件包名称为“sysfsutils-2.1.0-6.1.el6.x86_64.rpm”为例说明,安装软件包命令请以实际为准。
当对Oracle数据库的环境变量进行设置后,eReplication Agent才能对Oracle数据库的数据一致性提供保障。建议在安装eReplication Agent之前配置环境变量,如果已经安装了eReplication Agent,请在配置环境变量后重新启动eReplication Agent,以使配置生效。
右键单击“我的电脑”,选择“属性”。在“高级”页签中,单击“环境变量”。在弹出的“环境变量”对话框中,如果环境变量已配置,显示结果如图1所示,检查PATH中是否包括Oracle的bin目录。
oracle@linux:~> echo $ORACLE_BASE /u01/app/oracle
oracle@linux:~> echo $ORACLE_HOME /u01/app/oracle/product/12.1.0/dbhome_1
oracle@linux:~> echo $PATH /u01/app/oracle/product/12.1.0/dbhome_1/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games:/usr/lib/mit/bin:/usr/lib/mit/sbin
grid@linux:~> echo $ORACLE_HOME /u01/app/12.1.0/grid/
Oracle 11gR2、12c版本grid用户的环境变量中必须配置ORACLE_HOME。
grid@linux:~> echo $PATH /u01/app/12.1.0/grid//bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games:/usr/lib/mit/bin:/usr/lib/mit/sbin
当回显信息中包含“bash”、“ksh”或“csh”时,可以快速判断默认Shell类型对应为“bash”、“ksh”或“csh”。各操作系统不同Shell类型需要修改的配置文件说明如表1所示。
在配置环境变量前,请首先确认eReplication Agent的运行用户rdadmin的默认Shell类型。如果Shell类型为bash请修改rdadmin主目录下的“.profile”或“.bash_profile”文件,如果Shell类型为csh请修改rdadmin主目录下的“.cshrc”文件。本文档以Shell类型为bash,修改“.profile”文件为例进行说明。
操作系统 |
Shell类型 |
配置文件 |
配置方式 |
|---|---|---|---|
Linux |
sh/bash(默认,推荐) |
|
export name=value |
csh |
“.cshrc” |
setenv name value |
|
ksh |
“.profile” |
export name=value |
|
AIX/Solaris |
sh/ksh(默认,推荐) |
“.profile” |
export name=value |
csh |
“.cshrc” |
setenv name value |
|
bash |
“.profile” |
export name=value |
|
HP-UX |
sh/POSIX Shell(默认,推荐) |
“.profile” |
export name=value |
csh |
“.cshrc” |
setenv name value |
|
ksh |
“.profile” |
export name=value |
|
bash |
“.profile” |
export name=value |
ORA_CRS_HOME=/opt/oracle/product/10g/cluster PATH=$PATH:/bin:/sbin:/usr/sbin export ORA_CRS_HOME PATH
UDEV场景下,UDEV磁盘映射方式约束说明如下:
配置UDEV磁盘映射有两种方式,以SUSE Linux 10操作系统(磁盘名为“asm1”和“asm2”)为例说明,请参考以下规则内容配置UDEV磁盘映射:
KERNEL=="sd*1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -s /block/$parent", RESULT=="36200bc71001f375519f5d2c0000000f9", NAME="asm1", OWNER="oracle", GROUP="dba", MODE="0660"
KERNEL=="sd*1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -s /block/$parent", RESULT=="36200bc71001f375519f5d2c0000000f9", SYMLINK+="asm1", OWNER="oracle", GROUP="dba", MODE="0660"
KERNEL字段必须以通配符方式指定(如KERNEL=="sd*1"),不能指定固定的设备分区名(如KERNEL="sda"),否则将导致UDEV配置的规则不能生效。
创建Oracle保护组过程中,可以进行认证方式的选择,针对不同的保护对象和不同的RAC主机可以配置不同的认证方式,目前支持数据库认证和操作系统认证两种方式。具体的配置要求如表3所示。
认证方式 |
要求 |
|---|---|
数据库认证 |
生产端与灾备端认证方式必须保证一致。 |
同一个集群内部,各个主机上的认证方式必须一致。 |
|
同一个保护组内,各个保护对象选择的认证方式保持一致。 |
|
创建保护组时,在eReplication上选择的认证方式必须和实际数据库使用的认证方式保持一致。 |
|
操作系统认证 |
针对部署在ASM上的Oracle RAC集群环境,必须要开启操作系统认证,才能在容灾恢复时正常启动备端集群。 |
针对部署在ASM上的Oracle单实例数据库,要求:
|
eReplication Agent对数据库一致性保证实现需要Oracle运行在归档模式下,请检查Oracle数据库是否运行在归档模式下。
命令输入格式和显示结果如下所示:
C:\Documents and Settings\Administrator>sqlplus /nolog SQL*Plus: Release 10.2.0.1.0 - Production on Thu Jun 3 26 18:09:00 2020 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. SQL> conn sys/abc@db01 as sysdba Connected.
命令输入格式和显示结果如下所示:
SQL> archive log list; Database log mode No Archive Mode Automatic archival Enabled Archive destination G:\oracle10g\product\10.2.0\db_1\RDBMS Oldest online log sequence 7 Current log sequence 9
命令输入格式和显示结果如下所示:
[oracle@rhcs218 ~]$ sqlplus /nolog SQL*Plus: Release 11.2.0.3.0 - Production on Fri Jun 26 10:30:34 2020 Copyright (c) 1982, 2002, Oracle. All rights reserved. SQL> conn sys/oracle@verify as sysdba Connected.
命令输入格式和显示结果如下所示:
SQL> archive log list; Database log mode No Archive Mode Automatic archival Enabled Archive destination /oracle/archive Oldest online log sequence 7793 Next log sequence to archive 7795 Current log sequence 7795
检查数据库的数据文件、日志文件、控制文件是否存放在阵列的LUN上,如果不是则无法进行容灾。建议临时表空间和以上三种文件之一共享LUN,或使用单独的LUN存储。
如果灾备端数据库环境和生产端不一样,请用户自行处理,确保灾备端和生产端具有完全一样的数据库环境。
灾备端数据库环境要求如表4所示。
以下内容介绍在灾备主机上完成Oracle数据库软件的安装操作后,两种搭建灾备数据库容灾环境的方法。
Windows操作系统和类UNIX操作系统下,各自的数据库目录对应关系如表5所示。
主机操作系统类型 |
数据库根目录 |
数据库安装目录 |
查询方法 |
|---|---|---|---|
Windows |
%ORACLE_BASE% |
%ORACLE_HOME% |
|
类UNIX |
$ORACLE_BASE |
$ORACLE_HOME |
|
复制文件时,为了确保生产端和灾备端文件权限一致,请从生产端Oracle用户目录下复制必备文件至灾备端Oracle用户目录下。
其中DATABASENAME为数据库名称,ORACLE_HOME为数据库安装目录,INSTANCENAME为数据库实例名称,HOSTNAME为数据库所在主机名称。
如果灾备端与生产端的spfile文件名称不同,为避免同步后灾备端数据库被覆盖,需要将灾备端pfile文件中的spfile文件名称修改为与生产端保持一致或将灾备端数据库的spfile文件存放到本地磁盘。具体配置方法请参见Oracle 12.2配置(配置spfile文件)。