数据泵是10g推出的功能,个人倒数据比较喜欢用数据泵。

其导入的时候利用remap参数很方便转换表空间以及schema,并且可以忽略服务端与客户端字符集问题(exp/imp需要排查字符集)。

数据泵也有不方便的地方,如果远程导出导入,必须安装数据库服务端(client不行);需要在数据库中创建一个路径directory(dba_directories);并且主流工具支持exp/imp的导入导出(plsql developer),所以发现数据泵流行程度没有想象中高。

以下简单介绍schema的导入导出

以schema方式导出生产库用户下所有对象,并导入测试库。

注:eamdb为生产库,eamprd为生产库用户,密码为eamprd

eamuat为测试库,eamprduat为测试库用户,密码为eamprduat

一、生产库的导出(以sqlplus命令行的方式)。

1.以sys或者system用户身份登录生产数据库。

2.创建schema导出路径(DUMP_DIR名称可替换),并在dba_directories中查看

create directory DUMP_DIR as ‘/xxx/xxx’;
select * from dba_directories;

3.把导出路径与导出权限授权给eamprd,如果用system等高级帐号导出,则不用。

grant read,write on directory DUMP_DIR to eamprd;
grant exp_full_database to eamprd;

4.退出sqlplus,在oracle系统用户下运行,导出对应的SCHEMA,推荐第二种。

expdp eamprd/eamprd@eamdb DIRECTORY=DUMP_DIR DUMPFILE=eamdb.dmp
expdp system/xxxx@eamdb directory=dump_dir dumpfile=eamdb.dmp schemas=eamprd

    导出重点参数:

版本:高往低需加version=xx.x  导出某些张表tables=xxxx  content=metadata_only(只要结构)   content=data_only(只要数据)

5.把eamdb.dmp拷贝到测试库。

二、测试库的导入

1.以sys或者system身份登陆测试库。

2.建立导入表空间和临时表空间(名称、路径、表空间大小,请自行替换)。

create tablespace tbs_EAMUAT datafile '/xxxx/xxxxx/EAMUAT.DBF' size 10240M autoextend on next 1024M maxsize 20480M;
create temporary tablespace EAMUAT_TEMP tempfile '/xxx/xxx/EAMUAT_TEMP.DBF' size 5120M;

3.建立用户及赋予权限(也可以不建立用户),导入时最好给予用户dba权限,以防导入时创建某些对象权限不够,注意需要回收其对users表空间的权限。

create user eamprduat identified by eamprduat default tablespace tbs_EAMUAT temporary tablespace EAMUAT_TEMP;
grant connect,resource,create view,create session,dba to eamprduat;
revoke unlimited tablespace from eamprduat;
alter user eamprduat quota unlimited on tbs_EAMUAT;

4.建立导入路径(把eamdb.dmp放在此路径下),并授权。

create directory DUMP_DIR as '/xxxxx/xxxxx';
grant read,write on directory DUMP_DIR to eamprduat;

5.导入数据(在oracle系统用户下运行),注意remap_schema参数,请自行替换

impdp eamprduat/eamprduat@eamuat DIRECTORY=DUMP_DIR DUMPFILE=eamdb.dmp LOGFILE=impdp.log remap_schema=eamprd:eamprduat;

导入重点参数:

remap_schema=eamprd:eamprduat,eamxxx:xxx,xxx:xxx

remap_tablespace=eamdev:eamxxx,eamxxx:xxx,xxx:xxx

table_exists_action=replace(替换)append(追加)

exclude=table_statistics 此参数是取消对表的统计信息收集,如果表太多,不取消的话特别慢,之后可以手动收集,或等oracle自动收集。

execute dbms_stats.gather_table_stats(ownname=>'USERNAME',tabname=>'TABLE_NAME',cascade=>TRUE)

如导入报错:ORA-31684: Object type USER:"xxxxx" already exists,不用理会,因为之前建立了用户。

也可以在导入的语句中直接remap一个不存在的用户,会自动生成,其密码和权限与导出时候一样,但其表空间如果不想用users,必须手工创建。

