oracle 复制组删除,利用copy在ASM磁盘组之间迁移

从+DISK迁移到+DG1磁盘组

一.复制数据库文件到ASM磁盘组

1.启动到mount状态(启动第一节点数据库到mount,其它节点数据库实例关闭)

SQL> startup mount;

2.利用copy备份数据库

rman>backup as copy database format '+DG1'

3.利用rman工具指定到新的路径

RMAN> switch database to copy;

4.更新控制文件的数据文件路径

RMAN>run{

switch datafile all;

}

5.recover database并打开数据库

run

{

recover database;

alter database open;

}

6.添加新的临时文件到新的磁盘组,删除老的临时文件

SQL> alter tablespace temp add tempfile '+DG1' size 10m autoextend on;

SQL> select file#, TS#,name from v$tempfile;

SQL> ALTER DATABASE TEMPFILE  '+DATA/orcl/tempfile/temp.854.822754095' DROP INCLUDING DATAFILES;

7.重建在线redo到新的磁盘组和删除旧的在线redo

SQL>select GROUP#, THREAD#,STATUS,members from v$log;

更改第一节点的联机日志文件组

sql>alter database add logfile group 5 +dg1 size 50m;

sql>alter database add logfile group 6 +dg1 size 50m;

sql>alter system switch logfile;

sql>alter system switch logfile;

sql>alter system checkpoint;

sql>alter database drop logfile group 1;

sql>alter database drop logfile group 2;

更改第二节点的联机日志文件组(启动第二节点数据库)

SQL> alter database add logfile thread 2 group 7 '+DG1' size 50m;

SQL> alter database add logfile thread 2 group 8 '+DG1' size 50m;

sql>alter system switch logfile;

sql>alter system switch logfile;

sql>alter system checkpoint;

SQL> alter database drop logfile group 3;

SQL> alter database drop logfile group 4;

二,修改控制文件的路径

1.修改控制文件的路径

sql>alter system set control_files='+dg1' scope=spfile;

2.备份控制文件

$rman target /

rman>backup current controlfile format '/home/oracle/controlfile.ctl';

修改新的控制文件的路径

alter system set control_files='+DG1/mydb/controlfile/current.265.881774751' scope=spfile;

3.启动数据库到NOMOUNT

rman>shutdown immediate

rman>startup nomount;

4.恢复控制文件

rman>restore controlfile from '/home/oracle/controlfile.ctl';

5.修改新的控制文件的路径

alter system set control_files='+DG1/mydb/controlfile/current.265.881774751' scope=spfile;

备注:需要修改spfile文件中控制文件恢复新的路径,要不然数据库启动的时候会出现找不到控制文件的问题

三.将spfile指定到新的asm组

1.创建创建pfile

create pfile='/home/oracle/init.ora' from spfile;

修改以下参数

db_create_file_dest='+DISK' 修改为db_create_file_dest='+DG1'

log_archive_dest_1='LOCATION=+DISK' 修改为log_archive_dest_1='LOCATION=+DG1'

2.修改init.ora,每一个节点都需要修改

[oracle@db1 ~]$ cd $ORACLE_HOME/dbs

[oracle@db1 dbs]$ vi initmydb1.ora

SPFILE='+DG1/mydb/spfilemydb.ora'

3.创建spfile文件

create SPFILE='+DG1/mydb/spfilemydb.ora' from  pfile='/home/oracle/init.ora'

四.启动数据库

oracle@db1 dbs]$ rman target /

RMAN> recover database;   --------------》因为控制文件是通过rman恢复回来的,需要recover database

RMAN> alter database open resetlogs;

SQL> select * from v$dbfile

FILE# NAME

---------- --------------------------------------------------

5 +DG1/mydb/datafile/undotbs2.258.881772827

4 +DG1/mydb/datafile/users.256.881772841

3 +DG1/mydb/datafile/undotbs1.261.881772821

2 +DG1/mydb/datafile/sysaux.259.881772773

1 +DG1/mydb/datafile/system.260.881772719

SQL> select member from v$logfile;

MEMBER

--------------------------------------------------------------------------------

+DG1/mydb/onlinelog/group_3.267.881774255

+DG1/mydb/onlinelog/group_4.268.881774353

+DISK/mydb/onlinelog/group_2.267.881719891

+DG1/mydb/onlinelog/group_1.266.881774153

SQL> select name from v$tempfile;

NAME

--------------------------------------------------

+DG1/mydb/tempfile/temp.264.881773741

整个迁移过程完成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值