ORACLE海量数据转移方案

海量数据转移方案

 

数据传输转移是系统部署经常涉及到的问题,如何实现海量数据高效转移传输呢?下面以邮政内部资源可视化系统部署过程为例,讲解这里面的实现方法。

 

一、             使用传输表空间

 限制:A、只能传输数据,不能传输用户的存储过程、函数、物理化视图等。

       B、表空间必须自包含。该表空间或者说该组表空间 中的对象,没有和别的表空间中的对象扯上关系,比如索引/约束 等。

       C8i以上版本。

       D.相同硬件平台。不同硬件平台需要转换字节顺序。

检查方法:execute dbms_tts.transport_set_check(ts_list=>'local',incl_constraints=>TRUE);
参数ts_list用于指定要搬移的表空间,incl_constraints用于指定是否检查完整性约束。

执行完过程dbms_tts.transport_set_check之后,系统将违反自包含表空间的信息存入临时表transport_set_violations。查询该表时,如果没有返回任何信息,说明表空间是自包含的.

 

1.使要转移的表空间只读。

alter tablespace ts_vir read only;

  alter tablespace vir_olap read only;

  alter tablespace qs_map read only;

  alter tablespace yzwd read only;

 

2.拷贝数据文件copy data,把表空间对应的数据文件复制一份,到目标数据库。

 

3.导出表空间的数据字典信息。

 

exp "'/ as sysdba'"  tablespaces=vir_olap,ts_vir,qs_map,yzwd  transport_tablespace=y file=vir_metadata.dmp

 

4.使表空间可读写。Alter tablespace VIR read write;

 

5. 目标数据库建立用户。

create user vir      identified by vir;

   create user vir_olap identified by vir;

   create user qs_map   identified by qs_map;

   create user yzwd     identified by yzwd;

 

6.赋予权限。grant resource,connect to vir,vir_olap,qs_map,yzwd;

 

7.导入表空间信息到目标数据库。

imp "'/ as sysdba'"  tablespaces=vir_olap,QS_MAP,ts_vir,YZWD transport_tablespace=y  file=vir_metadata.dmp datafiles=/u01/apps/oracle/oradata/orcl/vir_olap.ora,/

   /u01/apps/oracle/oradata/orcl/vir_olap1.ora,/

   /u01/apps/oracle/oradata/orcl/vir_olap2.ora,/

   /u01/apps/oracle/oradata/orcl/vir_olap3.ora,/

   /u01/apps/oracle/oradata/orcl/vir_olap4.ora,/

   /u01/apps/oracle/oradata/orcl/ts_vir.ora,/

   /u01/apps/oracle/oradata/orcl/QS_MAP.dbf,/

   /u01/apps/oracle/oradata/orcl/YZWD.dbf

8.使表空间可读写。Alter tablespace VIR read write;

 

二、             使用数据泵技术

限制:A10g以上版本使用

      B、服务器端执行

   

源数据库执行:

1.DBA用户创建逻辑目录BACKUP  create or replace directory BACKUP  as '/home/oracle';

 

2.执行导出

expdp system/system directory=BACKUP dumpfile=vir.dmp schemas=vir,vir_olap,qs_map,yzwd logfile=expdp.log

 

目标库执行:

3.DBA用户创建逻辑目录BACKUP

   create or replace directory BACKUP  as '/home/oracle';

 

4.创建表空间ts_vir,vir_olap,qs_map,yzwd,指定足够大小。

CREATE TABLESPACE name DATAFILE 'E:/oracle/product/10.2.0/oradata/orcl/name.ora' SIZE 600M;

 

5.创建用户vir,vir_olap,qs_map,yzwd 指定密码,默认表空间

 

6.拷贝 vir.dmp到目录BACKUP

 

7.SQL命令窗口执行exec dbms_metadata_util.load_stylesheets

 

 

8.检查NLS_LANG环境变量,数据库字符集,是否是 american_america_zhs16gbk

执行导入impdp system/system  dumpfile=vir.dmp schemas=vir,vir_olap,qs_map,yzwd logfile=log.txt directory=BACKUP

 

9.重新编译INVALID的对象。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值