linux中exp命令详解_转帖 :EXP/IMP 命令详解

E:\>exp help=y

通过输入 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)

ROWS      导出数据行 (Y)

PARFILE      参数文件名

CONSTRAINTS    导出限制 (Y)

CONSISTENT      交叉表一致性

LOG      屏幕输出的日志文件

STATISTICS      分析对象 (ESTIMATE)

DIRECT      直接路径 (N)

TRIGGERS      导出触发器 (Y)

FEEDBACK      显示每 x 行 (0) 的进度

FILESIZE      各转储文件的最大尺寸

QUERY      选定导出表子集的子句

下列关键字仅用于可传输的表空间

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

TABLESPACES    将传输的表空间列表

E:\>imp help=y

可以通过输入 IMP 命令和您的用户名/口令

跟有您的用户名 / 口令的命令:

实例: IMP SCOTT/TIGER

或者, 可以通过输入 IMP 命令和各种自变量来控制“导入”按照不同参数。

要指定参数,您可以使用关键字:

格式: IMP KEYWORD=value 或 KEYWORD=(value1,value2,...,vlaueN)

实例: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N

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

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

关键字      说明(默认)

----------------------------------------------

USERID      用户名/口令

FULL      导入整个文件 (N)

BUFFER      数据缓冲区大小

FROMUSER      所有人用户名列表

FILE      输入文件 (EXPDAT.DMP)

TOUSER      用户名列表

SHOW      只列出文件内容 (N)

TABLES      表名列表

IGNORE      忽略创建错误 (N)

RECORDLENGTH    IO 记录的长度

GRANTS      导入权限 (Y)

INCTYPE      增量导入类型

INDEXES      导入索引 (Y)

COMMIT      提交数组插入 (N)

ROWS      导入数据行 (Y)

PARFILE      参数文件名

LOG      屏幕输出的日志文件

CONSTRAINTS    导入限制 (Y)

DESTROY      覆盖表空间数据文件 (N)

INDEXFILE      将表/索引信息写入指定的文件

SKIP_UNUSABLE_INDEXES    跳过不可用索引的维护 (N)

ANALYZE      执行转储文件中的 ANALYZE 语句 (Y)

FEEDBACK      显示每 x 行 (0) 的进度

TOID_NOVALIDATE    跳过指定类型 id 的校验

FILESIZE      各转储文件的最大尺寸

RECALCULATE_STATISTICS  重新计算统计值 (N)

下列关键字仅用于可传输的表空间

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

TABLESPACES    将要传输到数据库的表空间

DATAFILES      将要传输到数据库的数据文件

TTS_OWNERS      拥有可传输表空间集中数据的用户

条件导出例子,必须把引号转义,不然会报找不到参数的错误

exp scott/tiger TABLES=emp,bonus QUERY=\"WHERE job=\'SALESMAN\' and sal\<1600\"

限制:

1.The parameter QUERY cannot be specified for full, user, or tablespace mode exports.

参数query不能使用在完全导出,用户导出和表空间导出方式

2.The parameter QUERY must be applicable to all specified tables.

参数query指定的内容必须对所有指定的表都有效

3.The parameter QUERY cannot be specified in a direct path export (DIRECT=y)

参数query不能与direct路径导出同时使用

4.The parameter QUERY cannot be specified for tables with inner nested tables.

参数query不能导出内嵌表

5.You cannot determine from the contents of the export file whether the data is the result of a QUERY export.

用query参数导出的数据与同其他方式导出的数据是一样的,无法根据导出文件进行分

exp/imp两个命令可以说是oracle中最常用的命令了.

ORACLE数据库有两类备份方法。第一类为物理备份,该方法实现数据库的完整恢复,但数据库必须运行在归挡模式下(业务数据库在非归挡模式下运行),且需要极大的外部存储设备,例如磁带库;第二类备份方式为逻辑备份,业务数据库采用此种方式,此方法不需要数据库运行在归挡模式下,不但备份简单,而且可以不需要外部存储设备。

数据库逻辑备份方法

ORACLE数据库的逻辑备份分为三种模式:表备份、用户备份和完全备份。

表模式

备份某个用户模式下指定的对象(表)。业务数据库通常采用这种备份方式。

若备份到本地文件,使用如下命令:

exp icdmain/icd rows=y indexes=n compress=n buffer=65536

feedback=100000 volsize=0

file=exp_icdmain_csd_yyyymmdd.dmp

log=exp_icdmain_csd_yyyymmdd.log

tables=icdmain.commoninformation,icdmain.serviceinfo,icdmain.dealinfo

若直接备份到磁带设备,使用如下命令:

exp icdmain/icd rows=y indexes=n compress=n buffer=65536

feedback=100000 volsize=0

file=/dev/rmt0

log=exp_icdmain_csd_yyyymmdd.log

tables=icdmain.commoninformation,icdmain.serviceinfo,icdmain.dealinfo

注:在磁盘空间允许的情况下,应先备份到本地服务器,然后再拷贝到磁带。出于速度方面的考虑,尽量不要直接备份到磁带设备。

用户模式

备份某个用户模式下的所有对象。业务数据库通常采用这种备份方式。

若备份到本地文件,使用如下命令:

exp icdmain/icd wner=icdmain rows=y indexes=n compress=n buffer=65536

feedback=100000 volsize=0

file=exp_icdmain_yyyymmdd.dmp

log=exp_icdmain_yyyymmdd.log

若直接备份到磁带设备,使用如下命令:

exp icdmain/icd wner=icdmain rows=y indexes=n compress=n buffer=65536

feedback=100000 volsize=0

file=/dev/rmt0

log=exp_icdmain_yyyymmdd.log

注:如果磁盘有空间,建议备份到磁盘,然后再拷贝到磁带。如果数据库数据量较小,可采用这种办法备份。

完全模式

备份完整的数据库。业务数据库不采用这种备份方式。备份命令为:

exp icdmain/icd rows=y indexes=n compress=n buffer=65536

feedback=100000 volsize=0 full=y

file=exp_fulldb_yyyymmdd.dmp(磁带设备则为/dev/rmt0)

log=exp_fulldb_yyyymmdd.log

对于数据库备份,建议采用增量备份,即只备份上一次备份以来更改的数据。增量备份命令:

exp icdmain/icd rows=y indexes=n compress=n buffer=65536

feedback=100000 volsize=0 full=y inctype=incremental

file=exp_fulldb_yyyymmdd.dmp(磁带设备则为/dev/rmt0)

log=exp_fulldb_yyyymmdd.log

注:关于增量备份必须满足下列条件:

1.只对完整数据库备份有效,且第一次需要full=y参数,以后需要inctype=incremental参数。

2. 用户必须有EXP_FULL_DATABASE的系统角色。

3. 话务量较小时方可采用数据库备份。

4. 如果磁盘有空间,建议备份到磁盘,然后再备份到磁带。

业务数据库备份方法及周期

用EXP进行备份前,先在SYS用户下运行CATEXP.SQL文件(如果以前已运行该文件,则不要执行这个脚本)。

没有特殊说明,不允许在客户端执行备份命令。

备份命令参照表模式下的备份命令。

从磁盘文件备份到磁带

如果首先备份到本地磁盘文件,则需要转储到磁带设备上。

1. 若需查看主机上配置的磁带设备,使用如下命令:

lsdev -Cc tape

显示的结果如下例所示:

rmt0 Available 30-58-00-2,0 SCSI 4mm Tape Drive

rmt1 Defined  30-58-00-0,0 SCSI 4mm Tape Drive

标明Available的设备是可用的磁带设备。

2. 若需查看磁带存储的内容,使用如下命令:

tar -tvf /dev/rmt0

显示的结果如下例所示:

-rw-r--r-- 300 400 8089600 Jan 11 14:33:57 2001 exp_icdmain_20010111.dmp

如果显示类似如下内容,则表示该磁带存储的备份数据是从数据库直接备份到磁带上,而非从本地磁盘转储到磁带的备份文件,因此操作系统无法识别。

tar: 0511-193 An error occurred while reading from the media.

There is an input or output error.

tar: 0511-169 A directory checksum error on media; -267331077 not equal to

2

5626.

3. 对于新磁带或无需保留现存数据的磁带,使用如下命令:

tar -cvf /dev/rmt0 exp_icdmain_yyyymmdd.dmp

注:A. 该命令将无条件覆盖磁带上的现存数据。

B. 文件名不允许包含路径信息,如:/backup/exp_icdmain_yyyymmdd.dmp。

4. 对于需要保留现存数据的磁带,使用如下命令:

tar -rvf /dev/rmt0 exp_icdmain_yyyymmdd.dmp

注:该命令将文件exp_icdmain_yyyymmdd.dmp追加到磁带的末端,不会覆盖现存的数据。

特别强调:如果备份时是从数据库直接备份到磁带上,则不可再向该磁带上追加复制任何其他文件,否则该备份数据失效。

5. 若需将转储到磁带上的备份文件复制到本地硬盘,使用如下命令:

A. 将磁带上的全部文件复制到本地硬盘的当前目录

tar -xvf /dev/rmt0

B. 将磁带上的指定文件复制到本地硬盘的当前目录

tar -xvf /dev/rmt0 exp_icdmain_yyyymmdd.dmp

备份时间安排

由于备份时对系统I/O有较大影响,所以,建议在晚上11点以后进行备份工作。

业务数据库Oracle版本的恢复

恢复方案需根据备份方案确定。由于业务数据库采用表备份和用户备份相结合的方案,所以业务数据库的恢复需根据实际情况采用表恢复和用户恢复相结合的方案。

恢复方案

数据库的逻辑恢复分为表恢复、用户恢复、完全恢复三种模式。

表模式

此方式将根据按照表模式备份的数据进行恢复。

A. 恢复备份数据的全部内容

若从本地文件恢复,使用如下命令:

imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n

commit=y buffer=65536 feedback=100000 ignore=n volsize=0

file=exp_icdmain_cs

d_yyyymmdd.dmp

log=imp_icdmain_csd_yyyymmdd.log

若从磁带设备恢复,使用如下命令:

imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n

commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=/dev/rmt0

log=imp_icdmain_csd_yyyymmdd.log

B. 恢复备份数据中的指定表

若从本地文件恢复,使用如下命令:

imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n

commit=y buffer=65536 feedback=100000 ignore=n volsize=0

file=exp_icdmain_cs

d_yyyymmdd.dmp

log=imp_icdmain_csd_yyyymmdd.log

tables=commoninformation,serviceinfo

若从磁带设备恢复,使用如下命令:

imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n

commit=y buffer=65536 feedback=100000 ignore=n volsize=0

file=/dev/rmt0

log=imp_icdmain_csd_yyyymmdd.log

tables=commoninformation,serviceinfo

用户模式

此方式将根据按照用户模式备份的数据进行恢复。

A. 恢复备份数据的全部内容

若从本地文件恢复,使用如下命令:

imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n

commit=y buffer=65536 feedback=100000 ignore=n volsize=0

file=exp_icdmain_yy

yymmdd.dmp

log=imp_icdmain_yyyymmdd.log

若从磁带设备恢复,使用如下命令:

imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n

commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=/dev/rmt0

log=imp_icdmain_yyyymmdd.log

B. 恢复备份数据中的指定表

若从本地文件恢复,使用如下命令:

imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n

commit=y buffer=65536 feedback=100000 ignore=n volsize=0

file=exp_icdmain_yy

yymmdd.dmp

log=imp_icdmain_yyyymmdd.log

tables=commoninformation,serviceinfo

若从磁带设备恢复,使用如下命令:

imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n

commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=/dev/rmt0

log=imp_icdmain_yyyymmdd.log

tables=commoninformation,serviceinfo

完全模式

如果备份方式为完全模式,采用下列恢复方法:

若从本地文件恢复,使用如下命令:

imp system/manager rows=y indexes=n commit=y buffer=65536

feedback=100000 ignore=y volsize=0 full=y

file=exp_icdmain_yyyymmdd.dmp

log=imp_icdmain_yyyymmdd.log

若从磁带设备恢复,使用如下命令:

imp system/manager rows=y indexes=n commit=y buffer=65536

feedback=100000 ignore=y volsize=0 full=y

file=/dev/rmt0

log=imp_icdmain_yyyymmdd.log

参数说明

1. ignore参数

Oracle在恢复数据的过程中,当恢复某个表时,该表已经存在,就要根据ignore参数的设置来决定如何操作。

若ignore=y,Oracle不执行CREATE TABLE语句,直接将数据插入到表中,如果插入的记录违背了约束条件,比如主键约束,则出错的记录不会插入,但合法的记录会添加到表中。

若ignore=n,Oracle不执行CREATE TABLE语句,同时也不会将数据插入到表中,而是忽略该表的错误,继续恢复下一个表。

2. indexes参数

在恢复数据的过程中,若indexes=n,则表上的索引不会被恢复,但是主键对应的唯一索引将无条件恢复,这是为了保证数据的完整性。

字符集转换

对于单字节字符集(例如US7ASCII),恢复时,数据库自动转换为该会话的字符集(NLS_LANG参数);对于多字节字符集(例如ZHS16CGB231280),恢复时,应尽量使字符集相同(避免转换),如果要转换,目标数据库的字符集应是输出数据库字符集的超集。

恢复方法

业务数据库采用表恢复方案。在用IMP进行恢复前,先在SYS用户下运行CATEXP.SQL文件(如果以前已运行该文件,则不要执行这个脚本),然后执行下列命令:

IMP ICDMAIN/ICD FILE=文件名 LOG=LOG文件名 ROWS=Y

COMMIT=Y BUFFER=Y IGNORE=Y TABLES=表名

注:要恢复的表名参照备份的表名

。恢复是在原表基础上累加数据

。没有特殊说明,不允许在客户端执行恢复命令

将一个数据库的某用户的所有表导到另外数据库的一个用户下面的例子

exp userid=system/manager wner=username1 file=expfile.dmp

imp userid=system/manager fromuser=username1 touser=username2 ignore=y file=expfile.dmp

将一个数据库的某用户的所有表导到另外数据库的一个用户下面的例子

exp userid=system/manager wner=username1 file=expfile.dmp

imp userid=system/manager fromuser=username1 touser=username2 ignore=y file=expfile.dmp

ORACLE数据库有两类备份方法。第一类为物理备份,该方法实现数据库的完整恢复,但数据库必须运行在归挡模式下(业务数据库在非归挡模式下运行),且需要极大的外部存储设备,例如磁带库;第二类备份方式为逻辑备份,业务数据库采用此种方式,此方法不需要数据库运行在归挡模式下,不但备份简单,而且可以不需要外部存储设备。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值