ORACLE数据文件迁移计划

数据迁移计划

原因:
oracle数据库数据文件将磁盘空间占满导致数据无法写入,如果删除历史数据,表空间不会释放占用物理空间不会释放,所以磁盘依旧是满的,现在需要腾出部分空间,然后挂在新的盘符为数据存储。
需要解决的问题

  1. 删除部分历史数据后表空间不会释放

迁移计划

一、备份

二、数据文件迁移

所有的命令执行要在 sqlplus下执行

1. 进入sqlplus
    //进入sqlplus oracle命令提示空间
    sqlplus /nologs
    conn /as sysdba
2. 关闭数据库
    //关闭数据库
    shutdown immediate
3. 移动数据文件位置
比如 
将      D:\app\Administrator\admin\orcl\JCPT_CA.DBF 
移动到 
        C:\Users\Administrator\Oracle\JCPT_CA.DBF

4. 启动数据库到 mount状态
    //数据库例程开启
    startup mount
5. 执行数据文件位置更改
//更改数据文件位置
 alter database rename file 'D:\app\Administrator\admin\orcl\JCPT_CA.DBF' to 'C:\Users\Administrator\Oracle\JCPT_CA.DBF';
6. 启动数据库
 alter database open;
7. 重启验证
    //关闭数据库
    shutdown immediate
    //启动数据库
    startup

三、删除历史数据,释放空间(如果执行了第二步这步可不做)

此步骤主要是为了删除数据后 释放表空间占用的物理空间

1. 删除分区表中无用的历史数据
    //查询所有分区表数据数据文件
    
    //按照时间删除部分无用表分区 -- update global indexes 如果数据量大 可能会耗时
    alter table ‘表名’ drop partition ‘分区’  -- UPDATE GLOBAL INDEXES;  
    //


2. 查询表空间中每个数据文件的实际使用空间
    select d.bytes total ,s.bytes free,s.tablespace_name tablespace_,
    d.file_name file_name,d.file_id file_id  
    from DBA_FREE_SPACE s ,dba_data_files d 
    where  d.FILE_ID = s.file_id  and   d.tablespace_name = '表空间名称'

3. 重设每个数据文件的空间大小为实际使用大小
    //根据上一步得到的使用空间 在以下位置释放表空间略大于实际使用空间即可
    alter database datafile '~/jcpt.dbf' resize 500m;
4. 关闭数据文件的自动扩展
    -- 扩建数据文件
    alter tablespace JCPT add datafile 'D:/oracle/product/10.2.0/oradata/orcl/jcpt01.dbf' size 30048m 
    AUTOEXTEND  ON NEXT 100M MAXSIZE UNLIMITED

    -- 关闭表空间自动扩展
    alter database datafile '/u01/app/oracle/oradata/fzyz/TS_JOB12_IDX_001.DBF' autoextend off;
5. 扩展数据文件到新的盘符/位置
    alter tablespace JCPT add datafile 'D:/oracle/product/10.2.0/oradata/orcl/jcpt01.dbf' size 30048m;
    并把jcpt01文件按照3.3.2步骤设置成自动扩展大小。
    或者一气呵成:
    alter tablespace JCPT add datafile 'D:/oracle/product/10.2.0/oradata/orcl/jcpt01.dbf' size 30048m AUTOEXTEND  ON NEXT 100M MAXSIZE UNLIMITED
    这个步骤可能比较耗时,耐心等待

多少不凡、只因不甘

原创 待完善

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值