使用数据泵技术实现逻辑备份

数据泵概述

数据泵(DATA PUMP)是一种在数据库之间、数据库与操作系统之间,高速传输数据的技术(10g推出)。

逻辑备份概述

逻辑备份是对数据库对象(如用户、表、存储过程等)利用EXPORT等工具进行导出

物理备份对比

物理备份是转储ORACLE物理文件(如数据文件、控制文件、归档日志文件等)

物理备份旨在完全恢复整个数据库,要求完全相同的备份环境和恢复环境

逻辑备份旨在备份数据本身,可移植性强,但是备份和恢复速度低下,大型业务系统一般不用

操作步骤

1.创建目录对象(在哪导入,导出到哪)

CREATE DIRECTORY 目录名(dump_dir) as '绝对路径';

2.dump_dir目录授予

GRANT read,write on directory 目录名 to 导入导出用户;

SELECT * FROM DBA_DIRECTORIES; 查询所有已创建的目录
DROP directory 目录名; 删除目录

3.expdq导出(EXPDP和IMPDP是Oracle服务端的工具,退出sqlplus)

第一种:全量导出数据库:

expdp 用户名/密码@orcl dumpfile=导出文件名.dmp directory=目录名 full=y logfile=日志名.log;(与dmp一个目录)

第二种:按用户导出:

expdp 用户名/密码@orcl schemas=用户 dumpfile=导出文件名.dmp directory=目录名 logfile=日志名.log;

第三种:按表空间导出:

expdp 用户名/密码@orcl tablespace=表空间名 dumpfile=导出文件名.dmp directory=目录名 logfile=日志名.log;

第四种:按表导出:

expdp 用户名/密码@orcl tables=表名 dumpfile=导出文件名.dmp directory=目录名 logfile=日志名.log;

导出表结构

expdp 用户名/密码@orcl directory=目录名 dumpfile=导出文件名.dmp content=metadata_only tables=(a,b)

metadata_only代表只导出表结构

第五种:按查询条件导:

expdp 用户名/密码@orcl tables=表名='where 条件=值' dumpfile=导出文件名.dmp directory=目录名 logfile=日志名.log;

4.impdq(退出sqlplus)

第一种:全量导入数据库;

impdp 用户名/密码 directory=data_dir dumpfile=expdp.dmp full=y;

第二种:按名用户导入,从源用户名1导入到目标用户名2;

impdp 用户名/密码 REMAP_SCHEMA=[源用户名1]:[目标用户名2] directory=data_dir dumpfile=expdp.dmp logfile=impdp.log;

  

第三种:

a.从A用户中把表table1和table2导入到B用户中;

impdp 用户名/密码 tables=A.table1,A.table2 REMAP_SCHEMA=A:B directory=data_dir dumpfile=expdp.dmp logfile=impdp.log;

b.将表空间TBS01、TBS02、TBS03导入到表空间A_TBS,将用户B的数据导入到A,并生成新的oid防止冲突;

impdp 用户名/密码 remap_tablespace=TBS01:A_TBS,TBS02:A_TBS,TBS03:A_TBS REMAP_SCHEMA=B:A FULL=Y transform=oid:n directory=data_dir dumpfile=expdp.dmp logfile=impdp.log

c.导入表结构

第四种:导入表空间;

impdp 用户名/密码 tablespaces=tbs1 directory=data_dir dumpfile=expdp.dmp logfile=impdp.log;

第五种:追加数据;

impdp 用户名/密码 directory=data_dir dumpfile=expdp.dmp schemas=system table_exists_action=replace logfile=impdp.log;

--table_exists_action:导入对象已存在时执行的操作。有效关键字:SKIP,APPEND,REPLACE和TRUNCATE

5.参数

1.expdb

ATTACH 连接到现有作业, 例如 ATTACH [=作业名]。

