RAC
环境介绍:源库为RAC环境,目标库为RAC环境,通过rman进行异机迁移及追加归档的方式实现数据迁移。减少停机时间。
在RAC任一节点上(建议选择CPU占用少的节点),使用Oracle用户设置源数据库的ORACLE_SID,并使用数据库的rman用户登录RMAN
在rman中执行备份脚本
备份没有报错就说明备份成功了。
脚本说明:脚本中的红色部分,可结合具体业务情况修改retention policy:备份保留时长,根据业务迁移的时间规划,设备保留多少天,这里设置保留50天controlfile autobackup:是否自动备份控制文件,及控制文件备份的路径和备份集的文件名,建议打开控制文件自动备份,备份路径根据实际业务修改Allocate channel:根据源数据库服务器的性能分派合理的通道,比如有8核的CPU,比如空闲CPU的60%。Backup incremental level 0:首次备份必须是Level 0备份集的路径:数据库和归档日志备份集的路径可根据实际业务调整
可选项:压缩备份集
可在backup后加上as compressed backupset,对备份集进行压缩:
说明:启用备份集的压缩,CPU的占用率较高,一般2个通道大约占用70%的CPU(实验室测试数据),过高的CPU占用率会影响数据库的性能,可能导致数据库挂起,建议在业务空间时间使用。压缩率为7:1,即700G的数据库,备份后大约为100G,以性能及时间换空间,若网络传输不是数据库迁移的瓶颈,建议不压缩。Oracle10g备份集压缩bug比较多,不建议使用。oracle11g备份集压缩比较成熟,必要时可考虑使用。
创建备份集目录
备份集建议存储在共享存储,各节点都可以访问,若存储在任一节点的本地,则后续只能在该节点备份。
备份路径规划:
Backup Level
Backup Path
Level 0
/home/oracle/backup/L0/
Arch备份
/home/oracle/backup/arch
创建备份文件目录,并赋予权限:
Oracle用户创建
# mkdir -p /home/oracle/backup/L0/
# mkdir -p /home/oracle/backup/arch
通过scp命令将源端的所有备份文件传输到目标端服务器相应的备份目录下。
oracle@rac01:/home/oracle/backup>scp -r L0
oracle@192.168.100.113:/home/oracle/backup/
在目标端的节点1上,以Oracle用户操作
启动数据库到nomount状态
恢复pfile文件
源数据库查看spfile备份信息
关闭数据库
RMAN> shutdown immediate
在目标数据库RAC的节点1上,以Oracle用户操作
打开pfile文件
内存参数
根据目标数据库实际的物理内存调整
创建目录
*.audit_file_dest='/u01/app/oracle/admin/racdb/adump'
在RAC的所有节点上,创建目录:
/u01/app/oracle/admin/racdb/adump
Oracle用户创建审计目录
# mkdir -p /u01/app/oracle/admin/racdb/adump
数据文件磁盘组
*.db_create_file_dest='+DATA'
db_create_file_dest指定了数据文件所在的磁盘组+DATA,恢复前确保+DATA磁盘组已创建或修改为正确的磁盘组名。
FRA
*.db_recovery_file_dest='+ARCH'
FRA磁盘组,恢复前确保+FRA磁盘组已创建或修改为正确的磁盘组名
*.db_recovery_file_dest_size=4193255424
ARCH大小,请确保目标服务器有至少4193255424的大小或根据目标服务器+ARCH的磁盘组大小修改
db_recovery_file_dest_size参数值
在grid账号下,asmcmd指令集内创建’+DATA/racdb/controlfile’目录,如果启用了OMF这步可以不做。本次采用OMF管理不需要创建。
在目标数据库RAC的节点1上,以Oracle用户操作
启动数据库到nomount
设置DBID
RMAN> set dbid 1101198979;
此dbid号从源端查询而来
Sql>select dbid from v$database;
指定备份控制文件路径和文件名,恢复控制文件
在目标数据库RAC的节点1上,以Oracle用户操作
修改pfile中控制文件信息
编辑$ORACLE_HOME/dbs/下的pfile文件initracdb1.ora,其中racdb1为节点1的ORACLE SID,修改*.control_files参数的控制文件名,控制文件的路径和名称参考控制文件恢复的结果。
启动数据库到mount状态
创建spfile文件到ASM
在ASM中查看生成的spfile文件
修改参数文件指向spfile文件位置
关闭数据库
当前的数据库是以pfile文件启动,恢复前关闭数据库以spfile文件启动。
SQL> shutdown immediate;
在目标数据库RAC的节点1上,以Oracle用户操作
修改还原数据库脚本中的set newname信息:磁盘组、路径及文件名.
此处如果为omf管理且磁盘组名称一致的不需要指定文件的名称及set newname命令
查看需要变更路径的数据文件
select 'set newname for datafile '||file#||' to '''||name||''';' from v$datafile;
查看需要重建的tempfile
select 'alter database tempfile '''||file_name||''' offline ' from dba_temp_files;
查看需要drop的temp表空间
select 'alter database tempfile '''||file_name||''' drop ' from dba_temp_files;
RMAN>场景1修改文件路径
场景2不修改路径
恢复成功
由于未复制online redo log,提示介质恢复正在请求未知的线程 1序列43的scn 1428035,忽略该错误。
若源数据库打开了块跟踪,在恢复时Oracle会提示相关错误信息,建议禁用块跟踪,在目标数据库RAC的节点1上,以Oracle用户操作
在目标数据库RAC的节点1上,以Oracle用户操作使用readonly打开数据库 查看数据表情况
查看新增归档文件
备份归档文件
List backup of archivelog all;
下一篇:ORACLE RAC中连接ScanIP报错ORA