使用数据泵将指定的表和序列还原到一个新的schema下

先创建测试users

-- Create the user

create user SCOTT

default tablespace USERS

temporary tablespace TEMP

profile DEFAULT

password expire

account lock;

-- Grant/Revoke role privileges

grant connect to SCOTT;

grant resource to SCOTT;

-- Grant/Revoke system privileges

grant unlimited tablespace to SCOTT;

alter user scott identified by scott

-- Create the user

create user hr identified by hr

default tablespace USERS

temporary tablespace TEMP

profile DEFAULT

password expire

account lock;

-- Grant/Revoke role privileges

grant connect to hr;

grant resource to hr;

-- Grant/Revoke system privileges

grant unlimited tablespace to hr;

查看scott下的对象信息

导出Scott

expdp system/oracle directory=expdp_dump dumpfile=expdp_scott_1017$rq.dmp logfile=expdp_scott_1017$rq.log schemas=scott;

导入指定表

测试1:使用tables

将Scott下的是TA1,TA2,TA3导入到hr下:

impdp system/oracle directory=expdp_dump dumpfile=expdp_scott_1017.dmp logfile=impdp_scott_1017.log remap_schema=scott:hr tables=scott.TA1,scott.TA2,scott.TA3;

查看导入hr下的对象

清除导入hr的对象

测试2:使用include

这种导入会提示ORA-31655:no data or metadata objects selected for job

无法导入表,需要测试1的tables导入

将Scott下的是TA1导入到hr下:

impdp system/oracle directory=expdp_dump dumpfile=expdp_scott_1017.dmp logfile=impdp_scott_1017.log remap_schema=scott:hr include=TABLE:\"=\‘scott.ta1\‘\";

将Scott下的是TA1,TA2,TA3导入到hr下:

impdp system/oracle directory=expdp_dump dumpfile=expdp_scott_1017.dmp logfile=impdp_scott_1017.log remap_schema=scott:hr include=TABLE:\"in \(\‘TA1\‘,\‘TA2\‘,\‘TA3\‘\)\";

导入指定序列

要导入制定列需要使用include,而且需要使用转义字符"\"

将Scott下的是SEQ_TA1_ID导入到hr下:

impdp system/oracle directory=expdp_dump dumpfile=expdp_scott_1017.dmp logfile=impdp_scott_1017.log remap_schema=scott:hr include=SEQUENCE:\"in \(\‘SEQ_TA1_ID\‘\)\";

将Scott下的是SEQ_TA2_ID,SEQ_TA3_ID导入到hr下:

impdp system/oracle directory=expdp_dump dumpfile=expdp_scott_1017.dmp logfile=impdp_scott_1017.log remap_schema=scott:hr include=SEQUENCE:\"in \(\‘SEQ_TA2_ID\‘,\‘SEQ_TA3_ID\‘\)\";

查看两次导入的对象,都成功

将Scott下的所有序列导入到hr下:

impdp system/oracle directory=expdp_dump dumpfile=expdp_scott_1017.dmp logfile=impdp_scott_1017.log remap_schema=scott:hr include=SEQUENCE;

查看导入的对象

当导入的对象指定前缀是也无法导入

impdp system/oracle directory=expdp_dump dumpfile=expdp_scott_1017.dmp logfile=impdp_scott_1017.log remap_schema=scott:hr include=SEQUENCE:\"in \(\‘scott.SEQ_TA1_ID\‘\)\";

下面尝试将表和序列一起导入,但是都不成功,只能导入序列,所以目前分开导入

impdp system/oracle directory=expdp_dump dumpfile=expdp_scott_1017.dmp logfile=impdp_scott_1017.log remap_schema=scott:hr include=SEQUENCE:\"in \(\‘SEQ_TA2_ID\‘,\‘SEQ_TA3_ID\‘\)\" tables=scott.TA1,scott.TA2,scott.TA3;

impdp system/oracle directory=expdp_dump dumpfile=expdp_scott_1017.dmp logfile=impdp_scott_1017.log remap_schema=scott:hr tables=scott.TA1,scott.TA2,scott.TA3 include=SEQUENCE:\"in \(\‘SEQ_TA2_ID\‘,\‘SEQ_TA3_ID\‘\)\";

impdp system/oracle directory=expdp_dump dumpfile=expdp_scott_1017.dmp logfile=impdp_scott_1017.log remap_schema=scott:hr include=SEQUENCE:\"in \(\‘SEQ_TA2_ID\‘,\‘SEQ_TA3_ID\‘\)\",include=TABLE:\"in \(\‘TA1\‘,\‘TA2\‘,\‘TA3\‘\)\"

impdp system/oracle directory=expdp_dump dumpfile=expdp_scott_1017.dmp logfile=impdp_scott_1017.log remap_schema=scott:hr include=SEQUENCE:\"in \(\‘SEQ_TA2_ID\‘,\‘SEQ_TA3_ID\‘\)\",TABLE:\"in \(\‘TA1\‘,\‘TA2\‘,\‘TA3\‘\)\"

impdp ORA-31655错误处理一例

http://www.oracleonlinux.cn/2012/02/impdp-ora-31655/

ORA-39001: invalid argument value ORA-39071: Value for EXCLUDE is badly formed.

http://www.codeweblog.com/ora-39001-invalid-argument-value-ora-39071-value-for-exclude-is-badly-formed/

expdp impdp中 exclude/include 的使用

