Oracle 数据库迁移数据文件

258 阅读1分钟

一、基础环境

  操作系统:Windows 或 Linux

  数据库版本:Oracle Database 11.2.0.1.0 及以上版本

二、适用场景

  1、我们在进行备份数据库或者进行复杂的操作的时候,表空间自动扩展功能开启的时候,会提示磁盘空间不足。

  2、将数据文件分散到不同的磁盘,以提高数据库的 I/O 性能。

三、操作步骤

  1、以 DBA 的身份登陆SQL Plus ;

sqlplus / as sysdba;

  2.1、查询数据文件清单:数据表空间、索引表空间使用以下语句

select name from v$datafile;

  2.2、查询数据文件清单:临时表空间使用以下语句

select file_name from dba_temp_files;

  3、正常关闭数据库。

shutdown immediate;

  4、开始移动数据文件(为了保险起见,也可使用复制命令)。

  特别说明:在SQL Plus中,先输入一个$,后面再加上操作系统的命令,可以执行操作系统的操作;数据文件的路径必须是英文双引号;在 Windows 系统中,命令和路径不区分大小写,大小写均可; 在 Linux 系统中,命令和路径是区分大小写的,因此必须使用小写。

  Windows 系统:

$move "D:\ProgramFiles\oracle\oradata\orcl\sspt01.DBF" "E:\oradata\sspt01.DBF";

  Linux 系统:

$mv "/oradata/orcl/SSPT01.DBF" "/opt/oradata/SSPT01.DBF";

  5、将数据库启动到 mount 状态。

startup mount;

  6、修改数据文件名称,数据文件路径必须使用单引号。(以下语句中的路径为 Windows 路径,可以替换成 Linux 路径)

alter database rename file 'D:\PROGRAMFILES\ORACLE\ORADATA\ORCL\SSPT01.DBF' to 'E:\ORADATA\SSPT01.DBF';

  7、打开数据库。

alter database open;

  8、查询数据库数据文件状态。

select name,status from v$datafile;

  9、查询 scott.emp 表中的数据。

select * from scott.emp;

  10、操作完成,退出 SQL Plus。