ORACLE数据库EXPDP/IMPDP常用参数

栏目: 数据库 · Oracle · 发布时间: 5年前

内容简介:本文主要介绍如何使用EXPDP/IMPDP也就是数据泵方式导入导出Oracle数据库。导库权限管理备份恢复数据库可以设置一个专门的用户赋予导出导入权限,导出:exp_full_database导入:imp_full_database权限。(本文后面使用的是system默认就有权限)

本文主要介绍如何使用EXPDP/IMPDP也就是数据泵方式导入导出Oracle数据库。

导库权限管理

备份恢复数据库可以设置一个专门的用户赋予导出导入权限,导出:exp_full_database导入:imp_full_database权限。(本文后面使用的是system默认就有权限)

查看scott是否有导入导出权限

select * from dba_role_privs where grantee='SCOTT';

赋予scott用户导入导出权限

grant exp_full_database,imp_full_database to scott;

回收scott导入导出权限

revoke select on dba_directories from scott;

directory管理

在介绍Oracle导入导出之前先介绍一下directory目录,directory主要用来指定存储路径。查看DBA_directories视图可以查看到目录信息。这里我也简单介绍一下directory目录的管理命令。

创建名为zhanky的directory,对应的路径G:\zhanky

create or replace directory zhanky as 'G\zhanky';

查看所有directory

select * from dba_directories;

删除指定的directory

drop directory zhanky;

为了方便大家的理解,这里简单做了DIRECROEY和EXPDP/IMPDP的对应关系图,创建directory是为了在导入到处时引用。

ORACLE数据库EXPDP/IMPDP常用参数

前面讲解了导库前准备操作,首选需要确定导出用户要有exp_full_database权限(如果使用system或sys默认就有),导入用户需要imp_full_database权限。然后需要创建directory供存放备份文件。

开始进入正题了,导入导出的日常常用参数通过测试来了解。

EXPDP导出

常用日常备份,导出全库到zhanky目录中,备份文件命名zhanky.dmp,日志文件命名zhanky_out.log。

expdp system/manager@zhanky directory=zhanky dumpfile=zhanky.dmp logfile=zhanky_out.log full=y

DIRECTORY:用于转储文件和日志文件的目录对象。

DUMPFILE:指定导出备份文件的命名。

LOGFILE:指定导出备份日志的命名。里面记录了备份中的信息。

FULL:导出整个数据库 (默认是N,就是默认只会导出登录用户的所有数据)。

将sh和scott用户下除去sales和emp表以外百分之四十的数据导出到zhanky目录中,备份文件命名zhanky2.dmp。

expdp system/manager@zhanky directory=zhanky dumpfile=zhanky2.dmp schemas=sh,scott exclude=table:\"IN\(\'SALES\',\'EMP\'\)\" sample=40

SCHEMAS:要导出的方案的列表 [登录方案]。

EXCLUDE:排除特定对象类型。(表名要大写)

SAMPLE:要导出的数据的百分比。

将users和example表空间导出到zhanky目录中版本为11.2.0.1,导出使用两个进程备份,文件分别命名zhanky1.dmp、zhanky2.dmp。如果文件存在,直接覆盖目标转储文件。

expdp system/manager@zhanky directory=zhanky dumpfile=zhanky1.dmp,zhanky2.dmp tablespaces=users,example version=11.2.0.1 parallel=2 reuse_dumpfiles=y

TABLESPACES:标识要导出的表空间的列表。

VERSION:指定导出数据库的版本,一般用于高版本数据库的数据要导入到低版本数据库中时用到。

PARALLEL:更改当前作业的活动 worker 的数量。

REUSE_DUMPFILES:覆盖目标转储文件 (如果文件存在) [N]。

将sh.selas表中cust_id列值为987的数据导出到zhanky目录中,备份文件命名为zhanky3.dmp,备份任务名叫zhankycs

expdp system/manager@zhanky directory=zhanky dumpfile=zhanky3.dmp tables=sh.selas QUERY=selas:"where cust_id=987"  JOB_NAME=zhankycs

TABLES:标识要导出的表的列表。例如, TABLES=HR.EMPLOYEES,SH.SALES:SALES_1995。

QUERY:用于导出表的子集的谓词子句。例如, QUERY=employees:"WHERE department_id > 10"。

JOB_NAME:要创建的导出作业的名称。

更多导出参数可以通过 expdp -hlep获得

IMPDP导入

