前言

最近做恢复演练需要使用 Veeam 恢复一套 RAC 数据库到灾备单机数据库。

灾备环境准备

安装 Oracle 软件

使用 OracleShellInstall 脚本一键安装 Oracle 软件:

1
2
3
4
5
6
7
8
9
./OracleShellInstall \
-lrp N `# 配置本地软件源`\
-ud Y `# 安装到Oracle软件结束`\
-lf ens18 `# 公网IP的网卡名称`\
-n SQCSLdisasterT02 `# 主机名`\
-ord /data `# Oracle数据文件目录`\
-ard /data/archivelog `# Oracle归档文件目录`\
-o lucifer `# 数据库名称`\
-ns AL16UTF16 `# 国家字符集`

安装完成后,配置 Veeam Agent,可参考文章:Veeam:在 CentOS/RHEL7 上安装 Agent

创建恢复密钥

在 Veeam 控制台选择需要被恢复的主机,右键创建恢复密钥:

复制密钥后,点击创建(有效期是24小时):

然后打开灾备主机,进入 Veeam Oracle RMAN 的安装目录下,执行密钥加载:

1
2
cd /opt/veeam/VeeamPluginforOracleRMAN/
./OracleRMANConfigTool --set-auth-data-for-restore

至此,密钥就搞定了。

异机恢复

打开 Veeam 控制台,选择需要被恢复的主机,右键选择从 Oracle RMAN backup 恢复:

会自动打开 Veeam.Oracle.Explorer 工具:

右键选择 restore 开始恢复:

这里输入灾备主机的 IP 以及 oracle 用户密码:

如果安装目录不一致,需要选择下面的进行修改:

选择需要恢复到最新或者其他需要的时间点:

由于是 RAC 恢复到单机,所以需要修改数据库文件的位置(修改第一行,然后点击同步就行):

检查以上修改后的文件目录是否存在,没有则手动在灾备主机上进行创建:

1
2
3
4
5
6
7
8
9
## oracle 用户执行
mkdir -p /data/lucifer/CONTROLFILE/
mkdir -p /data/lucifer/DATAFILE/
mkdir -p /data/lucifer/86B637B62FE07A65E053F706E80A27CA/DATAFILE/
mkdir -p /data/lucifer/2BFE67B0B608F9ABE0638128C70AF9E0/DATAFILE/
mkdir -p /data/lucifer/ONLINELOG/
mkdir -p /data/lucifer/TEMPFILE/
mkdir -p /data/lucifer/2BFE3BB27172C814E0638128C70A58A0/TEMPFILE/
mkdir -p /data/lucifer/2BFE67B0B608F9ABE0638128C70AF9E0/TEMPFILE/

从文件路径可以看出来这是一套 CDB 架构的数据库。

目录创建完成后,继续下一步,可以选择多个通道加快恢复速度:

开始恢复:

恢复的时间根据数据库的备份大小和磁盘性能来决定。