[terry笔记]Oracle数据泵-schema导入导出的更多相关文章

  1. [terry笔记]Oracle会话追踪(二):TKPROF

    接上一笔记[terry笔记]Oracle会话追踪(一):SQL_TRACE&EVENT 10046 http://www.cnblogs.com/kkterry/p/3279282.html ...

  2. [terry笔记]Oracle会话追踪(一):SQL_TRACE&EVENT 10046

      SQL_TRACE/10046 事件是 Oracle 提供的用于进行 SQL 跟踪的手段,在日常的数据库问题诊断和解决中是非常常用的方法.但其生成的trace文件需要tkprof工具生成一个可供人 ...

  3. oracle表分区、表分析及oracle数据泵文件导入导出开心版

    1.先说oracle表分区是什么吧,这样吧我们来举个桃子,栗子太小,我们就不举了,我们来举个桃子. 你有500万份文件,你要把他存在磁盘上,好嘛,我们就一个文件夹,500万分文件在那儿杵着,我们想找到 ...

  4. oracle表分区、表分析及oracle数据泵文件导入导出

    1.先说oracle表分区是什么吧 你有500万份文件,你要把他存在磁盘上,好嘛,我们就一个文件夹,500万分文件在那儿杵着,我们想找到要的那个打开,嘿嘿,我们得找到什么时候. 这时候,有个人告诉你, ...

  5. Oracle数据泵的导入导出

    说明:数据泵技术是Oracle Database 10g 中的新技术,它比原来导入/导出(imp,exp)技术快15-45倍.速度的提高源于使用了并行技术来读写导出转储文件. expdp导出 1.以s ...

  6. Oracle数据泵的导入和导出

    前言 今天王子要分享的内容是关于Oracle的一个实战内容,Oracle的数据泵. 网上有很多关于此的内容,但很多都是复制粘贴别人的,导致很多小伙伴想要使用的时候不能直接上手,所以这篇文章一定能让你更 ...

  7. oracle11g-R2数据库的逻辑备份(数据泵的导入导出)

    一.环境: server1迁移到server2 server1: 服务器号:201 系统:Windows server 2008 R2 x64 IP地址:192.168.2.201 oracle数据库 ...

  8. [terry笔记]IMPDP报错ORA-39083 Object type TYPE failed to create ORA-02304

    今天在使用impdp导入的时候(同一数据库中转换schema),遇到了 ORA-39083: Object type TYPE failed to create with error: ORA-023 ...

  9. PLSQL_数据泵Datapump导入导出数据IMPDP / EXPDP(概念)(Oracle数据导入导出工具)(转)

    一.摘要 在平常备库和数据库迁移的时候,当遇到大的数据库的时候在用exp的时候往往是需要好几个小时,耗费大量时间.oracle10g以后可以用expdp来导出数据库花费的时间要远小于exp花费的时间, ...

随机推荐

  1. 操作系统是怎么工作的——mykernel环境的搭建

    可以参见:https://github.com/mengning/mykernel 首先感谢:http://www.euryugasaki.com/archives/1014 1.搭建实验环境(实验环 ...

  2. oracle 清除当前用户的回收站

    --清除当前用户的回收站:purge recyclebin;  --删除表数据truncate table --查看当前用户回收站select * from user_recyclebin t; 

  3. IE 下的z-index BUG问题

    今天做项目的时候在IE7 碰到了IE 的 z-index 问题: 然后问了几个朋友,总结了一下z-index问题的几个要点: 1.z-index 是要在position为relative或者absol ...

  4. PHP:PHP页面编码问题(转载)

    MySQL数据库编码.html页面编码.PHP或html文件本身编码要全部一致. 1.MySQL数据库编码:建立数据库时指定编码(如gbk_chinese_ci),建立数据表.建立字段.插入数据时不要 ...

  5. 再论App的安全性

    现代人早已脱离不了智能手机,几乎人手一机,常见人边走边滑,着实危险.大家用手机App购物,用网银App付费,用股票App下单炒股,太方便了所以成了家常便饭. 没错,就是因为太方便,所以大多只会留意好不 ...

  6. Save a bricked Samsung Note 3 and do extraction

    The case scenario was about bank robery and the suspect threw his Samsung Note 3 into the river. For ...

  7. sqlserver监控阻塞(死锁)具体情况

    公司sqlserver的监控系统主要是采用zabbix监控,但是zabbix的监控只能通过性能计数器给出报警,而无法给出具体的阻塞情况,比如阻塞会话.语句.时间等,所以需要配合sqlserver的一些 ...

  8. 【EF学习笔记04】----------EF简单增删改查

    第一步:创建上下文对象 using(var db = new Entities()) { //数据操作 } 新增 UserInfo user = new UserInfo() { UserName = ...

  9. UIButton设置imgae图片自适应button的大小且不变形

    在某些情况下,我们使用的UIButton的背景图片不一定就是标准的尺寸,有时会偏大,那么怎么办? 这个比较简单直接设置 :    self.imageView.contentMode = UIView ...

  10. Mysql 自定义随机字符串

    前几天在开发一个系统,需要用到随机字符串,但是mysql的库函数有没有直接提供,就简单的利用现有的函数东拼西凑出随机字符串来.下面简单的说下实现当时. 1.简单粗暴. select ..., subs ...