COMPRESSION           减小转储文件内容的大小, 其中有效关键字 值为: ALL, (METADATA_ONLY), DATA_ONLY 和 NONE。

CONTENT               指定要卸载的数据, 其中有效关键字 值为: (ALL), DATA_ONLY 和 METADATA_ONLY。

DATA_OPTIONS            数据层标记, 其中唯一有效的值为: 使用CLOB格式的 XML_CLOBS-write XML 数据类型。

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

DUMPFILE              目标转储文件 (expdp.dmp) 的列表,例如 DUMPFILE=expdp1.dmp, expdp2.dmp。

ENCRYPTION             加密部分或全部转储文件, 其中有效关键字值为: ALL, DATA_ONLY, METADATA_ONLY,ENCRYPTED_COLUMNS_ONLY 或 NONE。

ENCRYPTION_ALGORITHM       指定应如何完成加密, 其中有效关键字值为: (AES128), AES192 和 AES256。

ENCRYPTION_MODE          生成加密密钥的方法, 其中有效关键字值为: DUAL, PASSWORD 和 (TRANSPARENT)。

ENCRYPTION_PASSWORD       用于创建加密列数据的口令关键字。

ESTIMATE              计算作业估计值, 其中有效关键字值为: (BLOCKS) 和 STATISTICS。

ESTIMATE_ONLY           在不执行导出的情况下计算作业估计值。

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

FILESIZE               以字节为单位指定每个转储文件的大小。

FLASHBACK_SCN            用于将会话快照设置回以前状态的 SCN。 -- 指定导出特定SCN时刻的表数据。

FLASHBACK_TIME           用于获取最接近指定时间的 SCN 的时间。-- 定导出特定时间点的表数据,注意FLASHBACK_SCN和FLASHBACK_TIME不能同时使用。

FULL                 导出整个数据库 (N)。  

HELP               显示帮助消息 (N)。

INCLUDE               包括特定的对象类型, 例如 INCLUDE=TABLE_DATA。

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

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

NETWORK_LINK            链接到源系统的远程数据库的名称。

NOLOGFILE              不写入日志文件 (N)。

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

PARFILE               指定参数文件。

QUERY                用于导出表的子集的谓词子句。--QUERY = [schema.][table_name:] query_clause。

REMAP_DATA             指定数据转换函数,例如 REMAP_DATA=EMP.EMPNO:REMAPPKG.EMPNO。

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

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

SCHEMAS               要导出的方案的列表 (登录方案)。  

STATUS               在默认值 (0) 将显示可用时的新状态的情况下,要监视的频率 (以秒计) 作业状态。  

TABLES               标识要导出的表的列表 - 只有一个方案。--[schema_name.]table_name[:partition_name][,…]

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

TRANSPORTABLE          指定是否可以使用可传输方法, 其中有效关键字值为: ALWAYS, (NEVER)。

TRANSPORT_FULL_CHECK       验证所有表的存储段 (N)。

TRANSPORT_TABLESPACES     要从中卸载元数据的表空间的列表。

VERSION               要导出的对象的版本, 其中有效关键字为:(COMPATIBLE), LATEST 或任何有效的数据库版本。

ADD_FILE              向转储文件集中添加转储文件。

CONTINUE_CLIENT          返回到记录模式。如果处于空闲状态, 将重新启动作业。

EXIT_CLIENT             退出客户机会话并使作业处于运行状态。

FILESIZE               后续 ADD_FILE 命令的默认文件大小 (字节)。

HELP                总结交互命令。

KILL_JOB              分离和删除作业。

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

_DUMPFILES             覆盖目标转储文件 (如果文件存在) (N)。

START_JOB             启动/恢复当前作业。

STATUS               在默认值 (0) 将显示可用时的新状态的情况下,要监视的频率 (以秒计) 作业状态。STATUS[=interval]。

STOP_JOB              顺序关闭执行的作业并退出客户机。STOP_JOB=IMMEDIATE 将立即关闭数据泵作业。

