使用exp&imp工具进行数据库备份及恢复

时间:2022-12-29 12:15:20

使用exp&imp工具进行数据库备份及恢复
1、exp/imp使用方法介绍
exp/imp为一种数据库备份恢复工具,也可以作为不同数据库之间传递数据的工具,两个数据库所在的操作系统可以不同。exp可以将数据库数据导出为二进制文件,imp可以将导出的数据文件再导入到相同的数据库或不同的数据库。说明:尽可能的用低版本的exp执行导出(源端和目标端数据库数据库版本中,哪个版低就用哪个执行导出),尽可能的用目标端数据库的IMP版本执行导入。
数据库导出有四种模式:full(全库导出)、owner(用户导出)、table(表导出)、tablespace(表空间导出)。
full(全库导出):导出除ORDSYS、MDSYS、CTXSYS、ORDPLUGINS、LBACSYS这些系统用户之外的所有用户的数据。
owner(用户导出):导出某个或某些用户的所有权限和数据。
tables(表导出):导出某些表(可以是不同用户的)的结构和数据。
tablespace(表空间导出):表空间导出数据。
执行exp有三种方法,交互式、命令行和参数文件,
交互式:直接输入exp命令,用户可以按照exp提示的信息一步一步操作,比较简单。
命令行:输入命令行exp username/password parameter=value。
参数文件:输入命令行exp username/password parfile=filename,exp所需的参数从参数文件引入。
参数是可以重复的,优先级为命令行优于参数文件,后面的参数值覆盖于前面的参数值。
下面介绍一些常用的参数,没有标明的,表示exp/imp都适用,imp的参数不再单独介绍。
参数介绍
buffer:缓冲区大小,如果此值设为0,则一次只导入一条记录。对数据量大的导出可以设置较大,一般缺省值即可。
file:导出的文件列表,可以指定一个或多个文件名,缺省扩展名为.dmp,缺省导出文件名为expdat.dmp。
filesize(exp):导出文件的最大字节数,超出时,从文件列表中获取下一个文件名,没有,则提示输入新的文件名。
help:显示export参数帮助信息。
inctype:增量备份的类型,complete(完全)、cumulative(累积)和incremental(增量)。只可以在全库导出模式下才可以做完全、累积或增量导出。累积导出只导出自上次累积导出或完全导出以来已经修改的表;增量导出只导出自上次增量、累积或完全导出以来已经修改的表;完全导出将数据库中全部对象都导出,不管是否以及何时被修改。
log:日志文件,一般如果以命令行导入时,将log设置上比较好,可以看到所有的导入信息,哪儿出错,导入了那些数据库对象。
show(imp):只是用来显示备份数据文件的内容,
full:为Y时表示在全库方式下导出,缺省为N。
tables:导出的表列表,可以指定一个或多个表名。
fromuser(imp):可以将导出文件中的一个用户模式的数据对象导入为另一个用户模式的对象, 此参数表示导出文件中的用户模式。
touser(imp):此参数表示导入到数据库中时使用的用户模式对象。譬如,使用全库或者用户模式导出cams用户的所有对象到一个文件中,导入时,需要将用户模式名称改为cams1,此时,fromuser为cams,touser为cams1。
2、 exp常见用法及使用案例
2.1 交互式-用户导出
交互式导出比较简单,这里只举用户导出一种用法进行说明,全库导出和表导出比较简单,不再列出。

