一,简介
存活下来的远古级别的导入导出软件exp/imp ,软件多数使用于oracle 9i 之前 到了10g以后基本全面被数据库泵(Data Pump)取代,即expdp/impdp.本文会分别介绍这几款软件使用.
二,exp/imp
1,exp 使用参数说明
--------括号内为默认值------ USERID 用户名/口令 如: USERID=duanl/duanl FULL 导出整个数据库 (N) BUFFER 数据缓冲区的大小 OWNER 所有者用户名列表,你希望导出哪个用户的对象,就用owner=username FILE 输出文件 (EXPDAT.DMP) TABLES 表名列表 ,指定导出的table名称,如:TABLES=table1,table2 COMPRESS 导入一个extent (Y) RECORDLENGTH IO 记录的长度 GRANTS 导出权限 (Y) INCTYPE 增量导出类型 INDEXES 导出索引 (Y) RECORD 跟踪增量导出 (Y) ROWS 导出数据行 (Y) PARFILE 参数文件名,如果你exp的参数很多,可以存成参数文件. CONSTRAINTS 导出约束 (Y) CONSISTENT 交叉表一致性 LOG 屏幕输出的日志文件 STATISTICS 分析对象 (ESTIMATE) DIRECT 直接路径 (N) TRIGGERS 导出触发器 (Y) FEEDBACK 显示每 x 行 (0) 的进度 FILESIZE 各转储文件的最大尺寸 QUERY 选定导出表子集的子句 下列关键字仅用于可传输的表空间 TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N) TABLESPACES 将传输的表空间列表
例:
全库导出:
exp system/123456@oracle01 file=/oradata/back/full.dmp full=y
按用户导出:
exp system/123456 file=/oradata/back/test.dmp owner=kingle
按表导出:
exp system/123456 file=/oradata/back/test.dmp owner=t,t1
2,imp 说明
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 拥有可传输表空间集中数据的用户
例:
全库导入:
imp system/123456@oracle01 file=/oradata/back/full.dmp full=y
按用户导入:
imp system/123456 file=/oradata/back/test.dmp fromuser=kingle touser=kingle
按表导入:
imp system/123456 file=/oradata/back/test.dmp owner=t
二,expdp/impdp(数据泵)
1,数据泵
数据泵(DATA PUMP)是一种在数据库之间或在数据库与操作系统之间高速传输数据的技术。数据泵工具运行在服务器上,数据库管理员需要指定数据库目录来保存转储的数据。
优势:
1. 支持并行处理导入、导出任务 2. 支持暂停和重启动导入、导出任务 3. 支持通过Database Link的方式导出或导入远端数据库中的对象 4. 支持在导入时通过Remap_schema、Remap_datafile、Remap_tablespace几个参数实现导入过程中自动修改对象属主、 数据文件或数据所在表空间。 5. 导入/导出时提供了非常细粒度的对象控制。通过Include、Exclude两个参数,甚至可以详细制定是否包含或不包含某个对象
2,expdp
导出就是数据库的逻辑备份,实质是读取一个数据库记录并将这个记录集写入一个文件(扩展名通常是dmp),这些记录的导出与物理位置无关
实例:
按用户导出:
expdp system/123456 schemas=test dumpfile=/oradata/backup/test.dmp DIRECTORY=dir;
并行进程parallel
expdp system/123456 schemas=test dumpfile=/oradata/backup/test2.dmp DIRECTORY=dir;
按照表名导出:
expdp test/123456 TABLES=t dumpfile=test3.dmp DIRECTORY=dir;
按条件导出:
expdp test directory=dir dumpfile=test4.dmp Tables=t query='WHERE id=1';
按表空间导出:
expdp system/123456 DIRECTORY=dir DUMPFILE=tablespace.dmp TABLESPACES=users;
全库导出:
expdp system/oracle^Cumpfile=full.dump full=y logfile=full.log directory=expdp
3,impdb
导入即数据库的逻辑恢复,实质是读取被导出的二进制转储文件并将其恢复到数据库
导到指定用户:
impdp system/123456 DIRECTORY=dir DUMPFILE=kingle.dmp SCHEMAS=kingle;
导入表空间
impdp system/123456 DIRECTORY=dir DUMPFILE=tablespace.dmp TABLESPACES=users;
导入数据库
impdb system/123456 DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;