2.impdq

ATTACH                   连接到现有作业, 例如 ATTACH [=作业名]。

CONTENT                    指定要卸载的数据, 其中有效关键字 值为: (ALL), DATA_ONLY 和 METADATA_ONLY。

DATA_OPTIONS                 数据层标记,其中唯一有效的值为:SKIP_CONSTRAINT_ERRORS-约束条件错误不严重。

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

DUMPFILE                   要从(expdp.dmp)中导入的转储文件的列表,例如 DUMPFILE=expdp1.dmp, expdp2.dmp。

ENCRYPTION_PASSWORD            用于访问加密列数据的口令关键字。此参数对网络导入作业无效。

ESTIMATE                  计算作业估计值, 其中有效关键字为:(BLOCKS)和STATISTICS。

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

FLASHBACK_SCN               用于将会话快照设置回以前状态的 SCN。

FLASHBACK_TIME               用于获取最接近指定时间的 SCN 的时间。

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

  

HELP                     显示帮助消息(N)。

INCLUDE                   包括特定的对象类型, 例如 INCLUDE=TABLE_DATA。

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

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

NETWORK_LINK                链接到源系统的远程数据库的名称。

NOLOGFILE                  不写入日志文件。  

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

PARFILE                   指定参数文件。

PARTITION_OPTIONS             指定应如何转换分区,其中有效关键字为:DEPARTITION,MERGE和(NONE)。

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

REMAP_DATA                 指定数据转换函数,例如REMAP_DATA=EMP.EMPNO:REMAPPKG.EMPNO。

REMAP_DATAFILE              在所有DDL语句中重新定义数据文件引用。

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

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

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

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

SCHEMAS                  要导入的方案的列表。

SKIP_UNUSABLE_INDEXES          跳过设置为无用索引状态的索引。

SQLFILE                  将所有的 SQL DDL 写入指定的文件。

STATUS                   在默认值(0)将显示可用时的新状态的情况下,要监视的频率(以秒计)作业状态。  

STREAMS_CONFIGURATION          启用流元数据的加载。

TABLE_EXISTS_ACTION            导入对象已存在时执行的操作。有效关键字:(SKIP),APPEND,REPLACE和TRUNCATE。

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

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

TRANSFORM                 要应用于适用对象的元数据转换。有效转换关键字为:SEGMENT_ATTRIBUTES,STORAGE,OID和PCTSPACE。

TRANSPORTABLE               用于选择可传输数据移动的选项。有效关键字为: ALWAYS 和 (NEVER)。仅在 NETWORK_LINK 模式导入操作中有效。

TRANSPORT_DATAFILES            按可传输模式导入的数据文件的列表。

TRANSPORT_FULL_CHECK           验证所有表的存储段 (N)。

TRANSPORT_TABLESPACES          要从中加载元数据的表空间的列表。仅在 NETWORK_LINK 模式导入操作中有效。

VERSION                  要导出的对象的版本, 其中有效关键字为:(COMPATIBLE), LATEST 或任何有效的数据库版本。仅对 NETWORK_LINK 和 SQLFILE 有效。

CONTINUE_CLIENT          返回到记录模式。如果处于空闲状态, 将重新启动作业。

EXIT_CLIENT            退出客户机会话并使作业处于运行状态。

HELP                总结交互命令。

KILL_JOB              分离和删除作业。

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

START_JOB             启动/恢复当前作业。START_JOB=SKIP_CURRENT 在开始作业之前将跳过作业停止时执行的任意操作。

STATUS               在默认值 (0) 将显示可用时的新状态的情况下,要监视的频率 (以秒计) 作业状态。STATUS[=interval]。

STOP_JOB              顺序关闭执行的作业并退出客户机。STOP_JOB=IMMEDIATE 将立即关闭数据泵作业。

