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

 更新时间:2015年12月26日 11:39:25   投稿:mrr  
最近接了个项目,遇到这样的问题,需要实现把用户表空间中的数据文件从某一个路径下移动到另一个路径下,实现过程说简单不简单,说复杂不复杂,下面小编给大家分享我的解决办法,对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表空间数据文件移动的方法,希望大家喜欢。

相关文章

  • Oracle 批处理自动备份bat脚本语句的步骤详解

    Oracle 批处理自动备份bat脚本语句的步骤详解

    这篇文章主要介绍了Oracle 批处理自动备份bat脚本语句的步骤详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • 使用JDBC4.0操作Oracle中BLOB类型的数据方法

    使用JDBC4.0操作Oracle中BLOB类型的数据方法

    这篇文章主要介绍了使用JDBC4.0操作Oracle中BLOB类型数据的方法,我们需要使用ojdbc6.jar包,本文介绍的非常详细,需要的朋友可以参考下
    2016-08-08
  • [Oracle] 分析AWR报告的方法介绍

    [Oracle] 分析AWR报告的方法介绍

    因为AWR报告非常长,不可能从头到尾一字不漏的去看,要有选择的去看重点部分。最好能对照的来读,即和系统正常情况下的AWR报告对比,找差异。以下就是对分析AWR报告的方法进行了介绍,需要的朋友参考下
    2013-07-07
  • oracle select执行顺序的详解

    oracle select执行顺序的详解

    本篇文章是对oracle select执行顺序进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • ORACLE中查找定位表最后DML操作的时间小结

    ORACLE中查找定位表最后DML操作的时间小结

    在Oracle数据库中,如何查找,定位一张表最后一次的DML操作的时间呢? 方式有三种,不过都有一些局限性,下面简单的解析、总结一下。感兴趣的朋友跟随小编一起看看吧
    2018-11-11
  • oracle数据库的DBMS_LOB.SUBSTR函数使用

    oracle数据库的DBMS_LOB.SUBSTR函数使用

    DBMS_LOB.SUBSTR用于从Oracle的CLOB/NCLOB等大对象中提取子字符串,参数包括LOB对象、提取长度和起始位置,下面就一起来了解一下
    2025-06-06
  • Oracle中查看正在运行的SQL进程脚本分享

    Oracle中查看正在运行的SQL进程脚本分享

    这篇文章主要介绍了Oracle中查看正在运行的SQL进程脚本分享,本文使用脚本实现了类似mysql show processlist命令的功能,需要的朋友可以参考下
    2014-10-10
  • Oracle日期时间查询方式

    Oracle日期时间查询方式

    文章介绍Oracle查询时间数据的三种方法:使用add_months查询近一个月、to_date与to_char处理日期范围,并对比两种方式的差异,帮助读者高效筛选时间区间数据
    2025-07-07
  • oracle 11g数据库安全加固注意事项

    oracle 11g数据库安全加固注意事项

    这篇文章主要介绍了oracle11g数据库安全加固须谨慎 ,需要的朋友可以参考下
    2015-08-08
  • 详解Oracle块修改跟踪功能

    详解Oracle块修改跟踪功能

    块修改跟踪功能是指使用二进制文件记录数据库中数据库更改的过程。这篇文章主要介绍了Oracle块修改跟踪功能,需要的朋友可以参考下
    2021-11-11

最新评论