表空间传输与交换分区

一个数据迁移的实验。
假设每个分公司定期导出一份数据(普通表)到总公司进行汇总(分区表)。
分公司使用windows系统,而总公司使用Linux系统。
这个时候可以使用表空间传输,配合交换分区的功能,快速导入数据。

主要步骤
1.分公司(分公司内部ID为11)
   
    1.1 新创建一个表空间,用于导出数据
    1.2 复制生产库的表数据到新建的表空间
    1.3 将新建的表空间设置为只读模式
    1.4 使用exp导出表空间的元数据
    1.5 使用rman将数据文件转换为目标平台的文件

2.总公司
    2.1 rman转换文件到数据文件
    2.2 导入表空间
    2.3 交换分区,将分公司普通表的数据交换到总公司的分区表

这个方案的优点
    可以跨系统
    因为交换分区只是更改数据字典的信息,所以速度很快。
缺点
    不能提交增量数据。(也许分区表设计的很复杂也是可以的)
    过程相对复杂

1.分公司准备数据
    需要标明分公司的内部ID为11
CREATE TABLESPACE t DATAFILE 'C:\Users\lihuilin\Desktop\t.dbf\' SIZE 50m;
CREATE TABLE export TABLESPACE t AS SELECT '11' dept_id,object_name c1 FROM DBA_OBJECTS;
insert into export values('11','测试');
commit;
    新建表空间和创建测试数据

    查看Oracle版本和表空间传输支持的平台

    将新建的表空间设置为只读

    导出元数据
exp 'edmond/edmond as sysdba' tablespaces=t transport_tablespace=y file=C:\Users\lihuilin\Desktop\t.dmp

    使用Rman转换数据文件
convert tablespace t to platform 'Linux IA (32-bit)' format 'C:\Users\lihuilin\Desktop\%N%f';

最后将文件T6和t.dmp上传至总公司。

2.总公司导入数据
    首先,还是使用rman转换数据文件
convert datafile '/home/lihuilin/T6' db_file_name_convert '/home/lihuilin/T6','/home/lihuilin/t.dbf';

    导入表空间
imp \'edmond/edmond as sysdba\' transport_tablespace=y file='/home/lihuilin/t.dmp' tablespaces=t datafiles='/home/lihuilin/t.dbf'

    查看导入的数据

    总公司准备汇总用的分区表
create table total_table
(
    dept_id char(2),
    c1 varchar(128)
)
partition by range(dept_id)
(
    partition p11 values less than ('12'),
    partition p12 values less than ('13'),
    partition p13 values less than ('14'),
    partition p14 values less than ('15')
);

    最后交换分区,将分公司导入的普通表与总公司的分区表交换数据。

    经过交换之后,可以看到总公司的汇总表已经有了分公司的数据。

参考:
http://www.luocs.com/archives/226.html

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

转载于:http://blog.itpub.net/29254281/viewspace-1074326/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值