Oracle 11g 迁移数据文件

一、基础环境

操作系统:Windows 或 Linux

数据库版本:Oracle Database 11g R2

二、解决问题

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。