Veritas NetBackup™ for Oracle 管理指南
- 介绍
- NetBackup for Oracle 快速入门
- 安装 NetBackup for Oracle
- Oracle 策略配置
- 执行 Oracle 的备份和还原
- 关于 NetBackup for Oracle 备份
- 关于 NetBackup for Oracle 还原
- 在 Microsoft Windows 群集环境中使用 NetBackup for Oracle
- 引导式恢复
- 带有 Snapshot Client 的 NetBackup for Oracle
- 故障排除
- 排除 RMAN 备份或还原错误
- 附录 A. Real Application Clusters
- 附录 B. 使用 NetBackup 保护 Oracle RAC 的最佳做法
- 附录 C. 重复数据删除最佳做法
- 附录 D. Snapshot Client 对 SFRAC 的支持
- 附录 E. 基于脚本的块级增量式 (BLI) 备份(UNIX 和 Linux 系统上没有 RMAN)
- 附录 F. XML 存档程序
- 附录 G. 注册授权位置
RAC 配置示例:故障转移名称不可用且备份负载不平衡
在此配置中,VIP 名称或主机名允许连接到群集中各自的主机。 您需要特殊配置以确保备份脚本至少在其中一个主机上执行,但不在这两个主机上都执行。否则,如果指定的实例处于关闭状态,则可能不会发生备份;或者,如果指定的两个实例都处于活动状态,则会发生冗余备份。
为了便于讨论,“主主机”是指通常执行备份的实例, “辅助主机”是指当主主机不可用时可以使用的其他实例。 此外,由于在任意一个主机上都可能进行备份,因此备份映像可能存储在两个客户端名称下。 映像存储名称取决于备份时处于活动状态的主机。 配置如下:
策略应指定两个主机 hostname1 和 hostname2 或 vipname1 和 vipname2 的客户端名称。 指定客户端名称可确保在当前运行的主机上尝试备份。
群集中的两个主机必须能够访问备份脚本,群集文件系统是一个理想的位置。
应自定义备份脚本,以便仅在一个客户端上启动 RMAN。如果在主主机上执行脚本,则启动 RMAN 并执行备份。 如果在辅助主机上执行脚本并且主主机已启动,则以状态 0 退出,以便 NetBackup 调度程序不再重试此客户端。 如果在辅助主机上执行脚本并且主主机已关闭,则启动 RMAN 并执行备份。 可以通过对主主机进行 tnsping 或者甚至通过对数据库的查询来构建脚本自定义。 使用此自定义可查看其他实例是否打开且能够执行备份。
$ select INST_ID, STATUS, STARTUP_TIME, HOST_NAME from gv$instance; INST_ID STATUS STARTUP_T HOST_NAM ---------- ------------ --------- --------- 1 OPEN 13-JAN-09 vipname1 2 OPEN 13-JAN-09 vipname2
每个用户控制的备份请求都必须使用允许 NetBackup 介质服务器逆向连接到正确主机以进行数据传输的客户端名称。默认情况下,备份使用 bp.conf 文件中的 CLIENT_NAME,该名称对于每个主机都是不同的。 更好的解决方案是将 RMAN 配置为提供来自该策略的相应客户端名称,如下所示:
SEND 'NB_ORA_CLIENT=$NB_ORA_CLIENT';
将 NetBackup 主服务器配置为对所有的备份映像提供物理主机名访问。
cd /usr/openv/netbackup/db/altnames echo "hostname1" >> hostname1 echo "vipname1" >> hostname1 echo "hostname2" >> hostname1 echo "vipname2" >> hostname1 cp hostname1 hostname2
您可以使用“首选网络”或其他方式,强制 NetBackup 使用与用户控制的出站请求的 VIP 名称关联的 IP 地址。 如果使用此方法,则必须允许 VIP 名称有权访问所有的备份映像。
cd /usr/openv/netbackup/db/altnames cp hostname1 vipname1 cp hostname1 vipname2
任何一个客户端都可以启动还原。必须使用 SET AUTOLOCATE ON; 配置 RMAN,以便从执行备份的相应实例或主机请求备份集片。 或者,如果将每个还原请求都配置为包括正确的客户端名称,则可以从任一主机或实例进行还原。 此客户端名称是将备份集片传输到存储时使用的名称。
SEND 'NB_ORA_CLIENT=client_name_used_by_backup'