美文网首页
ORACLE数据库迁移计划

ORACLE数据库迁移计划

作者: 亦枫禾木 | 来源:发表于2020-05-09 08:26 被阅读0次

    数据迁移计划

    原因:
    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
        这个步骤可能比较耗时,耐心等待
    
    

    多少不凡,只因不甘

    原创文章

    相关文章

      网友评论

          本文标题:ORACLE数据库迁移计划

          本文链接:https://www.haomeiwen.com/subject/eulhnhtx.html