数据文件迁移至其他磁盘组

来源:这里教程网 时间:2026-03-03 16:18:20 作者:

有的时候我们需要迁移ASM下的数据文件到其他ASM磁盘组,前几天刚迁移了3T左右的数据,个人认为纯属体力工作,现在把步骤记录下来,以后有这样的工作直接复制粘贴就好了。 我的方法是利用rman的copy命令,所以必须得在归档方式下进行,    以下为具体实施步骤: --先检查下备份信息 list datafilecopy all; crosscheck copy; delete expired copy; --确认要迁移的数据文件 col name for a60 select file#,name,status,bytes/1024/1024 sizeMB from v$datafile;  --对于普通数据文件直接在RMAN命令行下执行 (对于UNDO数据文件,要注意offline undo datafiles 需要在两个节点分别进行,并且最好在sqlplus环境下一步一步执行,因为offline和recover的时候会报错,这时退出重进就好了) sql "alter database datafile 5 offline";  copy datafile 5 to '+DATA2/';   switch datafile 5 to copy;   recover datafile 5;   sql "alter database datafile 5 online";  delete noprompt datafilecopy '+DATA/tcendba/datafile/undotbs2.355.855996443';  --对于SYSTEM、SYSAUX表空间就需要在mount状态下操作了,针对datafile shutdown immediate; startup mount; copy datafile 2 to '+DATA2/'; switch datafile 2 to copy; recover database; sql "alter database open"; delete datafilecopy '+DATA/bwc/datafile/sysaux.2430.886960935'; --   对于SYSTEM、SYSAUX表空间的第二种方法   ,针对tablespace backup as copy tablespace system format '+DATA2/'; backup as copy tablespace sysaux format '+DATA2/'; shutdown immediate; startup mount; switch tablespace system to copy; switch tablespace sysaux to copy; recover database; sql "alter database open"; delete noprompt datafilecopy '+DATA/tcendba/datafile/system.336.855996319'; delete noprompt datafilecopy '+DATA/tcendba/datafile/sysaux.344.855996319'; --对于TMEP表空间,新建一个temp文件,之后再删除老的temp文件就可以了 select file_id,file_name,tablespace_name,bytes/1024/1024 sizeMB,status from dba_temp_files; alter tablespace temp add tempfile '+DATA2/' size 32000m; autoextend on maxsize 2g; alter database tempfile '+DATA/tcendbd/tempfile/temp.470.856022841' offline; alter tablespace temp drop tempfile '+DATA/tcendba/tempfile/temp.356.855996395';

相关推荐