在开始之前,最好先查看 Backup and DR Service for Oracle。
在备份 Oracle 数据库之前,您必须将 Oracle 服务器添加为 Backup and DR Service 的主机。为此,请务必参阅备份 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> (you can get this through ps -ef | grep pmon) export PATH=$ORACLE_HOME/bin:$PATH
登录 sqlplus:
#sqlplus / as sysdba #SQL> 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 #SQL>
数据库应使用
spfile
。验证数据库是否正在运行,且使用的是spfile
:#sqlplus / as sysdba SQL> show parameter spfile NAME TYPE VALUE ------------------ ----------- ------------ spfile string +DATA/ctdb/spfilectdb.ora
对于 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';
此示例展示了设置为本地文件系统的配置。
在 RAC 环境中,此设置必须为共享 ASM 磁盘组。如需将其放在 ASM 磁盘组上,请使用:
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+<DG name>/snap_<DB 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) (you
can get this through ps ?ef | grep pmon)
#export PATH=$ORACLE_HOME/bin:$PATH
连接到 sqlplus
:
#sqlplus / as sysasm
#sql> 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>;
通过登录到所有节点并运行以下命令,向所有 RAC 节点授予
sysdba
访问权限:sqlplus
grant create session, resource, sysdba to act_rman_user;
对于 Oracle 12c,此角色可以是
sysbackup
而不是of sysdba
,并且数据库用户名以 # 开头。验证是否已在 RAC 环境中的所有节点上授予
sysdba
角色:#sqlplus / as sysasm # sql> 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 服务名称未列出,请在位于
$ORACLE_HOME/network/admin
或$GRID_HOME/network/admin
的tnsnames.ora
文件中添加以下条目,以创建服务名称条目: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)
) )
在应用详情和设置下,集群节点条目如下所示:
Failoverchoice:NodeIP:Servicename:Role
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>) ) )
测试已创建的服务名称:
tnsping actservice
测试服务名称和用户凭据:
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服务
在应用详细信息和设置归档日志备份服务名称下指定此服务名称。
修补 Oracle 12c
如果您的 Oracle 12c 安装不包含此补丁(可从 Oracle 支持门户下载),则备份和灾难恢复应用感知装载可能会失败:
Oracle 数据库 12c Bug# 19404068(针对创建的控制文件运行 RECOVER DATABASE 时出现 ORA-1610)
- (补丁 19404068) Linux x86-64,适用于 Oracle 12.1.0.2.0
如需查看补丁是否已安装,请运行以下命令:
$cd $ORACLE_HOME/OPatch
$./opatch lsinventory -details
$./opatch lsinventory -details | grep 19404068
后续步骤
在添加 Oracle 主机之前,请继续执行以下操作:
Oracle DBA 指南
- 适用于 Oracle 数据库的 Backup and DR
- 保护 Oracle 数据库的前提条件
- Oracle 补丁和已知问题
- 准备 Oracle 数据库以进行保护
- 发现并保护 Oracle 数据库
- Oracle 数据库的详细信息和设置
- 将 dNFS 与 Backup and DR 搭配使用
- 保护发现的 Oracle 数据库
- 将 Oracle 数据库装载为标准装载
- 创建 Oracle 数据库的即时虚拟副本
- 恢复和还原 Oracle 数据库
- 使用装载和迁移功能即时恢复 Oracle 数据库
- 通过 Backup and DR 工作流预配环境