exp,imp(oracle)

 
Oracle 数据库有三种标准的备份方法,它们分别是导出/导入( EXP/IMP )、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。
Expdp impdp
参数说明:
Cmd 下键入 exp help=y
   exp:     
1 FULL ,这个用于导出整个数据库,在 ROWS=N =Y 的时候会把数据导出)一起使用时,可以导出整个数据库的结构。
例如: exp system/password file=./db_str.dmp log=./db_str.log full=y rows=n compress=y direct=y
2 BUFFER FEEDBACK ,在导出比较多的数据时,我会考虑设置这两个参数。例如:
exp system/liuyi2002 file=yw97_2003.dmp log=yw97_2003_3.log feedback=10000 buffer=100000000  tables=WO4,OK_YT
    3 FILE LOG ,这两个参数分别指定备份的 DMP 名称和 LOG 名称,包括文件名和目录。
需要说明的是, EXP 可以直接备份到磁带中,即使用 FILE=/dev/rmt0( 磁带设备名 ) ,但是一般我们都不这么做,原因有二:
一、这样做的速度会慢很多,
二、现在一般都是使用磁带库的,不建议直接对磁带进行操作。至于
没有使用磁带库的朋友可以考虑和 UNIX TAR 结合使用。
    4 COMPRESS 参数将在导出的同时合并碎块,尽量把数据压缩到 initial EXTENT 里,默认是 N ,一般建议使用。 DIRECT 参数将告诉 EXP 直接读取数据,而不像传统的 EXP 那样,使用 SELECT 来读取表中的数据,这样就减少了 SQL 语句处理过程。一般也建议使用。不过有些情况下 DIRECT 参数是无法使用的。
    5 QUERY 参数后面跟的是 where 条件,值得注意的是,整个 where 子句需要使用 "" 括起来, where 子句的写法和 SELECT 中相同
 exp system/liuyi2002 file=1.dmp log=1.log tables=test query="where c1=20 and c2=gototop"
      6 OBJECT_CONSISTENT - 用于设置 EXP 对象为只读以保持对象的一致性。默认是 N
    7 FLASHBACK_SCN FLASHBACK_TIME - 用于支持 FLASHBACK 功能而新增。
    8 RESUMABLE RESUMABLE_NAME RESUMABLE_TIMEOUT - 用于支持 RESUMABLE 空间分配而新增。
    9 TTS_FULL_CHECK - 用于在传输表空间时使用依赖性检查。
    10 TEMPLATE - 用于支持 iAS
    11 TABLESPACES - 设置表空间导出模式。个人觉得对于一般用户而言,这个才是新增参数中最实用的一个,可以让用户在原来的 FULL OWNER TABLES 的基础上多了一种选择,使得 EXP 更加灵活。
   imp:
    1 FROMUSER TOUSER ,使用它们实现将数据从一个 SCHEMA 中导入到另外一个 SCHEMA 中。
    2 IGNORE GRANTS INDEXES ,其中 IGNORE 参数将忽略表的存在,继续导入,这个对于需要调整表的存储参数时很有用,我们可以先根据实际情况用合理的存储参数建好表,然后直接导入数据。而 GRANTS INDEXES 则表示是否导入授权和索引,如果想使用新的存储参数重建索引,或者为了加快到入速度,我们可以考虑将 INDEXES 设为 N ,而 GRANTS 一般都是 Y
另外一个 EXP/IMP 都有的参数是 PARFILE ,它是用来定义 EXP/IMP 的参数文件,也就是说,上面的参数都可以写在一个参数文件中,但我们一般很少使用。
详细说明
一、 导出/导入( Export Import )利用 Export 可将数据从数据库中提取出来,利用 Import 则可将提取出来的数据送回到 Oracle 数据库中去。
1、简单导出数据( Export )和导入数据( Import
Oracle 支持三种方式类型的输出:
(1)、表方式( T 方式),将指定表的数据导出。
表模式备份某个用户模式下指定的对象(表)。业务数据库通常采用这种备份方式。
  若备份到本地文件,使用如下命令:
   exp icdmain/icd rows=y indexes=n compress=n buffer=65536
   feedback=100000 volsize=0
   file=d:/exp.dmp
   log=d:/exp.log
   tables=test1,test2
  若直接备份到磁带设备,使用如下命令 (UNIX)
   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
  注:在磁盘空间允许的情况下,应先备份到本地服务器,然后再拷贝到磁带。出于速度方面的考虑,尽量不要直接备份到磁带设备。
(2)、用户方式( U 方式),将指定用户的所有对象及数据导出。
  用户模式
  备份某个用户模式下的所有对象。业务数据库通常采用这种备份方式。
  若备份到本地文件,使用如下命令:
   exp system/password owner=test 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 owner=icdmain rows=y indexes=n compress=n buffer=65536
   feedback=100000 volsize=0
   file=/dev/rmt0
   log=exp_icdmain_yyyymmdd.log
  注:如果磁盘有空间,建议备份到磁盘,然后再拷贝到磁带。如果数据库数据量较小,可采用这种办法备份。
(3)、全库方式( Full 方式),将数据库中的所有对象导出。
  完全模式
  备份完整的数据库。业务数据库不采用这种备份方式。备份命令为:
   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
数据导入( Import )的过程是数据导出( Export )的逆过程,分别将数据文件导入数据库和将数据库数据导出到数据文件。
2、 增量导出/导入
增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为 SYSTEM 来导出。
在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为 export.dmp ,如果不希望自己的输出文件定名
export.dmp ,必须在命令行中指出要用的文件名。
增量导出包括三种类型:
(1)、“完全”增量导出( Complete 即备份三个数据库,比如: [table=400][tr][td][pre]exp
system/manager inctype=complete file=040731.dmp[/pre][/td][/tr][/table]
(2)、“增量型”增量导出备份上一次备份后改变的数据,比如: [table=400][tr][td][pre]exp
system/manager inctype=incremental file=040731.dmp[/pre][/td][/tr][/table]
(3)、“累积型”增量导出累计型导出方式是导出自上次“完全”导出之后数据库中变化了的信息。比如:
exp system/manager inctype=cumulative file=040731.dmp
-- 备注
1. 必须在 open 模式下
2. 坏块的处理:
可以 ALTER SYSTEM SET EVENTS='10231 trace name context forever,level 10' ;
再执行 exp
完成后关闭 10231
alter system set events='10231 trace name context off';
3 .一般来说,从低版本导入到高版本问题不大,麻烦的是将高版本的数据导入到低版本中,在 Oracle9i 之前,不同版本 Oracle 之间的 EXP/IMP 可以通过下面的方法来解决:
    1 、在高版本数据库上运行底版本的 catexp.sql
    2 、使用低版本的 EXP 来导出高版本的数据;
    3 、使用低版本的 IMP 将数据库导入到底版本数据库中;
    4 、在高版本数据库上重新运行高版本的 catexp.sql 脚本。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值