数据库从其他存储系统迁移到ASM

2014-11-24 17:37:00 · 作者: · 浏览: 0

环境:


迁移涉及的磁盘组:


sys@+asm(asm.com)> create diskgroup fra external redundancy disk '/dev/asm*[n-s]';


sys@+asm(asm.com)> create diskgroup data external redundancy disk '/dev/asm*[b-m]';


迁移的数据库名称:szpms



一. 准备工作


1. 兼容性参数确认COMPATIBLE


如果数据库初始化参数COMPATIBLE少于11.0.0,那么需要将所有的只读


表空间设置为读写表空间


SQL> show parameter compatible



NAME TYPE VALUE


------------------------------------ ----------- ------------------------------


compatible string 11.2.0.4.0



2. 如果数据库是物理备库,停止日志应用恢复


逻辑备库是主数据库的一份copy,作为容灾用的。通过下面命令停止日志应用恢复。


SQL> ALTER DATABASE RECOVERY MANAGED STANDBY DATABASE CANCEL;


保持这个终端窗口开启状态。



3. 复制spfile或者pfile到临时存储位置


$ cp spfileszpms.ora orig_spfileszpms.ora



4. 打开一个新的窗口,使用RMAN连接到目标数据库


$ rlwrap rman target /



5. 备份数据文件到ASM磁盘组


使用0级增量备份。0级备份与全库备份一样都备份了数据库里面所有被使用过的数据块,但是全库备份不能作为增量备份的起点。


备份脚本:


run


{


allocate channel dev1 device type disk;


allocate channel dev2 device type disk;


backup as copy incremental level 0 database format '+data' tag 'ora_asm_migration';


}



6. 确认是否开启BCT特性(可选)


如果开启了BCT特性(block change tracking),则可以做个1级增量备份一般后续恢复数据库


{


ALLOCATE CHANNEL dev1 DEVICE TYPE DISK;


ALLOCATE CHANNEL dev2 DEVICE TYPE DISK;


ALLOCATE CHANNEL dev3 DEVICE TYPE DISK;


ALLOCATE CHANNEL dev4 DEVICE TYPE DISK;


BACKUP AS COPY


INCREMENTAL LEVEL 1


DATABASE FORAMT ‘+DATA’


TAG ‘ORA_ASM_MIGRATION’;


}



7. 如果数据库开启了归档模式,则使用下面命令归档下时下redo log


RMAN> SQL "ALTER SYSTEM ARCHIVE LOG CURRENT";



8. 如果数据库使用的spfile,则备份下spfile


RMAN> BACKUP AS BACKUPSET SPFILE;


9. 如果开启了BCT,则需要禁用下


SQL> select status, filename from v$block_change_tracking;--查询是否开启BCT特性


RMAN> SQL "ALTER DATABASE DISABLE BLOCK CHANGE TRACKING";



10. 如果flashback database开启的话,需先禁用并删除掉所有还原点


SQL> select FLASHBACK_ON from v$database;--查看是否开启了flashback database特性


RMAN> SQL "ALTER DATABASE FLASHBACK OFF";


RMAN> SQL "DROP RESTORE POINT Q106";



11. 关闭数据库(干净)


RMAN> SHUTDOWN IMMEDIATE;




推荐阅读: