导入/导出(IMP/EXP)是Oracle最古老的两个命令行工具,通过导出(EXP)工具可以将Oracle数据库中的数据提取出来,在恢复时可以将数据导入(IMP)进行恢复。

但是需要注意的是,使用EXP备份的数据进行全库恢复时,需要重新创建数据库,导入备份的数据,恢复的过程可能会极为漫长。

逻辑导出(EXP)的使用方法在命令行通过exp –help命令可以直接得到:

C:>exp -help

Export: Release 10.2.0.1.0 - Production on 星期四 2月 1 11:21:14 2007

Copyright © 1982, 2005, Oracle. All rights reserved.

通过输入 EXP 命令和您的用户名/口令, 导出

操作将提示您输入参数:

例如: EXP SCOTT/TIGER

或者, 您也可以通过输入跟有各种参数的 EXP 命令来控制导出

的运行方式。要指定参数, 您可以使用关键字:

格式: EXP KEYWORD=value 或 KEYWORD=(value1,value2,…,valueN)

例如: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)

或 TABLES=(T1:P1,T1:P2), 如果 T1 是分区表

USERID 必须是命令行中的第一个参数。

关键字 说明 (默认值) 关键字 说明 (默认值)

USERID 用户名/口令 FULL 导出整个文件 (N)

BUFFER 数据缓冲区大小 OWNER 所有者用户名列表

FILE 输出文件 (EXPDAT.DMP) TABLES 表名列表

COMPRESS 导入到一个区 (Y) RECORDLENGTH IO 记录的长度

GRANTS 导出权限 (Y) INCTYPE 增量导出类型

INDEXES 导出索引 (Y) RECORD 跟踪增量导出 (Y)

DIRECT 直接路径 (N) TRIGGERS 导出触发器 (Y)

LOG 屏幕输出的日志文件 STATISTICS 分析对象 (ESTIMATE)

ROWS 导出数据行 (Y) PARFILE 参数文件名

CONSISTENT 交叉表的一致性 (N) CONSTRAINTS 导出的约束条件 (Y)

OBJECT_CONSISTENT 只在对象导出期间设置为只读的事务处理 (N)

FEEDBACK 每 x 行显示进度 (0)

FILESIZE 每个转储文件的最大大小

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

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

QUERY 用于导出表的子集的 select 子句

RESUMABLE 遇到与空格相关的错误时挂起 (N)

RESUMABLE_NAME 用于标识可恢复语句的文本字符串

RESUMABLE_TIMEOUT RESUMABLE 的等待时间

TTS_FULL_CHECK 对 TTS 执行完整或部分相关性检查

TABLESPACES 要导出的表空间列表

TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N)

TEMPLATE 调用 iAS 模式导出的模板名

成功终止导出, 没有出现警告。

帮助部分详细介绍了EXP的使用方法,以上帮助内容来自Oracle 10gR2。接下来简要介绍几个关于EXP的注意事项及特殊用法:

1、EXP导出与字符集

在前面的章节中已经详细地介绍过,导出客户端的字符集的设置会影响导出数据,所以应该设置导出客户端字符集和数据库相一致。在Windows的命令行可以如下设置:

C:>set nls_lang=AMERICAN_AMERICA.ZHS16GBK

在Linux/UNIX上Bash下通常可以如下设置:

[oracle@jumper oracle]$ export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

数据库端使用的字符集可以通过如下查询获得:

SQL> select * from NLS_DATABASE_PARAMETERS where parameter=‘NLS_CHARACTERSET’;

PARAMETER VALUE

NLS_CHARACTERSET ZHS16GBK

2、带查询子句的部分导出

从Oracle 8i开始,EXP工具支持使用查询子句对特定表的部分数据执行导出,这个功能是通过EXP的query参数来实现的,在使用过程中可能最常见的错误是:

LRM-00112: multiple values not allowed for parameter ‘query’

EXP-00019: failed to process parameters, type ‘EXP HELP=Y’ for help

