ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 利用RMAN将数据库从文件系统迁移到ASM

利用RMAN将数据库从文件系统迁移到ASM

原创 Linux操作系统 作者:wei-xh 时间:2010-09-11 13:33:27 0 删除 编辑
一、打开ASM实例

  [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/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle ACE组成员,DBGeeK用户组发起人。曾在DTCC、ORACLE技术嘉年华、Gdevops等公开场合做过数据库技术专题分享,2017年应Oracle邀请在世界最大的数据库会议OOW上做技术分享。组织翻译了《拨云见日,解密Oracle ASM内核》一书。

注册时间:2009-07-04

  • 博文量
    422
  • 访问量
    2425359