Oracle RMAN Migrate from Single none-ASM to Single ASM

环境: Linux 5.6 x86-64 + ASM(single instance) + Oracle 11.2.0.3(single instance)
--迁移前控制文件,数据文件(临时文件),日志文件,参数文件。
SQL> show parameter spfile
spfile                               string      /u01/app/oracle/product/11.2.0.3.0/db_1/dbs/spfilehdb11g.ora                                               
SQL> show parameter control_files
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_files                        string      /u01/app/oracle/oradata/hdb11g/control01.ctl, /u01/app/oracle/fast_recovery_area/hdb11g/control02.ctl
ora11gr2.sannet.net | hdb11g | /u01/app/oracle/oradata/hdb11g > ls -l
total 2140088
-rw-r----- 1 oracle dba  16785408 Aug 28 06:31 AUDIT_TS.ora
-rw-r----- 1 oracle dba   9846784 Aug 28 07:01 control01.ctl
-rw-r----- 1 oracle dba 138289152 Aug 28 06:31 example01.dbf
-rw-r----- 1 oracle dba  16785408 Aug 28 06:31 FGA_TS.ora
-rw-r----- 1 oracle dba  52429312 Aug 28 07:26 redo01.log
-rw-r----- 1 oracle dba  52429312 Aug 28 07:26 redo02.log
-rw-r----- 1 oracle dba  52429312 Aug 28 08:37 redo03.log
-rw-r----- 1 oracle dba  26222592 Aug 28 06:31 stream_ts.ora
-rw-r----- 1 oracle dba 775954432 Aug 28 06:31 sysaux01.dbf
-rw-r----- 1 oracle dba 775954432 Aug 28 06:31 system01.dbf
-rw-r----- 1 oracle dba  58728448 Aug 27 11:41 temp01.dbf
-rw-r----- 1 oracle dba  16785408 Aug 28 06:31 transport_ts2.ora
-rw-r----- 1 oracle dba  10493952 Aug 28 06:31 tsmgmt_ts1.ora
-rw-r----- 1 oracle dba  10493952 Aug 28 06:31 tsmgmt_ts2.ora
-rw-r----- 1 oracle dba  10493952 Aug 28 06:31 tsmgmt_ts3.ora
-rw-r----- 1 oracle dba  10493952 Aug 28 06:31 tsmgmt_ts4.ora
-rw-r----- 1 oracle dba  16785408 Aug 28 06:31 TS_TEST_PRIVS.DBF
-rw-r----- 1 oracle dba 131080192 Aug 28 06:31 undotbs01.dbf
-rw-r----- 1 oracle dba   1056768 Aug 28 06:31 user02.dbf
-rw-r----- 1 oracle dba   9183232 Aug 28 06:31 users01.dbf
SQL> select * from v$logfile;
    GROUP# STATUS  TYPE    MEMBER                                                       IS_
---------- ------- ------- ------------------------------------------------------------ ---
         3         ONLINE  /u01/app/oracle/oradata/hdb11g/redo03.log                    NO
         2         ONLINE  /u01/app/oracle/oradata/hdb11g/redo02.log                    NO
         1         ONLINE  /u01/app/oracle/oradata/hdb11g/redo01.log                    NO

##################################
步骤:

+ 控制文件,数据文件,临时文件迁移。
+ 在线日志迁移
+ 参数文件迁移

##################################

--数据库迁移之RMAN从文件系统至ASM
SQL> alter system set db_create_file_dest='+DATA' scope=both;
RMAN> restore controlfile to '+DATA' from '/u01/app/oracle/oradata/hdb11g/control01.ctl';
SQL> alter system set control_files='+DATA/HDB11G/CONTROLFILE/current.256.824626491' scope=spfile;
SQL> shutdown immediate;
SQL> startup mount;
RMAN> backup full database tag 'FULL' format='/u01/FULL_%d_%T_%s';
RMAN> backup current controlfile tag 'CTRL'  format '/u01/CTRL_%d_%T_%s';
RMAN> run{     
SET NEWNAME FOR DATABASE TO '+DATA';
SET NEWNAME FOR TEMPFILE 1 TO '+DATA';
RESTORE DATABASE;
SWITCH DATAFILE ALL;
SWITCH TEMPFILE ALL;

}
SQL> alter database open;

此时,控制文件,数据文件已经迁到了ASM上了,可以直接open数据库。

如果需要将redo log也放在ASM中,则需要重建redo log,在open状态下可以进行如下操作。
SQL> alter system set db_create_online_log_dest_1='+DATA' scope=both;
SQL> select * from v$log;
SQL> select * from v$logfile;
删除inactive状态的日志组,重建日志。
SQL> alter database drop logfile group 1;
SQL> alter database add logfile group 1 size 50M;
SQL> alter database drop logfile group 2;
SQL> alter database add logfile size 50M;
SQL> alter system switch logfile;
SQL> alter system checkpoint;
SQL> alter database drop logfile group 3;
SQL> alter database add logfile ('+DATA','+RECOVERY') size 50M;

如果需要将spfile也放在ASM中,如下步骤。
SQL> create pfile from spfile;
SQL> shutdown immediate;
SQL> startup nomount pfile='?/dbs/inithdb11g.ora';
SQL> create spfile='+DATA' from pfile;
ora11gr2.sannet.net | hdb11g | /u01/app/oracle/product/11.2.0.3.0/db_1/dbs > rm -rf spfilehdb11g.ora
ora11gr2.sannet.net | hdb11g | /u01/app/oracle/product/11.2.0.3.0/db_1/dbs > vi inithdb11g.ora
spfile='+DATA/HDB11G/PARAMETERFILE/spfile.276.824633307'
SQL> shutdown immediate;
SQL> startup;
SQL> show parameter pfile;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值