将数据文件从asm移到普通文件系统
2016-08-15 10:14 abce 阅读(441) 评论(0) 编辑 收藏 举报数据库可以关闭的场景:
1.关闭并重新mount数据库
$ sqlplus '/as sysdba' SQL> shutdown immediate; SQL> startup mount;
2.确保文件系统的空间大小够用
SQL> select file#,name,bytes/1024/1024 file_size_mb from v$datafile; FILE# NAME FILE_SIZE_MB ---------- ------------------------------------------------------------ ------------ 1 +DATA/test/datafile/system.285.914350599 790 2 +DATA/test/datafile/sysaux.276.914350599 2140 3 +DATA/test/datafile/undotbs1.280.914350599 130 4 +DATA/test/datafile/users.284.914350599 2140
3.登录rman并copy数据文件
$ rman target / RMAN> copy datafile 4 to '/oradata/test/users01.dbf';
4.更新控制文件中被移动文件的信息
$ sqlplus '/as sysdba' SQL> alter database rename file '+DATA/test/datafile/users.284.914350599' to '/oradata/test/users01.dbf';
5.查看结果
SQL> select file#,name from v$datafile;
6.打开数据库
数据库处于运行状态:
如果数据库处于运行状态,要想移动数据文件,必须要将文件offline
1.查看包含该文件的表空间,并将数据文件offline
RMAN> report schema; SQL> alter database datafile 4 offline;
2.确保文件系统的空间大小够用
SQL> select file#,name,bytes/1024/1024 file_size_mb from v$datafile; FILE# NAME FILE_SIZE_MB ---------- ------------------------------------------------------------ ------------ 1 +DATA/test/datafile/system.285.914350599 790 2 +DATA/test/datafile/sysaux.276.914350599 2140 3 +DATA/test/datafile/undotbs1.280.914350599 130 4 +DATA/test/datafile/users.284.914350599 2140
3.登录rman并copy数据文件
$ rman target / RMAN> copy datafile 4 to '/oradata/test/users01.dbf';
4.更新控制文件中被移动文件的信息
$ sqlplus '/as sysdba' SQL> alter database rename file '+DATA/test/datafile/users.284.914350599' to '/oradata/test/users01.dbf';
5.查看结果
SQL> select file#,name from v$datafile;
6.将数据文件online
(1) 如果该数据文件所在的表空间是offline的,直接将数据文件online
SQL> alter database datafile 4 online;
(2) 如果该文件所在表空间是online的
SQL> recover automatic datafile 4; SQL> alter database datafile 4 online; 或者使用rman RMAN> recover datafile 4; RMAN> sql "alter database datafile 4 online";