1、使用简单命令exp命令导出数据
C:\Users\Administrator>exp Export: Release 11.2.0.1.0 - Production on 星期六 10月 4 15:17:38 2014 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. 用户名: scott
口令: 连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
输入数组提取缓冲区大小: 4096 > //交互式导出时大多数参数都有缺省值,如果选用缺省值,直接回车即可 导出文件: EXPDAT.DMP > scott20141004.dmp //可使用默认名字EXPDAT.DMP (2)U(用户), 或 (3)T(表): (2)U > 导出权限 (yes/no): yes > 导出表数据 (yes/no): yes > 压缩区 (yes/no): yes > 已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
. 正在导出 pre-schema 过程对象和操作
. 正在导出用户 SCOTT 的外部函数库名
. 导出 PUBLIC 类型同义词
. 正在导出专用类型同义词
. 正在导出用户 SCOTT 的对象类型定义
即将导出 SCOTT 的对象...
. 正在导出数据库链接
. 正在导出序号
. 正在导出簇定义
. 即将导出 SCOTT 的表通过常规路径...
. . 正在导出表 DEPT导出了 4 行
. . 正在导出表 EMP导出了 14 行
. . 正在导出表 EMP2导出了 14 行
. . 正在导出表 EMP_TEST导出了 14 行
. . 正在导出表 SALGRADE导出了 5 行
. 正在导出同义词
. 正在导出视图
. 正在导出存储过程
. 正在导出运算符
. 正在导出引用完整性约束条件
. 正在导出触发器
. 正在导出索引类型
. 正在导出位图, 功能性索引和可扩展索引
. 正在导出后期表活动
. 正在导出实体化视图
. 正在导出快照日志
. 正在导出作业队列
. 正在导出刷新组和子组
. 正在导出维
. 正在导出 post-schema 过程对象和操作
. 正在导出统计信息
成功终止导出, 没有出现警告。
======================================
说明:(1) 在交互式导出或导入时,如果输错值,不再想进行下面的步骤,但不知如何退出,此时请用“.”,回车即退出。

2.2 命令行-全库导出

全库导出必须要有dba权限,一般用system用户来执行

exp userid=system/test2014@orcl full=y file=(d:\backup\2014100401.dmp, d:\backup\2014100402.dmp) filesize=2GB log=d:\backup\20141004.log
该命令导出全库数据,导出到多个文件中,每个文件最大2GB,exp只生成最少的导出文件,譬如导出的数据不足2GB,exp只生成d:\backup\2014100401.dmp,如果file列表中的文件太少,不能存放所有的导出数据,exp会提示用户输入文件名,导出过程记录日志。

2.3、命令行-用户导出

C:\Users\Administrator>exp userid=scott/tiger@orcl owner=scott file=(D:\backup\backup_user\2014100401.dmp, D:\backup\backup_user\2014100402.dmp) filesize
=50MB log=D:\backup\backup_user\log.20141004.log Export: Release 11.2.0.1.0 - Production on 星期六 10月 4 16:03:48 2014 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. 连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集 即将导出指定的用户...
. 正在导出 pre-schema 过程对象和操作
. 正在导出用户 SCOTT 的外部函数库名
. 导出 PUBLIC 类型同义词
. 正在导出专用类型同义词
. 正在导出用户 SCOTT 的对象类型定义
即将导出 SCOTT 的对象...
. 正在导出数据库链接
. 正在导出序号
. 正在导出簇定义
. 即将导出 SCOTT 的表通过常规路径...
. . 正在导出表 DEPT导出了 4 行
. . 正在导出表 EMP导出了 14 行
. . 正在导出表 EMP2导出了 14 行
. . 正在导出表 EMP_TEST导出了 14 行
. . 正在导出表 SALGRADE导出了 5 行
. 正在导出同义词
. 正在导出视图
. 正在导出存储过程
. 正在导出运算符
. 正在导出引用完整性约束条件
. 正在导出触发器
. 正在导出索引类型
. 正在导出位图, 功能性索引和可扩展索引
. 正在导出后期表活动
. 正在导出实体化视图
. 正在导出快照日志
. 正在导出作业队列
. 正在导出刷新组和子组
. 正在导出维
. 正在导出 post-schema 过程对象和操作
. 正在导出统计信息
成功终止导出, 没有出现警告。

2.4 命令行-表导出

C:\Users\Administrator>exp userid=scott/tiger@orcl tables=(emp,dept,salgrade) file=D:\backup\exp_table.dmp filesize=50MB log=D:\backup\exp_table

\log.20141004.log
Export: Release 11.2.0.1.0 - Production on 星期六 10月 4 16:17:47 2014 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. 连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集 即将导出指定的表通过常规路径...
. . 正在导出表 EMP导出了 14 行
. . 正在导出表 DEPT导出了 4 行
. . 正在导出表 SALGRADE导出了 5 行
成功终止导出, 没有出现警告。