EXP-00000: Export terminated unsuccessfully

这通常是因为Query子句包含特殊字符导致的,由于特殊字符在命令行通常需要转义,所以导出的语法结构通常与众不同。

在Windows上,通常可以使用如下方式指定Query子句:

exp … query=‘where col=1000’

exp … query=‘where col=’‘1000’’’

exp … query=‘where col"

exp … query=“where col < 1000”

exp … query="‘where col < 1000’"

以下是两个简单的范例:

C:>exp eygle/eygle@dana file=test.dmp tables=tquery query=“where object_id < 1000”

Export: Release 10.2.0.1.0 - Production on Thu Feb 1 11:49:52 2007

Export done in ZHS16GBK character set and AL16UTF16 NCHAR character set

About to export specified tables via Conventional Path …

. . exporting table TQUERY 949 rows exported

Export terminated successfully without warnings.

C:>exp eygle/eygle@dana file=test.dmp tables=tquery query=‘where object_id “

Export: Release 10.2.0.1.0 - Production on Thu Feb 1 11:47:43 2007

Export done in ZHS16GBK character set and AL16UTF16 NCHAR character set

About to export specified tables via Conventional Path …

. . exporting table TQUERY 949 rows exported

Export terminated successfully without warnings.

在Linux/UNIX的Bash下,通常可以如下指定query参数:

exp … query=“where col < 1000”

exp … query=“where col < ‘1000’”

以下是一个简单的举例:

[oracle@danaly ~]$ exp eygle/eygle file=test.dmp tables=tquery query=“where object_id < 1000”

Export: Release 10.2.0.1.0 - Production on Thu Feb 1 11:47:54 2007

Export done in ZHS16GBK character set and AL16UTF16 NCHAR character set

About to export specified tables via Conventional Path …

. . exporting table TQUERY 949 rows exported

Export terminated successfully without warnings.

3、参数文件的使用

对于类似以上的复杂处理,可以通过参数PARFILE来指定一个参数文件,具体的参数写在参数文件中,这样就可以避免复杂的转义等操作:

[oracle@danaly ~]$ cat parfile.lst

userid=eygle/eygle

file=test.dmp

tables=tquery

query=“where object_id < 1000”

[oracle@danaly ~]$ exp parfile=parfile.lst

Export: Release 10.2.0.1.0 - Production on Thu Feb 1 11:52:30 2007

Export done in ZHS16GBK character set and AL16UTF16 NCHAR character set

About to export specified tables via Conventional Path …

. . exporting table TQUERY 949 rows exported

Export terminated successfully without warnings.

4、使用通配符进行模糊导出

有时候,我们希望按条件导出部分表,EXP工具支持模糊查找,通配符可以在tables参数中使用,例如:

[oracle@jumper oracle]$ exp eygle/eygle tables=e% file=a.dmp

Export: Release 9.2.0.4.0 - Production on Mon Mar 26 14:59:14 2007

Export done in ZHS16GBK character set and AL16UTF16 NCHAR character set

About to export specified tables via Conventional Path …

. . exporting table EYGLE 9 rows exported

. . exporting table EYGLE_ACCESS_LOG_20061016

Export terminated successfully without warnings.

这样,以字母E开头的表都被导出了。

5、按日期区分文件名称的导出

很多时候,在导出备份时,我们希望在文件名中加入日期变量,以区分不同日期的导出文件,也可以防止覆盖。

在导出文件名中引入时间有很多不同的做法,本文主要介绍以下两种方法:

(1)通过数据库查询获取日期。

通过数据库查询可以获得需要的日期格式,在Windows上可以编写两个文件用于完成备份,一个是可执行的批处理文件,名称为startbak.bat,可以包含如下内容:

echo off

set oracle_sid=eygle

sqlplus eygle/eygle @expbydt.sql

第二个文件是expbydt.sql脚本:

column today new_val dt

select to_char( sysdate, ‘ddmmyyyy’ ) today from dual;

host exp userid=eygle/eygle file=exp_eygle_&dt…dmp log=exp_eygle_&dt…log

exit

准备好了这两个文件之后,就可以通过命令行运行startbak.bat来执行逻辑备份了:

D:\backup>startbak.bat

D:\backup>echo off

连接到:

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

TODAY

08022007

Export: Release 10.2.0.1.0 - Production on 星期四 2月 8 15:55:07 2007

Copyright © 1982, 2005, Oracle. All rights reserved.

连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集

即将导出指定的用户…

. 正在导出 pre-schema 过程对象和操作

。。。。

即将导出 EYGLE 的对象…

. 即将导出 EYGLE 的表通过常规路径…

. . 正在导出表 EYGLE导出了 1 行

. . 正在导出表 EYGLE_BLOB导出了 8 行

. . 正在导出表 TEST导出了 15 行

. 正在导出同义词

……

. 正在导出统计信息

成功终止导出, 没有出现警告。

检查一下导出后的文件名称,如果备份计划无误,现在就可以通过Windows上的定时任务来定时执行这个任务了。

D:\backup>dir

2007-02-08 15:54 163 expbydt.sql

2007-02-08 15:55 1,699,840 exp_eygle_08022007.dmp

2007-02-08 15:55 1,091 exp_eygle_08022007.log

2007-02-08 15:51 64 startbak.bat

(2)通过操作系统获取日期。

时间变量也可以直接通过操作系统获得,在Windows上,我们可以通过如下命令获得:

D:\backup>echo %date:~0,10%

2007-02-08

当然,在Windows上的时间格式和区域设置有关,如果以上命令输出的日期格式存在问题,那么可以调整一下区域设置的日期。

可以通过一个名为expbdt.bat的批处理文件来执行导出操作:

echo off

set oracle_sid=eygle

exp userid=eygle/eygle full=y file=d:\backup\exp_eygle_%date:~0,10%.dmp log=d:\backup\exp_eygle_%date:~0,10%.log

执行的结果和上面的方法类似:

D:\backup>expbdt.bat

D:\backup>echo off

连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集

即将导出整个数据库…

. 正在导出表空间定义

. 正在导出 pre-schema 过程对象和操作

. 正在导出簇定义

. 即将导出 SYSTEM 的表通过常规路径…

. . 正在导出表 DEF_AQCALL导出了 0 行

. . 正在导出表 DEF_AQERROR导出了 0 行

. 正在导出默认值和系统审计选项

. 正在导出统计信息

成功终止导出, 没有出现警告。

导出的输出如下:

D:\backup>dir

2007-02-08 16:46 134 expbdt.bat

2007-02-08 16:47 11,440,128 exp_eygle_2007-02-08.dmp

2007-02-08 16:47 29,646 exp_eygle_2007-02-08.log

在Linux/UNIX上的时间定义就显得更为简单:

exp eygle/eygle file=eygle_date +%Y%M%d

导出文件格式如下:

[oracle@jumper oracle]$ ls -l *.dmp

-rw-r–r-- 1 oracle dba 32768 Feb 8 16:41 eygle_20074008.dmp

