对于oracle数据库表空间数据文件:
查出所有的数据文件名称以及路径:
select * from dba_data_files;
查出所有的数据文件名称以及路径:
SELECT * FROM DBA_DATA_FILES;
ORACLE 11G数据文件修改迁移方式:
首先需要将数据文件进行离线OFFLINE:
SQL> ALTER DATABASE DATAFILE '/U01/ORACLE/ORCL/EMP01.DBF' OFFLINE;
然后再数据库中将其迁移至新的路径或者名称修改:
SQL> ! CP /U01/ORACLE/ORCL/EMP01.DBF /U01/HOME/ORACLE/ORCL/EMP01.DBF
再就是在数据库中修改:
SQL>ALTER DATABASE RENAME FILE '/U01/ORACLE/ORCL/EMP01.DBF' TO '/U01/HOME/ORACLE/ORCL/EMP01.DBF';
再就是把之前的数据文件进行在线设置:
SQL>ALTER DATABASE DATAFILE '/U01/HOME/ORACLE/ORCL/EMP01.DBF' ONLINE;
如果出现需要恢复的报错,需要执行一下命令:
SQL> RECOVER DATAFILE '/U01/HOME/ORACLE/ORCL/EMP01.DBF';
查询状态:
SQL>SELECT TS#,FILE#,NAME,STATUS FROM V$DATAFILE
ORACLE 12C及以后数据文件修改迁移方式:
在Oracle数据库12c及以后版本数据库对数据文件的迁移或修改名不再需要太多繁琐的步骤。
在据库12c及以后版本数据库,可以使用ALTER DATABASE MOVE DATAFILE这样的SQL语句对数据文件进行
在线修改数据文件名称和移动数据文件。
重命名数据文件:
SQL> ALTER DATABASE MOVE DATAFILE '/U01/ORACLE/ORCL/EMP01.DBF' TO '/U01/ORACLE/ORCL/EMP02.DBF';
迁移:
SQL> ALTER DATABASE MOVE DATAFILE '/U01/ORACLE/ORCL/EMP01.DBF' TO '/U01/HOME/ORACLE/ORCL/EMP01.DBF';
从非ASM迁移数据文件至ASM:
SQL> ALTER DATABASE MOVE DATAFILE '/U01/ORACLE/ORCL/EMP01.DBF' TO '+DATA';
将数据文件从一个ASM磁盘群组迁移至另一个ASM磁盘群组:
SQL> ALTER DATABASE MOVE DATAFILE '+DATA/U01/ORACLE/ORCL/EMP01.DBF' TO '+DATAFILE';
在数据文件已存在于新路径的情况下,以相同的命名将其覆盖:
SQL> ALTER DATABASE MOVE DATAFILE '/U01/ORACLE/ORCL/EMP01.DBF' TO '/U01/HOME/ORACLE/ORCL/EMP01.DBF' REUSE;
复制文件到一个新路径,同时在原路径下保留其拷贝:
SQL> ALTER DATABASE MOVE DATAFILE '/U01/ORACLE/ORCL/EMP01.DBF' TO '/U01/HOME/ORACLE/ORCL/EMP01.DBF' KEEP;




