场景一:数据库可以关闭
1.关闭并mount数据库
$ sqlplus '/as sysdba'
SQL> shutdown immediate
SQL> startup mount;
2.确保ASM系统的空间大小够用
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 '+test';
4.更新控制文件中的信息
$ rman target /
RMAN> switch datafile 4 to copy;
5.查看结果
SQL> select file#,name from v$datafile;
6.打开数据库
场景二:数据库不可以关闭
1.将表空间offline
SQL> select tablespace_name, file_name from dba_data_files where file_id=4; TABLESPACE_NAME FILE_NAME
------------------ ------------------------------
USERS /oradata/test/users01.dbf SQL> alter tablespace USERS offline;
2.确保ASM系统的空间大小够用
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 '+test';
4.更新控制文件中的信息
$ rman target /
RMAN> switch datafile 4 to copy;
5.查看结果
SQL> select file#,name from v$datafile;
6.将表空间online
SQL> alter tablespace users online;