且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

【ASM学习】普通数据库向ASM实例的迁移(一)

更新时间:2022-08-12 16:00:47

做到这里 ,费了一番功夫,对一些步骤不了解,第一次迁移时 失败!(怪自己没有仔细阅读文档!)
步入正题:迁移数据库使用rman 来做(我在做的过程中没有记录日志,只是截了几张图,还是出错的,不过只要写对rman 的命令就可以了!)
第一步:修改控制文件的位置,

SQL>set sqlprompt "ORCL>"
ORCL>conn [email=system/yang@orcl]system/yang[at]orcl[/email] as sysdba
已连接。
ORCL>show parameter control
NAME                                 TYPE        VALUE                          
------------------------------------ ----------- ------------------------------
control_file_record_keep_time        integer     7                              
control_files                        string      F:\ORACL\ORADATA\ORCL\CONTROL0
                                                 1.CTL, F:\ORACL\ORADATA\ORCL\C
                                                 ONTROL02.CTL, F:\ORACL\ORADATA
                                                 \ORCL\CONTROL03.CTL            
control_management_pack_access       string      DIAGNOSTIC+TUNING              
ORCL>alter database backup controlfile to F:\ORACL\ORADATA\ORCL\CONTROL.CTL';

ORCL> alter system set control_files='+SYS_DATA' scope=spfile;


ORCL> shutdown immediate;

第二步:使用rman 做主要工作,前提是 有被迁移数据的全备份.
RMAN> startup nomount;                                                  
恢复刚才备份的控制文件,由于我们设置了初始化参数control_files,将其指向了磁盘组SYS_DATA,因此恢复出来的控制文件会存放在SYS_DATA 里。
RMAN> restore controlfile from  'F:\ORACL\ORADATA\ORCL\CONTROL.CTL';  
          .
          .
          .
  省略了输出日志!

  将数据库mount起来。
RMAN> alter database mount;                                            

通过拷贝的方式,将所有的数据文件全都迁移到ASM磁盘组 SYS_DATA 里。
RMAN> backup as copy database format '+SYS_DATA;
始恢复数据库。
RMAN> recover database;

.....
......
.省略产生的日志
.....
......
......


切换数据库到刚才备份到ASM的备份上
RMAN> switch database to copy;