Oracle更改表空间数据文件位置

概述

Oracle数据库的数据文件的位置和信息都被记录在控制文件中,rm或cp命令是不会也不可能更改控制文件记录的,这时必须通过alter操作去更改刷新数据库控制文件中数据文件的相关信息,以此确保数据库能够正常运行。

操作方法

1. 方法1


  • 主要步骤:
  • 1、offline表空间:alter tablespace tablespace_name offline;
  • 2、复制数据文件到新的目录;
  • 3、rename修改表空间,并修改控制文件;
  • 4、online表空间;

  • offline表空间

    SQL> alter tablespace cifdb offline;
    
  • 复制数据文件到新的目录

    cp /u01/app/oracle/oradata/cifdb.dbf /u01/app/oracle/oradata/CIFDB/cifdb.dbf
    
  • rename修改表空间

    SQL> alter tablespace cifdb rename datafile '/u01/app/oracle/oradata/cifdb.dbf' to '/u01/app/oracle/oradata/CIFDB/cifdb.dbf';
    
  • online表空间

    SQL> alter tablespace cifdb online;
    
  • 检查数据文件

    SQL> select name from v$datafile;
    

    或者

    SQL> select file_name, tablespace_name from dba_data_files where tablespace_name='cifdb'; 
    

2. 方法2


  • 主要步骤:
  • 1、关闭数据库;
  • 2、复制数据文件到新的位置;
  • 3、启动数据库到mount状态;
  • 4、通过SQL修改数据文件位置;
  • 5、打开数据库;

  • 关闭数据库

    SQL> shutdown immediate;
    
  • 复制数据文件到新的位置

    cp /u01/app/oracle/oradata/cifdb.dbf /u01/app/oracle/oradata/CIFDB/cifdb.dbf
    
  • 启动数据库到mount状态

    SQL> startup mount;  
    
  • 修改数据文件位置

    SQL> alter database rename file '/u01/app/oracle/oradata/cifdb.dbf' to '/u01/app/oracle/oradata/CIFDB/cifdb.dbf';
    
  • 打开数据库

    SQL> alter database open;
    
  • 检查数据文件

    SQL> select name from v$datafile;
    

    或者

    SQL> select file_name, tablespace_name from dba_data_files where tablespace_name='cifdb'; 
    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景: 阅读新闻 12C CDB模式下RMAN备份与恢复 [日期:2016-11-29] 来源:Linux社区 作...
    阳屯okyepd阅读 8,983评论 0 7
  • 一、源题QUESTION 74View the Exhibit. You want to create a tab...
    猫猫_tomluo阅读 5,502评论 0 1
  • 系统用户: 1.sys system(sys权限最高) 2.sysman(操作企业管理器) 密码是安装的时候输入的...
    3hours阅读 5,493评论 0 0
  • 1、登录SQL plus 使用系统用户登录: 首先系统用户有:sys和system,这两个用户权限较高; 其中sy...
    方研梅阅读 3,991评论 0 0
  • ----有时候 很难预知下一步将要走向何方-----生命总是悄然的给每个人安排了他所要前行的方向,但对于我们来说却...
    黑兔子Gary阅读 715评论 2 2