http://blog.csdn.net/liqfyiyi/article/details/7248911

时间: 2024-10-06 18:23:42

使用数据泵将指定的表和序列还原到一个新的schema下的相关文章

使用数据泵导入并重命名表名

--查询数据泵使用的目录 SQL> select * from dba_directories; --导出数据库使用的导出目录 EXPDP_DUMP /u02/expdp_dump --导出scott下表T_A的命令 expdp system/oracle directory=expdp_dump dumpfile=expdp_T_A.dmp logfile=expdp_T_A.log tables=scott.T_A --导出操作记录 [[email protected] ~]$ expdp

一个公式,将数据提取到指定工作表

今天和大家分享CELL函数的知识.期待能收到一朵小花还有无数多情的目光. 在日常应用中,从总表中拆分数据还是经常会用到的.比如说,将销售数据提取到各个销售部工作表.将学生名单提取到各个班级工作表-- 今天分享的内容,就是和拆分有关的那些事. 动态获取工作表名称 打开一个Excel工作薄,在某个单元格里输入公式: =CELL("filename",A1) 会返回一串字符串,比如D:学习[me.xlsx]总表. 其中,"学习"是文件夹的名称:"[me.xlsx

ORACLE使用数据泵导入导出部分表

1.导出名字为A的表(这里会导出SEQUENCES及FUNCTION等内容) expdp TEST/TEST@orcl schemas=TEST dumpfile=TEST.dmp DIRECTORY=db_bak EXCLUDE=TABLE:\"NOT IN\(\'A\')\" 2.导出名字不为A的表(去掉NOT与我们习惯的正好相反) expdp TEST/TEST@orcl schemas=TEST dumpfile=TEST.dmp DIRECTORY=db_bak EXCLUD

Oracle数据泵的使用

几乎所有DBA都熟悉oracle的导出和导入实用程序,它们将数据装载进或卸载出数据库,在oracle  database 10g和11g中,你必须使用更通用更强大的数据泵导出和导入(Data Pump Export and Import)实用程序导出和导入数据. 以前的导出和导入实用程序在oracle database 11g中仍然可以使用,但是Oracle强烈建议使用数据泵(Data Pump)技术,因为它提供了更多的高级特性.例如,你可以中断导出/导入作业,然后恢复它们:可以重新启动已失败的

数据泵EXPDP导出工具和IMPDP导入工具的使用

数据泵EXPDP导出工具和IMPDP导入工具的使用  一.EXPDP和IMPDP使用说明 Oracle Database 10g引入了最新的数据泵(Data Dump)技术,数据泵导出导入(EXPDP和IMPDP)的作用 1)实现逻辑备份和逻辑恢复. 2)在数据库用户之间移动对象. 3)在数据库之间移动对象. 4)实现表空间搬移. 二.数据泵导出导入与传统导出导入的区别 在10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的EXP和IMP工具,还提供了数据泵

编写PL/SQL程序使用数据泵导出导入数据

1.什么是数据泵?就是oracle的一个PL/SQL程序包 dbms_datapump2.数据泵技术是Oracle Database 10g 中的新技术,它比原来导入/导出(imp,exp)技术快15-45倍.速度的提高源于使用了并行技术来读写导出转储文件. expdp使用 使用EXPDP工具时,其转储文件只能被存放在DIRECTORY对象对应的OS目录中,而不能直接指定转储文件所在的OS目录.因此使用EXPDP工具时,,必须首先建立DIRECTORY对象,并且需要为数据库用户授予使用DIREC

Oracle数据泵(Data Pump)

前言:努力的人最后一定不会太差!!关注博客或者加Q:1445696451一起努力!~~~~~~~~分割~~~~~~~~~一.简介1.逻辑备份:是创建数据库对象的逻辑副本,并存入一个二进制转储文件的过程.逻辑备份和逻辑恢复从本质上来讲,就是数据的导出和导入.2.数据泵:是一中在数据库之间或者在数据库域操作系统之间高速传输数据的技术.可以把比作水流,那么数据泵就像水泵一样,可以将数据抽取出来存到其他的位置.数据泵工具运行与服务器之上,数据库管理员需要指定数据库操作目录用来保存这些转储的二进制数据.二

Oracle>>通过PL/SQL程序块判断,指定用户的指定数据表和序列是否存在,如果存在则删除,否则新创建。并且为表添加含有字符串数据,execute immediate执行insert语句中有字符串解决办法

--变量声明 declare num0 number; num1 number; begin --判断用户为:SYSTEM的数据库中是否存在相关数据表和序列,存在则删除,不存在则新创建,DBMS_OUTPUT.put_line等同java中的System.out.println输出语句 DBMS_OUTPUT.put_line('正在初始化数据库信息,请稍后......'); --以下参数说明: --所涉及到的参数值必须为大写 --sequence_owner:指定哪个数据库用户的序列: seq

MySQL 如何只导出 指定的表 的表结构和数据 ( 转 )

MySQL 如何只导出 指定的表 的表结构和数据 ( 转 ) 2011-01-04 15:03:33 分类: MySQL MySQL 如何只导出 指定的表 的表结构和数据 导出更个库的表结构如下:mysqldump -uroot -p -d databasename > createtab.sql, 如果只想导出 表 test1,test2,test3 的 表结构 和 数据呢?该如何导出? mysqldump -uroot -p -d databasename test1 test2 test3