IMPDP的大概过程:首先会验证用户名、密码、库等参数信息,然后创建表空间、用户、角色等,最后导入表、索引等对象。在这个步骤中创建表空间用户最重要,如果创建表空间或用户失败,那这个表空间或用户的数据在新库中就没了。创建用户失败的原因一般都是表空间不存在,所以表空间创建的是否成功事关重要。在导入过程自动创建表空间时会按照备份文件(也就是备份文件数据源库)中的参数信息。所有参数正确那么就可以出问题的地方就只有存储空间和路径了。所以我们只需要确认服务器空间是否足够和源库中数据文件的路径在服务器上是否存在。而单实例环境从windows导入到 linux 这种情况,路径肯定没法保证一致,所以建议在导入之前先创建表空间。一般如果是生产环境公司都会有创建表空间脚本。

常用日常恢复,将zhanky目录下zhanky.dmp备份文件中所有数据导入到zhanky库中导出日志命名为zhanky_in.log。

impdp system/manager@zhanky directory=zhanky dumpfile=zhanky.dmp logfile=zhanky_in.log full=y

DIRECTORY             供转储文件, 日志文件和 sql 文件使用的目录对象。

DUMPFILE              要从 (expdat.dmp) 中导入的转储文件的列表,

LOGFILE               日志文件名 (import.log)。

FULL                  从源导入全部对象 (Y)。

将zhanky目录下zhanky.dmp备份文件中sh和scott用户下除去sales和emp表以外的所有数据导入到zhanky库中。并将导入作业命名zhankycs_in

impdp system/manager@zhanky directory=zhanky dumpfile=zhanky.dmp schemas=sh,scott exclude=table:\"IN\(\'SALES\',\'EMP\'\)\" job_name=zhankycs_in

SCHEMAS               要导入的方案的列表。

EXCLUDE               排除特定的对象类型, 例如 EXCLUDE=TABLE:EMP。

JOB_NAME              要创建的导入作业的名称。

将zhanky目录下zhanky1.dmp、zhanky2.dmp备份文件中users和example表空间导入到zhanky库中,导入使用两个进程导入。

expdp system/manager@zhanky directory=zhanky dumpfile=zhanky1.dmp,zhanky2.dmp tablespaces=users,example reuse_datafiles=y parallel=2

TABLESPACES           标识要导入的表空间的列表。

REUSE_DATAFILES       如果表空间已存在, 则将其初始化 (N)

PARALLEL              更改当前作业的活动 worker 的数目。

将zhanky目录下zhanky.dmp备份文件中sh.selas表里cust_id列值为987的数据指定为10.2.0.4版本导入到zhanky库中,如果指定库种sh.selas表则将数据附加到表中

impdp system/manager@zhanky directory=zhanky dumpfile=zhanky.dmp tables=sh.selas QUERY=selas:"where cust_id=987" version=10.2.0.4 TABLE_EXISTS_ACTION=REPLACE

QUERY                 用于导入表的子集的谓词子句。

VERSION               要导出的对象的版本, 其中有效关键字为:

TABLES                标识要导入的表的列表。

TABLE_EXISTS_ACTION   导入对象已存在时执行的操作。 有效关键字: (SKIP)跳过, APPEND附加, REPLACE 替换和 TRUNCATE清空表后在添加。

将zhanky目录下zhanky.dmp备份文件中所有数据导入到zhanky库中,但是将users表空间中的数据导入到cs表空间中,scott用户的数据导入到zhanky用户中,sh.selas表的数据导入到system.cstable中。

impdp system/manager@zhanky directory=zhanky remap_tablespace=users:cs remap_schema=scott:zhanky remap_table=sh.selas:cstable full=y

REMAP_TABLESPACE     将表空间对象重新映射到另一个表空间。

REMAP_SCHEMA          将一个方案中的对象加载到另一个方案。

REMAP_TABLE    将表名重新映射到另一个表。例如, REMAP_TABLE=EMP.EMPNO:REMAPPKG.EMPNO。

其实数据泵的导入导出很简单,主要就是理解各个参数的用途,然后各种搭配之用。这次的内容就写到这里,如果有问题欢迎留言指出。


以上所述就是小编给大家介绍的《ORACLE数据库EXPDP/IMPDP常用参数》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

千夫所指

千夫所指

乔恩·罗森 / 王岑卉 / 九州出版社 / 2016-10-1 / CNY 42.80

编辑推荐: 《乌合之众》是为了跪舔权贵?《普通心理学》实验存在重大漏洞?《引爆点》的理论都是瞎掰的?社交网络时代《1984》预言的“老大哥”是否已经变成事实? 《纽约时报》年度十佳书 《GQ》杂志年度十佳书 《卫报》年度十佳书 《泰晤士报》年度十佳书 《经济学人》年度重推! 黑天鹅年度重点图书! 《乌合之众》是为了迎合权贵?《普通心理学》实验存在重大......一起来看看 《千夫所指》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

MD5 加密
MD5 加密

MD5 加密工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具