在归档模式下有时可能需要将一些数据从一个磁盘组迁移到另外个磁盘组。这种情况下我们可以使用命令“BACKUP AS COPY”将数据文件移到新磁盘组。然后通过“SET NEWNAME”和“SWITCH”命令来更改控制文件里面该数据文件的文件名。
archivelog 模式:
将数据文件“+DATA/orcl/datafile/users.261.689589837”从磁盘组DATA迁移到USERDATA。
1. 使用RMAN 连接到目标数据库
$ rman
RMAN> CONNECT TARGET SYS@orcl
target database Password: XXXXXXXXX
connected to target database: ORCL (DBID=1217369048)
2. 查看数据库里面的数据文件
RMAN> REPORT SCHEMA;
Report of database schema for database with db_unique_name ORCL
List of Permanent Datafiles
===========================
File Size(MB) Tablespace RB segs Datafile Name
---- -------- -------------- ------- ------------------------
1 740 SYSTEM *** +DATA/orcl/datafile/system.258.689589737
2 570 SYSAUX *** +DATA/orcl/datafile/sysaux.259.689589785
3 55 UNDOTBS1 *** +DATA/orcl/datafile/undotbs1.260.689589831
4 5 USERS *** +DATA/orcl/datafile/users.261.689589837
List of Temporary Files
=======================
File Size(MB) Tablespace Maxsize(MB) Tempfile Name
---- -------- -------------- ----------- --------------------
1 20 TEMP 32767 +DATA/orcl/tempfile/temp.262.689589851
3. 备份数据到新磁盘组USERDATA
RMAN> BACKUP AS COPY
DATAFILE "+DATA/orcl/datafile/users.261.689589837"
FORMAT "+USERDATA";
也可以用文件号来指定相应的数据文件,如:
BACKUP AS COPY
DATAFILE 4
FORMAT "+USERDATA";
4. 将要迁移的数据文件OFFLINE
RMAN> SQL "ALTER DATABASE DATAFILE
''+DATA/orcl/datafile/users.261.689589837'' OFFLINE";
5. 修改控制文件将数据文件指向新磁盘组的备份
RMAN> SWITCH DATAFILE "+DATA/orcl/datafile/users.261.689589837" TO COPY;
6. 恢复新数据文件
RMAN> RECOVER DATAFILE "+USERDATA/orcl/datafile/users.256.689682663";
7. 将新数据文件online
RMAN> SQL "ALTER DATABASE DATAFILE
“+USERDATA/orcl/datafile/users.256.689682663” ONLINE";
8. 将旧数据文件删除
RMAN> DELETE DATAFILECOPY "+DATA/orcl/datafile/users.261.689589837";
推荐阅读:
如何修改ASM的sys密码
如何将ASM中的数据文件复制到操作系统中
Oracle 11g RAC ASM磁盘全部丢失后的恢复
Oracle 11g从入门到精通 PDF+光盘源代码
RHEL6 ASM方式安装Oracle 11g R2
Oracle 10g 手工创建ASM数据库
Ubuntu 12.04(amd64)安装完Oracle 11gR2后各种问题解决方法
如何修改Oracle 10g ASM的sys密码