Oracle 数据泵expdq,impdq的更多相关文章

  1. Oracle数据泵(Data Dump)错误汇集

    Oracle数据泵(Data Dump)使用过程当中经常会遇到一些奇奇怪怪的错误案例,下面总结一些自己使用数据泵(Data Dump)过程当中遇到的问题以及解决方法.都是在使用过程中遇到的问题,以后陆 ...

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

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

  3. Oracle 数据泵导入导出总结

    Oracle 数据泵(IMPDP/EXPDP)导入导出总结 Oracle数据泵导入导出是日常工作中常用的基本技术之一,它相对传统的逻辑导入导出要高效,这种特性更适合数据库对象数量巨大的情形,因为我日常 ...

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

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

  5. Oracle 数据泵(IMPDP/EXPDP)导入导出总结

    Oracle数据泵导入导出是日常工作中常用的基本技术之一,它相对传统的逻辑导入导出要高效,这种特性更适合数据库对象数量巨大的情形,因为我日常运维的数据库对象少则几千,多则几万甚至几十万,所以传统exp ...

  6. Oracle数据泵导出使用并行参数,单个表能否真正的并行?

    对于Oracle 数据泵expdp,impdp是一种逻辑导出导入迁移数据的一个工具,是服务端的工具,常见于DBA人员使用,用于数据迁移.从A库迁移至B库,或者从A用户迁移至B用户等. 那么有个疑问? ...

  7. ORACLE 数据泵 expdp/impdp

    ORACLE 数据泵 expdp/impdp 一.概念 Oracle Database 10g 引入了最新的数据泵(Data Dump)技术,数据泵导出导入 (EXPDP 和 IMPDP)的作用: 1 ...

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

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

  9. Oracle数据泵导出数据库

    Oracle数据泵导出数据库 特别注意:如果后续要导入的数据库版本低,所有导出命令就需要在后面加一个version=指定版本. 例如从11g导出数据导入到10g,假设10g具体版本为10.2.0.1, ...

随机推荐

  1. Streamy 解决办法

  2. Python深入:super函数

    新式类中最酷的,或者也是最不平常的特性之一,可能就是编写“cooperative类”.‘cooperative类’通过多继承,使用我称之为‘cooperative super call’的模式. 先来 ...

  3. php parse_url linux 解析问题

    耕毅 解析url函数parse_url() (PHP 4, PHP 5, PHP 7) parse_url — 解析 URL,返回其组成部分 mixed parse_url ( string $url ...

  4. 一个简单的hexo搭建博客网站的故事

    首先安装hexo mkdir hexo #创建一个文件夹 cd hexo #切换到hexo目录下面 npm install -g hexo-cli npm install hexo --save 然后 ...

  5. H3C ACL包过滤显示与调试

  6. v-for(:key)绑定index、id、key的区别

    Vue 2.0 v-for 响应式key, index及item.id参数对v-bind:key值造成差异研究 在github上阅览README.md以获得最佳阅读体验,点这里 v-for响应式key ...

  7. CF241B Friends

    CF241B Friends 和Tree and Xor思路一样CF1055F Tree and XOR 直接找到第k大val,可以直接建出trie,然后按位贪心 考虑比val大的数的和 还是用b[i ...

  8. GitHub使用详细流程(多人开发)

    联合项目开发GIThub使用 分支 在没有使用分支之前,git会默认有一个分支, 就是主分支(master分支,还记得 git push –u origin master这个命令吗?) 这里的mast ...

  9. Linux 内核同步 urb

    不幸的是, 同步 urb 没有一个象中断, 控制, 和块 urb 的初始化函数. 因此它们必须在 驱动中"手动"初始化, 在它们可被提交给 USB 核心之前. 下面是一个如何正确初 ...

  10. CSS兼容性问题的解决方式(更新中···)

    1.清除浮动的兼容性(低版本的浏览器不兼容问题) .clearfix:after{ content:""; clear:both; display:block; visibilit ...