做到这里 ,费了一番功夫,对一些步骤不了解,第一次迁移时 失败!(怪自己没有仔细阅读文档!)
步入正题:迁移数据库使用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;