在开始之前,最好先查看 Backup and DR for Oracle。
在备份 Oracle 数据库之前,您必须将 Oracle 服务器作为主机添加到 Backup and DR。为此,请务必参阅备份 Oracle 数据库的前提条件,然后按照以下准备步骤操作。
在 Linux 环境中准备 Oracle 数据库
在保护 Oracle 数据库之前,或者在数据库保护作业失败时,请确保 Oracle 数据库服务器上的以下设置正确无误。
- 要保护的每个 Oracle 数据库都必须正常运行。例如:
database: actdb
ps -ef | grep pmon | grep -i actdb
oracle 27688 1 0 2015 ? 00:26:24 ora_pmon_actdb
- 数据库必须以归档日志模式运行。如需验证数据库是否以归档日志模式运行,请以 Oracle 操作系统用户身份登录数据库服务器,并设置数据库环境变量:
export ORACLE_HOME=<oracle home path>
# Get this from /etc/oratab
export ORACLE_SID=<database instance name>
export PATH=$ORACLE_HOME/bin:$PATH
Login to sqlplus:
sqlplus / as sysdba
archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination +FRA
Oldest online log sequence 569
Next log sequence to archive 570
Current log sequence 570
Note: If archive log mode is not enabled then get archive mode enabled
before proceeding.
- 数据库应使用
spfile。验证数据库是否正在运行,且使用的是spfile:
sqlplus / as sysdba
show parameter spfile
NAME TYPE VALUE
------------------ ----------- ------------
spfile string +DATA/ctdb/spfilectdb.ora
Note: If the value is `null_` then
get the spfile set. Backup and DR supports backing up using pfile as well.
pfile should be available in default location. For example, a
Linux `pfile` should be located under `$ORACLE_HOME/dbs`.
对于 Oracle RAC 数据库,快照控制文件必须位于共享磁盘下。对于 ASM 下的 Oracle RAC 数据库,快照控制文件必须位于共享磁盘下。
如需检查这一点,请连接到 RMAN 并运行
show all命令。如有必要,请进行配置:rman target /然后在 RMAN 中:
show all对于 db_unique_name 为 CTDB 的数据库,RMAN 配置参数如下:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/mnt/ctdb/snapcf_ctdb.f';
This example shows the configuration set to the local file system.
In a RAC environment, this must be set to shared ASM Disk Group. To put it
on the ASM Disk Group, use:
```bash
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+(disk group name)/snap_(database name).f';
```
准备备份数据文件位于 ASM 磁盘组中的 Oracle 数据库
ASM 磁盘组上的 Backup and DR 暂存磁盘
必须设置 ASM diskstring 参数,且该参数不得为 null。以 ASM 操作系统用户身份登录数据库服务器,并设置 ASM 环境变量:
export ORACLE_HOME=(oracle ASM home path)
# Get this from /etc/oratab
export ORACLE_SID=(ASM instance name)
export PATH=$ORACLE_HOME/bin:$PATH
连接到 sqlplus:
sqlplus / as sysasm
show parameter asm_diskstring
NAME TYPE VALUE
------------------- ----------- ------------------------------
asm_diskstring string ORCL:*, /dev/sdt1, /dev/sdu1
如果价值的结果为 null,则在继续进行 Backup and DR 保护之前,获取现有 ASM 磁盘的正确 ASM 磁盘字符串值。Backup and DR 备份会将其备份暂存磁盘的磁盘字符串路径 (/dev/Backup and DR/asm/*) 添加到 ASM 的映射中。
文件系统上的 Backup and DR 暂存磁盘
如果您要将 Oracle ASM 数据库保护到文件系统,则必须在应用详细信息和设置下将将 ASM 转换为文件系统设置为是。 请参阅Oracle 数据库的应用详细信息和设置。
准备 Oracle 数据库身份验证
只有在您计划使用数据库身份验证时,才需要执行以下额外的准备步骤。有关 Oracle 数据库身份验证的说明,请参阅使用数据库身份验证的 Backup and DR。
按照在 Linux 环境中准备 Oracle 数据库中的步骤操作。
为 Backup and DR 备份创建数据库用户账号(如果未提供):
create user act_rman_user identified by <password>;
- 通过登录所有节点并运行以下命令,向
sysdba授予对所有 RAC 节点的访问权限:sqlplus
grant create session, resource, sysdba to act_rman_user;
对于 Oracle 12c,此角色可以是 sysbackup 而不是 of sysdba,并且数据库用户名以 # 开头。
- 验证是否已在 RAC 环境中的所有节点上授予
sysdba角色:
sqlplus / as sysasm
select * from gv$pwfile_users;
INST_ID USERNAME SYSDB SYSOP SYSAS
---------- -------------- ----- ----- -----
1 SYS TRUE TRUE FALSE
2 SYS TRUE TRUE FALSE
1 ACT_RMAN_USER TRUE TRUE FALSE
2 ACT_RMAN_USER TRUE TRUE FALSE
根据您的环境类型,按照以下说明测试服务名称:
在非 RAC 环境中创建并验证 Oracle 服务名称
Oracle 服务名称仅用于数据库身份验证。对于操作系统身份验证,则不需要此参数。
示例:
数据库名称:dbstd,
实例名称:dbstd
- 如果 Oracle 服务名称未列出,请在
tnsnames.ora文件中添加以下条目,以在$ORACLE_HOME/network/admin或$GRID_HOME/network/admin中创建服务名称条目:
act_svc_dbstd =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = (IP of the database server))(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dbstd)
) )
如果 tnsnames.ora 文件位于非标准位置,请在Oracle 数据库的应用详细信息和设置中所述的应用详细信息和设置下提供该文件的绝对路径。
测试数据库的服务名称条目,确保其已配置:
以 Oracle 操作系统用户身份登录并设置 Oracle 环境:
TNS_ADMIN=(tnsnames.ora file location)
tnsping act_svc_dbstd
- 检查数据库用户账号,确保 Backup and DR 备份可以连接:
sqlplus act_rman_user/act_rman_user@act_svc_dbstd as sysdba
- 在 Oracle 数据库的应用详细信息和设置中所述的应用详细信息和设置下的“Oracle 服务名称”设置中,提供创建的服务名称 (act_svc_dbstd)
在 RAC 环境中创建并验证 Oracle 服务名称
Oracle 服务名称仅用于数据库身份验证。对于操作系统身份验证,则不需要此参数。
三节点 RAC 示例:
数据库名称:
dbrac实例 1 名称:
dbrac1实例 2 名称:
dbrac2实例 3 名称:
dbrac3,数据库保护功能从节点 3(实例名称dbrac3)设置:
- 在
tnsnames.ora文件中(位于$ORACLE_HOME/network/admin或$GRID_HOME/network/admin)添加以下条目,以创建服务名称条目:
act_svc_dbrac3 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = (IP of the database server)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(INSTANCE_NAME = dbrac3)
(SERVICE_NAME = dbrac)
) ) )
Where:
HOST = This can be SCAN IP in a RAC environment or VIP or IP of the node 3 database server.
SERVICE_NAME = database name
INSTANCE_NAME = database instance name on node3
测试服务名称:
以 Oracle 操作系统用户身份登录并设置 Oracle 环境:
TNS_ADMIN=(tnsnames.ora file location)
tnsping act_svc_dbrac3
- 检查数据库用户账号,确保 Backup and DR 备份可以连接:
sqlplus act_rman_user/act_rman_user@act_svc_dbrac3 as sysdba
在Oracle 数据库的应用详细信息和设置中所述的应用详细信息和设置下的“Oracle 服务名称”设置中,提供创建的服务名称 (act_svc_dbrac3)。
如果 tnsnames.ora 文件位于非标准位置,请在Oracle 数据库的应用详细信息和设置中所述的应用详细信息和设置下的 Oracle
TNS_Admin路径设置中提供 tnsnames.ora 文件的绝对路径。
启用数据库块更改跟踪(可选)
有关数据库更改块跟踪的信息,请参阅 Oracle 数据库块更改跟踪 (BCT)
如需检查数据库块更改跟踪是否已启用,请执行以下操作:
sqlplus / as sysdba
在 SQL 提示符下:
select * from v$block_change_tracking;
如果未启用数据库块更改跟踪,请从 sqlplus 启用数据库块更改跟踪:
使用 ASM 磁盘组
sqlplus / as sysdba
在 SQL 提示符下:
alter database enable block change tracking using file '+<ASM Disk Group Name>/<database name>/<dbname>.bct';
使用文件系统
sqlplus / as sysdba
在 SQL 提示符下:
alter database enable block change tracking using file '$ORACLE_HOME/dbs/<dbname>.bct';
从 Oracle Data Guard 节点进行保护
您可以从主数据库节点或 Oracle Data Guard 备用节点保护 Oracle 数据库。如果保护是从 Oracle Data Guard 节点设置的,请务必在设备管理控制台的“应用详情和设置”下设置主节点凭据。
对于数据库身份验证(仅限 Linux)
用户名/密码:数据库用户账号凭据。 为了使此用户账号在具有 sysdba 访问权限的 Data Guard 节点上可用,必须在主节点上使用 sysdba 权限创建此用户(请参阅“创建具有 sysdba 访问权限的备份用户账号”)。 然后,必须将主节点中的密码文件(位于
$ORACLE_HOME/dbs/下)复制到 Data Guard 节点。
用于操作系统身份验证
- 用户名/密码:在操作系统身份验证下,不需要 sysdba 权限。此数据库用户账号需要
connect, alter system权限。 为了使此用户账号在 Data Guard 节点上可用,必须在主节点上创建此用户。
如果用户没有 sysdba 角色,则需要 grant connect, alter system, select on dba_tablespaces。
如需授予这些权限,请在 SQL 提示符下执行以下操作:
grant connect, alter system, select on dba_tablespaces to act_rman_user;
- Oracle Data Guard 主节点服务名称:这是在 Data Guard 节点上配置的 tnsnames.ora 文件中的服务名称,用于从备用节点连接到主节点。如果从 Data Guard 备用节点配置备份,则操作系统和数据库身份验证都需要 Oracle Data Guard 主节点服务名称。
如需详细了解所有详细信息和设置,请参阅适用于 Oracle 数据库的应用详细信息和设置
| 数据库节点 | 操作系统身份验证 | 数据库身份验证 |
|---|---|---|
| 主要 | 无需数据库凭据。 | 需要提供数据库凭据。如果未选择任何角色,则使用 sysdba。 |
| 待机 | 即使是操作系统身份验证,也需要数据库凭据(用于连接到主数据库以切换日志)。 数据库凭据不需要具有 sysdba/sysbackup 角色。 如果使用 sysdba/sysbackup 账号,请在“应用详情和设置”中设置数据库中的用户角色。 | 需要数据库凭据。 数据库凭据必须具有 sysdba 或 sysbackup 角色,并且数据库中的用户角色必须在应用详情和设置中设置为 sysdba 或 sysbackup。 如需设置数据库身份验证,请参阅为 Oracle 服务器启用数据库身份验证。 |
将 RMAN 备份的 RAC 透明故障切换配置到其他节点
您必须在计划纳入备份故障切换配置的所有节点上安装并运行 Backup and DR 代理。 只能从一个节点设置保护。
在“详细信息和设置”>“集群节点”中,指定 Oracle RAC 环境中的故障切换节点选择:
<Failover choice>:<Node IP>:<Servicename>:<Role>
其中:
故障切换选择:故障切换时节点的顺序。
节点 IP:您希望备份运行的节点的 IP 地址
Servicename:为 Backup and DR RMAN 备份创建并在 tnsnames.ora 中指定的服务名称。这可以是为 Backup and DR 备份创建的新专用服务,也可以是相应节点上数据库的 SID 名称(实例名称)。
角色:F,表示它是故障切换节点
在故障切换节点上的 tnsnames.ora 文件($ORACLE_HOME/network/admin/tnsnames.ora 或 $GRID_HOME/network/admin/tnsnames.ora)下创建新的服务名称
Oracle 单节点环境中的示例
RAC One Node 由两个节点组成:
172.15.157.200
172.15.157.201
它有一个数据库 OneN,在任何给定时间都只在一个节点上运行。OneN 受 172.15.157.200 的保护,集群节点设置指定为 1:172.15.157.201:OneN:F
如果 OneN 故障切换到 172.15.157.201,Backup and DR 备份会跟随它,并从 172.15.157.201(而不是 200)开始下一个备份作业。如果备份作业在执行过程中发生故障切换,则该作业会失败,下一个作业会使用故障切换节点来启动新的备份。
Oracle 环境中的示例(非单节点):
2 节点 RAC(
dbrac1、dbrac2)使用
dbrac1中的数据库名称“dbrac”设置保护,并将故障切换设置为dbrac2节点 2 上的服务名称:
act_svc_dbrac2节点 2 IP 或扫描 IP:
172.1.1.0
act_svc_node2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.1.1.0)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(INSTANCE_NAME = dbrac2)
(SERVICE_NAME = dbrac)
) )
在应用详情和设置下,集群节点条目如下所示:
1:172.1.1.1:act_svc_node2:F
集群节点条目 F 和 M 的行为
F:故障切换节点,仅在保护节点无法执行备份时参与。
M:维护节点,如果验证通过,则替换保护节点以执行备份。
Oracle 归档日志压缩
Backup and DR 归档日志备份支持 Oracle 日志备份集压缩。您选择的压缩类型取决于这些 RMAN 配置设置。请根据您的使用情形选择相应选项。
较低的压缩比对备份吞吐量的影响最小。这些实例最适合 CPU 资源是限制因素的环境。
建议在大多数环境中使用中等压缩。这些设置可实现压缩率和速度的良好组合。
高压缩比会消耗大量资源,最适合在网络速度较慢的情况下进行备份,因为此时的限制因素是网络速度。
默认设置为“基本”。基本版不需要 Oracle 高级压缩。
如需检查环境中设置的压缩类型,请在 RMAN 提示符下运行 show all 命令:
rman target /
show all
配置 Oracle 数据库服务以在多个节点之间实现负载均衡
此过程仅适用于 Oracle ASM 数据库。在此示例中,假设有一个四节点 RAC 环境;节点 3 和 4 将进行负载平衡以供备份使用。
请参阅:
Oracle RAC 节点之间的负载均衡需要 Oracle 数据库身份验证。
配置从多个节点并行执行 RMAN 映像复制
在 RAC 环境中,您可以配置备份以从多个节点并行运行。
在所有节点上安装 Backup and DR 代理。
使用应用详情和设置,将 ASM 磁盘组映射到节点 3 和节点 4。
使用 srvctl 创建数据库服务,以便从节点 3 和节点 4 运行。
使用此服务可在应用详情和设置下指定。 在“高级设置”下选择频道数量(频道数)。RMAN 在节点 3 和节点 4 之间分配通道。
设置 Oracle 服务名称和 RAC 成员节点。
配置 Oracle 数据库服务以在多个节点之间实现负载均衡
在应用详情和设置中配置,RAC 成员节点:node3 的 IP 和 node4 的 IP。
为维护节点创建数据库服务,以供 Backup and DR 用于备份:
srvctl add service -d <dbname> -s act_service_<dbname> -r <dbinstance3>,<dbinstance4>
srvctl start service -d <dbname> -s act_service_<dbname>
- 在 tnsnames.ora 文件($ORACLE_HOME/network/admin/tnsnames.ora 或 $GRID_HOME/network/admin/tnsnames.ora)下,为在备份节点(本例中为
dbinstance3和dbinstance4节点)上创建的 Oracle 服务名称添加 tns 条目
act_service_<dbname> =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = <SCAN IP>)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = <DATABASE NAME>)
) )
- 测试创建的 servicename:
tnsping act_service_<dbname>
- 测试服务名称和用户凭据:
sqlplus act_rman_user/act_rman_user@act_service_<dbname> as sysdba
在应用详细信息和设置的“Oracle 服务名称”下指定此服务名称。
在受保护的节点(例如节点 3)上创建一个专用的归档日志备份服务,以用于备份:
srvctl add service -d <dbname> -s act_arc_service_<dbname> -r <dbinstance3>
srvctl start service -d <dbname> -s act_arc_service_<dbname>
- 在
tnsnames.ora文件($ORACLE_HOME/network/admin/tnsnames.ora或$GRID_HOME/network/admin/tnsnames.ora)下添加为创建的归档日志备份服务名称添加的 tns 条目
act_arc_service_<dbname> =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = <SCAN IP>)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(INSTANCE_NAME = <node 3 instance>)
(SERVICE_NAME = act_arc_service_<dbname>)
) )
- 测试服务名称:
tnsping act_arch_service_<dbname>
- 在应用详细信息和设置归档日志备份服务名称下指定此服务名称。
修补 Oracle 12c
如果您的 Oracle 12c 安装不包含此补丁(可从 Oracle 支持门户下载),则 Backup and DR 应用感知装载可能会失败:
Oracle Database 12c Bug# 19404068 (ORA-1610 ON RECOVER DATABASE FOR CREATED CONTROLFILE)
- (Patch 19404068) Linux x86-64 for Oracle 12.1.0.2.0
如需查看补丁是否已安装,请运行以下命令:
cd $ORACLE_HOME/OPatch
./opatch lsinventory -details
./opatch lsinventory -details | grep 19404068
后续步骤
在添加 Oracle 主机之前,请继续执行以下操作:
Oracle DBA 指南
- Backup and DR for Oracle 数据库
- 保护 Oracle 数据库的前提条件
- Oracle 补丁和已知问题
- 准备 Oracle 数据库以进行保护
- 发现并保护 Oracle 数据库
- Oracle 数据库的详细信息和设置
- 将 dNFS 与 Backup and DR 搭配使用
- 保护发现的 Oracle 数据库
- 将 Oracle 数据库装载为标准装载
- 创建 Oracle 数据库的即时虚拟副本
- 恢复和还原 Oracle 数据库
- 使用“装载和迁移”功能即时恢复 Oracle 数据库
- 通过 Backup and DR 工作流预配环境