2.5、命令行-完全导出

exp userid=scott/tiger@orcl full=y inctype=complete file=(D:\backup\exp_complete.dmp D:\backup\exp_complete2.dmp) filesize=100MB  log=D:\backup\exp_complete.log

全库导出时,增量导出类型缺省为complete(完全),所以例5和例2导出的结果是完全一样的。并且会提示EXP-00041: INCTYPE 参数已废弃,只能使用rman备份????

2.6、命令行-累积导出

exp scott/tiger@orcl full=y inctype=cumulative file=D:\backup\exp_cumulative\exp_cumulative.dmp filesize=200MB log=D:\backup\exp_cumulative\exp_cumulative.log

2.7 命令行-增量导出

exp userid=scott/tiger@orcl full=y inctype=incremental file=D:\backup\exp_incremental\exp_incremental.dmp filesize=10MB log=D:\back
up\exp_incremental\exp_incremental.log

累计型导出方式是导出自上次“完全”导出之后数据库中变化了的信息,而增量导出是导出上一次导出之后改变过的数据。

2.8 参数文件-用户导出

C:\Users\Administrator>exp parfile=D:\backup\exp_parfile\scott_exp.par
scott_exp.par文件内容如下:
userid=scott/scott@orcl tables=(emp,dept,salgrade) file=D:\backup\exp_parfile\exp_parfile.dmp filesize=50MB log=D:\backup\exp_parfile\log.20141004.log
为了不暴露scott用户的密码,可以将上面的userid的值写为scott@orcl,此时exp会提示用户输入密码,输入的密码不会显示出来。

3、imp常用方法及使用案例

导入模式可以分为full(全文件导入)、owner(用户导入)、table(表导入)
full(全文件导入):指导入文件中的所有数据,并不是指全库导入,如果文件中只存在一个表的数据,全文件导入就只能导入一个表的数据。
fromuser,touser(用户导入):指导入文件中该用户的所有数据,如果文件中只存在一个表的数据,用户导入就只能导入一个表的数据。
tables(表导入):指导入文件中该表的数据。
能够导入何数据很大程度上依赖于导出文件。譬如需要导入某用户的所有数据,导出文件中必须存在该用户的所有数据,即导出时必须为全库导出或用户导出。

3.1 交互式-用户导出与导入

C:\Users\Administrator>exp
Export: Release 11.2.0.1.0 - Production on 星期日 10月 5 00:11:02 2014
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. 用户名: rusky
口令:
连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
输入数组提取缓冲区大小: 4096 > 导出文件: EXPDAT.DMP >
(1)E(完整的数据库), (2)U(用户) 或 (3)T(表): (2)U >
导出权限 (yes/no): yes >
导出表数据 (yes/no): yes >
压缩区 (yes/no): yes >
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
即将导出指定的用户...
要导出的用户: (按 RETURN 退出) >
成功终止导出, 没有出现警告。 C:\Users\Administrator>imp //导入之前导出的用户数据
Import: Release 11.2.0.1.0 - Production on 星期日 10月 5 00:11:44 2014
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
用户名: rusky
口令: 连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options 仅导入数据 (yes/no): no > 导入文件: EXPDAT.DMP> 输入插入缓冲区大小 (最小为 8192) 30720> 经由常规路径由 EXPORT:V11.02.00 创建的导出文件
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
只列出导入文件的内容 (yes/no): no > 由于对象已存在, 忽略创建错误 (yes/no): no > 导入权限 (yes/no): yes > 导入表数据 (yes/no): yes > 导入整个导出文件 (yes/no): no >
用户名: rusky 输入表 (T) 或分区 (T: P) 名称。空列表表示用户的所有表
输入表 (T) 或分区 (T: P) 的名称或 。如果完成: . 正在将 RUSKY 的对象导入到 RUSKY
成功终止导入, 没有出现警告。

3.2 交互式-表导入

