|
不同于以往的版本,在Oracle数据库12c R1版本中对数据文件的迁移或重命名不再需要太多繁琐的步骤,即把表空间置为只读模式,接下来是对数据文件进行离线操作。在12c R1中,可以使用ALTER DATABASE MOVE DATAFILE这样的SQL语句对数据文件进行在线重命名和移动。而当此数据文件正在传输时,终端用户可以执行查询,DML以及DDL方面的任务。另外,数据文件可以在存储设备间迁移,如从非ASM迁移至ASM,反之亦然。
下面是一个简单的案例:
SQL> select file_name from dba_data_files;
FILE_NAME -------------------------------------------------------------------------------- /oracle/oradata/orcl12c/system01.dbf /oracle/oradata/orcl12c/sysaux01.dbf /oracle/oradata/orcl12c/undotbs01.dbf /oracle/oradata/orcl12c/users01.dbf
SQL> !ls /oracle/oradata/orcl12c/u*
/oracle/oradata/orcl12c/undotbs01.dbf /oracle/oradata/orcl12c/users01.dbf
SQL> !ls /home/oracle
SQL> alter tablespace users read only;
Tablespace altered.
SQL> alter database move datafile '/oracle/oradata/orcl12c/users01.dbf' to '/home/oracle/users01.dbf';
Database altered.
SQL> select file_name from dba_data_files;
FILE_NAME -------------------------------------------------------------------------------- /oracle/oradata/orcl12c/system01.dbf /oracle/oradata/orcl12c/sysaux01.dbf /oracle/oradata/orcl12c/undotbs01.dbf /home/oracle/users01.dbf
SQL> !ls /oracle/oradata/orcl12c/u*
/oracle/oradata/orcl12c/undotbs01.dbf
SQL> !ls /home/oracle
users01.dbf
SQL> alter tablespace users read write;
Tablespace altered. |