Oracle表空间数据文件移动的方法

前端技术 2023/09/01 Oracle

实现把用户表空间中的数据文件从某一个路径移动到另一个路径

一、针对可offline的非系统表空间

本例移动oracle的案例表空间(EXAMPLE表空间),将其从

D:\\ORADATA\\ORCL\\ 移动到 D:\\ORACLE\\ORADATA\\

1.查看要改变的表空间的数据文件信息

SQL> select tablespace_name,file_name,online_status
 from dba_data_files
 where tablespace_name=\'EXAMPLE\';

TABLESPACE_NAME FILE_NAME     ONLINE_
--------------- ----------------------------------- -------
EXAMPLE  D:\\ORADATA\\ORCL\\EXAMPLE01.DBF  ONLINE

2.将目标表空间设置为脱机状态

SQL> alter tablespace EXAMPLE offline;

3.再次查看目标表空间的状态,确保其已经是脱机状态

SQL> select tablespace_name,file_name,online_status
 from dba_data_files
 where tablespace_name=\'EXAMPLE\';

TABLESPACE_NAME FILE_NAME     ONLINE_
--------------- ----------------------------------- -------
EXAMPLE  D:\\ORACLE\\ORADATA\\EXAMPLE01.DBF OFFLINE

4.将原来的数据文件移动(或复制)到新的路径

SQL> host move D:\\ORADATA\\ORCL\\EXAMPLE01.DBF D:\\ORACLE\\ORADATA\\

5.修改该表空间的数据文件路径

SQL> alter tablespace EXAMPLE 
 rename datafile \'D:\\ORADATA\\ORCL\\EXAMPLE01.DBF\'
 to \'D:\\ORACLE\\ORADATA\\EXAMPLE01.DBF\';

6.查看该表空间修改后的信息,确保信息无误

SQL> select tablespace_name,file_name,online_status
 from dba_data_files
 where tablespace_name=\'EXAMPLE\';

TABLESPACE_NAME FILE_NAME     ONLINE_
--------------- ----------------------------------- -------
EXAMPLE  D:\\ORACLE\\ORADATA\\EXAMPLE01.DBF OFFLINE

7.修改该表空间为在线状态

SQL> alter tablespace EXAMPLE online;

8.查看该表空间最后结果

SQL> select tablespace_name,file_name,online_status
 from dba_data_files
 where tablespace_name=\'EXAMPLE\';
TABLESPACE_NAME FILE_NAME     ONLINE_
--------------- ----------------------------------- -------
EXAMPLE  D:\\ORACLE\\ORADATA\\EXAMPLE01.DBF ONLINE

备注:本方法对SYSAUX、USERS表空间也适用

二、系统表空间移动

该方法需要数据库处于mount状态

1.关闭运行中的数据库

SQL> shutdown immediate

2.启动数据库到mount状态

SQL> startup mount

3.移动系统表空间(SYSTEM表空间)的数据文件

SQL> host move D:\\ORADATA\\ORCL\\SYSTEM01.DBF D:\\ORACLE\\ORADATA\\

4.修改该表空间的数据文件路径

SQL> alter database rename file \'D:\\ORADATA\\ORCL\\SYSTEM01.DBF\' to \'D:\\ORACLE\\ORA
DATA\\SYSTEM01.DBF\';

5.启动数据库,打开实例

SQL> alter database open;

6.查看表空间修改结果

SQL> select tablespace_name,file_name,online_status from dba_data_files where ta
blespace_name=\'SYSTEM\';

TABLESPACE_NAME FILE_NAME     ONLINE_
--------------- ----------------------------------- -------
SYSTEM  D:\\ORACLE\\ORADATA\\SYSTEM01.DBF SYSTEM

备注:本方法对UNDOTBS1、TEMP表空间也适用。

以上内容是小编给大家分享的Oracle表空间数据文件移动的方法,希望大家喜欢。

本文地址:https://www.stayed.cn/item/1825

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。