异机恢复到RAC
RAC异机恢复到RAC环境与恢复实例步骤一致,详情见实例恢复步骤。
注意:RAC恢复到RAC环境,需要异机环境上有与原机环境相同名称的RAC数据库。
恢复后操作:
恢复到异机上成功后,因为当前异机上默认临时表空间是原机的,需要重建异机上的默认临时表空间。如果是启用CDB的环境,同时要更改CDB$ROOT,PDB等各个容器数据库的默认临时表空间。
异机恢复到单机
Windows和Linux只有恢复端的操作系统不一致,AnyBackup Server的操作步骤一样。故具体的恢复流程均可参考下述恢复步骤。
-
恢复参数文件。新建恢复任务,选择恢复参数文件到单机环境,详情见参数文件恢复步骤。
-
修改单机自身参数文件中的控制文件名。RAC恢复到单机的参数文件,如下图所示,复制该参数文件中的控制文件名,将单机原参数文件中控制文件名替换为该控制文件名。
Oracle单机修改后的参数文件,如下图:
-
根据修改后的参数文件创建spfile启动Oracle实例到STARTED,如下图:
-
发起实例恢复,异机恢复到单机与实例恢复相同,详情参照实例恢复步骤。
-
恢复目的地:默认为请选择客户端,此处选择要恢复到的单机客户端,Linux环境选择客户端后需设置用户名称;数据文件可设置统一重定向路径和分别重定向路径,Linux环境恢复时,重定向的路径需要oracle用户具有读写权限才能恢复成功。
-
恢复为单机/RAC:选择恢复为单机。
-
恢复控制文件:若没有恢复过控制文件到单机,则此处控制文件必须置为ON。
-
恢复后使用数据库联机:此处需将恢复后使数据库联机选项置为OFF。若开启恢复后使数据库联机选项,恢复结果可能会失败,此时数据已经恢复完成,可通过手动执行下面步骤6到10,完成后续恢复后处理。建议不启用恢复后使数据库联机选项。
-
通道数:可根据需要启用并按照通道数配置说明设置通道数。
-
-
在新建恢复任务选项均设置完成后,点击完成按钮即可开始恢复。
控制台上恢复成功后,需要手动执行如下步骤6到10,将单机数据库启动到正常可用状态。
-
修改在线日志文件路径。重命名在线日志文件,步骤如下:
-
查询RAC恢复到单机后,单机中的在线日志文件名,命令如下:
select * from v$logfile;
-
根据查询到的文件名,修改在线日志文件,命令如下:
alter database rename file '+DATA/eisoo/onlinelog/ group_1.261.923129861' to '/rac-data/redo1.log';
alter database rename file '+DATA/eisoo/onlinelog/ group_2.262.923129861' to '/rac-data/redo2.log';
逐个重命名单机中的在线日志文件名:
注意有些数据库版本,在执行完一条重命名日志文件操作后,可能出现如下报错:
此重命名操作是生效的,只需退出该SQL*Plus,重新登录数据库,将所有在线日志重命名之后,可通过
select * from v$logfile
查询,是否所有重命名操作已经完成。
-
-
若RAC备份时启用BCT,则在恢复到单机后,需要禁用BCT:
alter database disable block change tracking;
或者将bct文件重命名到单机上其他路径。 -
使Oracle数据库联机。执行
alter database open resetlogs;
并检查Oracle数据库实例是否是open状态,命令:select instance_name, status from v$instance
。 -
联机后可以根据需要删除不需要的undo和redo,禁用不需要的线程,如下图:
-
重建单机上的临时表空间。即,先创建临时表空间,再将新建的临时表空间设置为默认临时表空间,最后删除从RAC恢复过来的临时表空间。如果是启用了CDB特性的环境,则需要重建单机上每个容器数据库的默认临时表空间。
注意:若浏览恢复完成后,上述步骤执行完
alter database open resetlogs
无法启动数据库,提示缺少某些归档,此时,需要继续高级恢复归档日志至单机。