C:\Users\Administrator> exp userid=scott/tiger@orcl tables=(emp,dept,salgrade) file=D:\scott_tables_exp.dmp filesize 10m log=D:\scott_exp_tables.log//导出scott用户的三张表
C:\Users\Administrator>imp userid=rusky/rusky@orcl tables=(emp,dept,salgrade) file=D:\scott_tables_exp.dmp log=imp_scottToRusky.log//导入scott用户的三张表到rusky用户下 Import: Release 11.2.0.1.0 - Production on 星期六 10月 4 23:48:04 2014 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. 连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options 经由常规路径由 EXPORT:V11.02.00 创建的导出文件 警告: 这些对象由 SCOTT 导出, 而不是当前用户 已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
. 正在将 SCOTT 的对象导入到 RUSKY
. 正在将 SCOTT 的对象导入到 RUSKY
. . 正在导入表 "EMP"导入了 14 行
. . 正在导入表 "DEPT"导入了 4 行
. . 正在导入表 "SALGRADE"导入了 5 行
即将启用约束条件...
成功终止导入, 没有出现警告。

3.3 命令行-查看文件内容

imp userid=cams/cams@cams full=y show=y file=(D:\backup\exp_complete\exp_complete1.dmp, D:\backup\exp_complete\exp_complete2.dmp) log= D:\backup\exp_complete\imp2.log
该命令查看了文件中都有哪些数据,如果有多个文件,imp会提示用户输入文件名,导入过程记录日志。

3.4 命令行-全文件导入

imp userid=cams/cams@cams full=y show=y file=(D:\backup\exp_complete\exp_complete1.dmp, D:\backup\exp_complete\exp_complete2.dmp) log= D:\backup\exp_complete\imp2.log
3.6 命令行-用户导入

C:\Users\Administrator>imp userid=scott/tiger@orcl fromuser=scott touser=scott file=d:\exp_scott.dmp log=exp_scott.log ignore=y

Import: Release 11.2.0.1.0 - Production on 星期日 10月 5 01:00:07 2014

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options 经由常规路径由 EXPORT:V11.02.00 创建的导出文件
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
成功终止导入, 没有出现警告。

3.7 命令行-用户导入-从增量导出文件中导入及参数文件导入同上。

imp userid=(指的是具有导入权限的用户) fromuser=取出导出文件中该用户的数据  touser=要导入数据的用户

==============

==============

加上参数rows=n(默认y)则不导出表数据。

exp userid=lxj/1qaz2wsx@orcl DIRECT=Y RECORDLENGTH=65535 BUFFER=460000 FEEDBACK=2000 tables=tab_name1 file=C:\lxj\dataExportTest\tab_name1 .dmp log=C:\lxj\dataExportTest\tab_name1 .log

imp userid=lxj/1qaz2wsx@orcl RECORDLENGTH=65535 BUFFER=460000 FEEDBACK=2000 tables=tab_name1 file=C:\lxj\dataExportTest\FM_PRIMARYEVENT.dmp log=C:\lxj\dataExportTest\tab_name1 .log

加上参数rows=n时,则不导入表数据。这对于表结构的复制很有用。

