[oracle@ASM ~]$ echo $ORACLE_SID
+ASM
[oracle@ASM ~]$ sqlplus /nolog
SQL> conn / as sysdba
Connected to an idle instance.
SQL> startup
ASM instance started
Total System Global Area 79691776 bytes
Fixed Size 1217812 bytes、
Variable Size 53308140 bytes
ASM Cache 25165824 bytes
ASM diskgroups mounted
二、修改目标数据库(TOASM)的SPFILE
SQL> ALTER SYSTEM SET CONTROL_FILES='+DGROUP1' SCOPE=SPFILE;
System altered.
SQL> ALTER SYSTEM SET DB_CREATE_FILE_DEST='+DGROUP1' SCOPE=SPFILE;
System altered.
三、关闭目标数据库
SQL> SHUTDOWN IMMEDIATE
Database closed.
Database dismounted.
ORACLE instance shut down.
四、通过RMAN连接到目标数据库,并启动到NOMOUNT状态
[oracle@ASM admin]$ rman target /
RMAN> startup nomount
五、还原控制文件到ASM磁盘组,并将数据库启动到MOUNT状态
RMAN> RESTORE CONTROLFILE FROM '/u01/oradata/TOASM/control01.ctl';
RMAN> ALTER DATABASE MOUNT;
六、利用RMAN复制数据文件到ASM磁盘组
RMAN > BACKUP AS COPY DATABASE FORMAT '+DGROUP1';
七、利用RMAN的SWITCH 命令修改控制文件内数据文件的指针,使其指向新位置。
RMAN> SWITCH DATABASE TO COPY;
RMAN> RECOVER DATABASE;、
八、打开数据库
RMAN> ALTER DATABASE OPEN;
九、迁移临时文件
由于临时文件不会被迁移,所以我们只需要删除原来的增加新的就可以。
SQL> SELECT NAME FROM V$TEMPFILE;
NAME
--------------------------------------------------
/u01/oradata/TOASM/temp01.dbf
SQL> ALTER TABLESPACE TEMP ADD TEMPFILE '+DGROUP1';
Tablespace altered.
SQL> ALTER TABLESPACE TEMP DROP TEMPFILE '/u01/oradata/TOASM/temp01.dbf';
Tablespace altered.
SQL> SELECT NAME FROM V$TEMPFILE;
NAME
--------------------------------------------------
+DGROUP1/toasm/tempfile/temp.263.683428909
十、增加新的ONLINE REDOLOGS 到ASM
SQL> ALTER DATABASE ADD LOGFILE '+DGROUP1' SIZE 10M;
Database altered.
SQL> ALTER DATABASE ADD LOGFILE '+DGROUP1' SIZE 10M;
Database altered.
SQL> ALTER DATABASE ADD LOGFILE '+DGROUP1' SIZE 10M;
Database altered.
SQL> ALTER SYSTEM SWITCH LOGFILE;
System altered.
SQL> ALTER SYSTEM SWITCH LOGFILE;
SQL> ALTER SYSTEM CHECKPOINT;
System altered.
SQL> ALTER DATABASE DROP LOGFILE GROUP 2;
Database altered.
SQL>ALTER DATABASE DROP LOGFILE GROUP 3;
Database altered.
十一、最后删除原来的数据库文件
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22034023/viewspace-673236/ ,如需转载,请注明出处,否则将追究法律责任。