数据库从文件系统迁移到ASM

今天需要把文件系统上的数据文件迁移到ASM上
文件系统上数据文件:/dev/sda /database/oradata 归档:/dev/sda /arch
新ASM存储: /dev/sdb1、/dev/sdc1、/dev/sdd1对应asm的+DG1 存放数据文件
  /dev/sde1 对应asm的+DG2 存放归档日志 /dev/sdf1 对应asm的+DG3 闪回区域

1先创建ASM磁盘 VOL1 - VOL5 对应 /dev/sdb1 - /dev/sdf1
2在ASM上创建pfile文件
3创建ASM实例密码文件
4创建磁盘组 DG1对应 VOL1-VOL3 ;DG2 对应 VOL4 ;DG3 对应 VOL5
5备份
RMAN> run {
 2> backup as copy database format '+DG1';
 3> }
 这时就把文件系统上的数据文件都备份到了ASM的磁盘组DG1里,文件会在ASM的磁盘上自动分配
6修改闪回,和数据文件参数,指定闪回,数据文件,日志文件在ASM上的位置
alter system set db_create_online_log_dest_1='+DG1' scope=both;
alter system set db_create_online_log_dest_2='+DG2' scope=both;
后面 迁移后,同一份日志文件会分别放到两个ASM磁盘组里

SQL> select member from v$logfile;
15. MEMBER
16. --------------------------------------------------------------------------------
17. +DG1/orcl/onlinelog/group_1.263.929801375
18. +DG2/orcl/onlinelog/group_1.256.929801375
19. +DG1/orcl/onlinelog/group_2.264.929801379
20. +DG2/orcl/onlinelog/group_2.257.929801379
21. +DG1/orcl/onlinelog/group_3.265.929801383
22. +DG2/orcl/onlinelog/group_3.258.929801383

7迁移redolog 只要在ASM上重建日志组 就能在指定ASM磁盘上创建新redolog
8迁移临时表空间,就是在创现有临时表空间增加数据文件,再删除原来的文件系统的数据文件
9迁移数据文件和控制文件
设置控制文件位置参数 且重启db restore controlfile from '/database/oradata/orcl/control01.ctl';
还原控制文件,然后恢复数据文件
alter database mount;
switch database to copy;
recover database并打开数据库

相关推荐