linux exp parfile用法,逻辑备份与恢复-使用EXP进行逻辑备份相关推荐

  1. linux exp parfile用法,exp 用法

    exp 使用方法及实例 exp/imp 为一种数据库备份恢复工具也可以作为不同数据库之间传递数据的工具两个数据库所在的操作系统可以不同exp 可以将数据库数据导出为二进制文件imp 可以将导出的数据文 ...

  2. oracle11g_R2 exp imp 用法

    今天接到一任务把数据库中一个用户的数据全部迁移到另一个用户下,想用这个用户来做测试. 实现步骤: 1. 如果你的机器上没装oracle客户端或者oracle 但你又只想装个客户端不想装服务端 那么如下 ...

  3. Oracle数据库备份与恢复1\Oracle数据库备份与恢复(1)exp和imp 之三

    1.1  基本命令 1.  获取帮助 $ exp help=y $ imp help=y 2.  三种工作方式 (1)交互式方式 $ exp        //  然后按提示输入所需要的参数 (2)命 ...

  4. python中exp函数_Python3中exp()函数用法分析

    python中虚数函数exp怎么表示 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型 虚数函数exp用math是不行的要用cmat ...

  5. Oracle逻辑备份与恢复

    1. 备份的类型 按照备份方式的不同,可以把备份分为两类: 1.1 逻辑备份:指通过逻辑导出对数据进行备份.将数据库中的用户对象导出到一个二进制文件中,逻辑备份使用导入导出工具:EXPDP/IMPDP ...

  6. linux shell awk用法

    Awk 是一种非常好的语言,同时有一个非常奇怪的名称.在本系列(共三篇文章)的第一篇文章中,Daniel Robbins 将使您迅速掌握 awk 编程技巧.随着本系列的进展,将讨论更高级的主题,最后将 ...

  7. oracle12c备份和恢复,Oracle12c数据的逻辑备份与恢复

    数据库恢复是指在数据库发生故障时,使用数据库备份还原数据库,使数据库恢复到无故障状态. 根据数据库恢复时使用的备份不同,恢复分为物理恢复和逻辑恢复.所谓的物理恢复就是,利用物理备份来恢复数据库,即利用 ...

  8. cmd oracle sys登录_Oracle 数据库、表、方案的逻辑备份与恢复

    数据库(表)的逻辑备份与恢复 逻辑备份是指使用工具export将数据对象的结构和数据导出到文件的过程,逻辑恢复是指当数据库对象被破坏而使用工具import利用备份的文件把数据对象导入到数据库的过程,逻 ...

  9. linux expect案例用法

    EXPECT 用法 expect是基于TCL的相对简单的一个免费脚本编程工具语言,用来实现自动和交互式任务进行通信,无需人的 手工干预,比如ssh\FTP等,这些程序正常情况都需要手工与它们进行交互, ...

最新文章

  1. springboot集成freemarker 配置application.properties详解
  2. 如何用 Java 实现简单的区块链
  3. 『数据库』朴实无华且枯燥的数据库文章--关系数据理论
  4. php如何控制用户数,PHP统计当前在线用户数实例讲解
  5. Happy New Year!PR升3啦!
  6. ipad+mysql+客户端_MySQL QueryDB Client
  7. 2000份简历模板 唯美时尚简约个人简历模板 英文简历模板 简历封面 自荐信下载
  8. 怎么用计算机名称共享打印机设置,如何共享打印机设置教程
  9. 计算机桌面ie图标无法删除,桌面ie图标删除不了的解决方法
  10. Adobe Acrobat 如何通过书签制作多级目录
  11. pip升级scapy报错It is a distutils installed project and thus we cannot accurately determine which files
  12. 【原创】《华杉讲透《孙子兵法》》阅读有感(三)
  13. k2.第一章 基于kubeadm安装kubernetes v1.20 -- 集群部署(二)
  14. 阿里P6和P7待遇差别有多大网友干的活差不多,工资差很多
  15. arduino智能浇花系统_智能自浇花系统
  16. mysql的查询分析工具下载_万能数据库查询分析器(ODBC数据库查询分析工具)V7.03 最新版...
  17. JAVA-乐观锁更新失败或业务异常后接口重试
  18. jmu-python-最佳身高
  19. python drf_python DRF操作流程
  20. 高手谈谈PR更新前站长们应该如何去做

热门文章

  1. scrapy组件、中间件、spider中类方法from_crawler的作用
  2. TestDirector简介
  3. win7修改word背景色保护眼睛
  4. STM32f767之通用定时器
  5. WORD点击索引目录提示错误信息
  6. 杀不死的Service
  7. TI AM5728 DSP+ARM多核通信开发例程
  8. [转]孝心无价--毕淑敏
  9. ARDUINO 积木式编辑器整理
  10. python-itchat微信消息群发、自动回复