利用oracle 传输表空间来实现历史数据分离的方案

         ORACLE 传输表空间的方法来实现历史数据的分离
    Oracle的传输表空间是指:可以将一个数据库上的一个或多个表空间的全部数据文件拷贝到另一个数据库服务器上,通过导入的方式将表空间加载当目标数据库。
 使用这种方法的最大好处是速度快,所需要的时间和拷贝数据文件差不多,比执行EXP/IMP的导入导出要快得多。

具体实现方法:以oa用户下T_DOC_PREFS为例,分离出2008年的数据
   一.生产库操作
    1.新建立个2008年的表空间,存放表T_DOC_PREFS分离出来的2008年数据
     假设表空间名为TS_2008
     CREATE TABLESPACE TS_2008 DATAFILE '/DEV/RFILE' SIZE 10000M;   

        --备注具体大小需要评估下一年数据量多大

    2.用cats方法来创建一个新表存放T_DOC_PREFS分离出来的2008年数据
     CREATE TABLE T_DOC_PREFS_2008 TABLESPACE TS_2008  AS SELECT * FROM T_DOC_PREFS WHERE DATE
     BETWEEN TO_DATE('2008-01-01 00:00:00','YYYY-MM-DD')  AND TO_DATE('2008-12-31 23:59:59','YYYY-MM-DD')

         --备注具体sql查询出2008年的数据由软件开发商定。
   3.设置Ts_2008表空间为只读
     ALTER TABLESPACE   TS_2008 READ ONLY;
 
   4.用exp方法 导出表空间
     EXP "SYS/ABCDEFG@OLD AS SYSDBA" FILE=/OPT/TS_2008.DMP TRANSPORT_TABLESPACE=Y TABLESPACES=TS_2008
  
   5.拷贝 ts_2008.dmp 文件 以二进制方式到新主机数据库上

  二.目标库操作
  
   6.在新主机数据库上创建需要导入的用户如OA_2008
     CREATE USER OA_2008 IDENTIFIED BY OA_2008;

   7.导入2008年数据到OA_2008用户中
     IMP "SYS/ABCDEFG@NEW AS SYSDBA" FROMUSER=OA TOUSER=OA_2008 FILE=/OPT/TS_2008.DMP TRANSPORT_TABLESPACE=Y TABLESPACES=TS_2008   
  
   8.然后在新机器上对ts_2008表空间设为可读写
     ALTER TABLESPACE TS_2008 READ WRITE;
 
   9.开发检查数据的一致性。

 其他年份需要分离的数据采取方法同上,以上方法已经通过测试。

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7199859/viewspace-608185/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/7199859/viewspace-608185/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值