使用exp&imp工具进行数据库备份及恢复的更多相关文章

  1. 小型网站MYSQL问题二:Percona Xtrabackup实现数据库备份和恢复

    1.安装软件仓库(不要问我为什么不用源码安装,好吧,其实我懒.) 1 2 3 4 5 6 7 8 wget https://www.percona.com/downloads/percona-rele ...

  2. Oracle 数据库备份和恢复配置

    可能的失败及其解决方法 失败类型 我们坑你遇到的失败或错误分为两大类:物理和逻辑.物理错误一般是硬件错误或使用数据库的应用程序中的软件错误,而逻辑错误一般在终端用户级别(数据库用户和管理员). 按从轻 ...

  3. Sql Server数据库备份和恢复:原理篇

    本文与您探讨为什么Sql Server有完整备份.差异备份和事务日志备份三种备份方式,以及为什么数据库又有简单模式.完整模式和大容量日志模式这三种恢复模式.本文内容适用于2005以上所有版本的Sql ...

  4. MongoDB学习总结(六) —— 数据库备份和恢复

    我们都知道数据库数据经常备份是多么的重要,MongoDB作为一个数据库系统,自然提供了完善,丰富而且好用的备份与恢复机制. 以下介绍三种数据库备份和恢复的方式 > 数据目录直接拷贝 数据库目录直 ...

  5. asp.net针对SQLSERVER数据库备份和恢复的一揽子问题解决

    一.备份 先备份到服务端,用gridview显示出来,点击可以下载到本地 二.恢复 这是很麻烦的事情,本人查阅不少资料,耗费不少时间才搞定. 直接恢复数据库时不行的,会提示数据库正在使用,恢复失败等信 ...

  6. C#可定制的数据库备份和恢复程序 (讲解流程)

    可定制的数据库备份和恢复程序 tashanzhishi [原作] 关键字 数据库 备份 恢复 出处 在我们做数据库系统的程序时,经常需要为客户做一个数据库的备份和恢复程序,特别是对于一些非专业的数据库 ...

  7. postgresql数据库备份和恢复

    PostgreSQL自带一个客户端pgAdmin,里面有个备份,恢复选项,也能对数据库进行备份 恢复(还原),但最近发现数据库慢慢庞大的时候,经常出错,备份的文件过程中出错的几率那是相当大,手动调节灰 ...

  8. mysql 数据库备份和恢复

    物理备份对比逻辑备份 物理备份是指直接复制包含数据的文件夹和文件.这种类型的备份适用于大数据量且非常重要,遇到问题需要快速回复的数据库. 逻辑备份保存能够代表数据库信息的逻辑结构(CREATE DAT ...

  9. postgresql数据库备份和恢复(超快)

    PostgreSQL自带一个客户端pgAdmin,里面有个备份,恢复选项,也能对数据库进行备份 恢复(还原),但最近发现数据库慢慢庞大的时候,经常出错,备份的文件过程中出错的几率那是相当大,手动调节灰 ...

随机推荐

  1. Underscore-分析

    0.Ecmascript的版本重要时间点 Ecmascript262-3 1999年,ie5.5及以后完全支持,ff,chrome等全部支持Ecmascript262-4 因为跨越太大,废弃Ecmas ...

  2. linux创建动态库

    [1]新建源程序sharelib.c /************************************************************************* > F ...

  3. 在Windows下编译扩展OpenCV 3.1.0 + opencv_contrib

    为什么要CMake,这里我陈述自己的想法,作为一个刚使用opencv库的小白来说,有以下大概三点内容 1.由于在学习图像处理滤波器中,需要用到各种边缘保护滤波器(EPS)算法,但是这些算法在OpenC ...

  4. 【Pro ASP.NET MVC 3 Framework】.学习笔记.6.SportsStore:导航

    在之前的章节,偶们设置了核心的基础设施,现在我们将使用基础设计添加关键特性,你将会看到投资是如何回报的.我们能够很简单很容易地添加重要的面向客户的特性.沿途,你也会看到一些MVC框架提供的附加的特性. ...

  5. asp.net MVC webservice 报次错解决方法

    asp.net  MVC  webservice  报次错解决方法: 解决方法: 在 RouteConfig.cs public static void RegisterRoutes(RouteCol ...

  6. myeclipse安装

    http://www.cnol.cc/2013/1427.html(我用这个) http://www.myeclipseide.cn/windows.html http://download.csdn ...

  7. POJ 1795

    DNA Laboratory Time Limit: 5000MS   Memory Limit: 30000K Total Submissions: 1425   Accepted: 280 Des ...

  8. 【转】有趣的Autolayout示例-Masonry实现

    原文网址:http://tutuge.me/2015/05/23/autolayout-example-with-masonry/ 好久没有写Blog了,这段时间有点忙啊=.=本文举了3个比较有“特点 ...

  9. JS客户端读取Excel文件插件js-xls使用方法

    js-xls是一款客户端读取Excel的插件,亲测IE11.FireFox.Chrome可用,读取速度也客观. 插件Demo地址:http://oss.sheetjs.com/js-xlsx/    ...

  10. Android 修改toast的默认位置和获取当前屏幕的高度和宽度

    Toast toast; toast=Toast.makeText(this, "toast", Toast.LENGTH_LONG); toast.setGravity(grav ...