[ORACLE] oracle table export exp/imp
10g以前:exp/imp
10g以后: expdp/impdp,可以通过使用并行,从而在效率上要比exp/imp要高,
作用:
- 小型数据库存的转储备份
- 表空间的迁移
- 表的抽取
- 检测逻辑和物理冲突
exp -help
imp -help
三种方式:
- 完全模式,要有特殊权限,备份完整数据库 exp system/oracle buffer=65536 feedback=100000 full=y file=exp.dmp log=exp.log
- 用户方模式 exp system/oracle owner=abc buffer=65536 feedback=100000 file=exp.dmp log=exp.log
- 表模式 exp system/oracle buffer=65536 feedback=100000 file=exp.dmp log=exp.log tables=tab1,tab2,tab3
IMP导入
import 要与export 对应,也有三种模式,表恢复,用户恢复,完全恢复
- 完全 imp system/oracle commit=y buffer=65536 feedback=100000 ignore=y full=y file=exp.dmp log=imp.log
- 用户模式 imp abc/abc fromuser=imp touser=imp commit=y buffer=65536 feedback=100000 ignore=y file=exp.dmp log=imp.log
- 也可以指定备份数据中指定的表 imp abc/abc fromuser=imp touser=imp commit=y buffer=65536 feedback=100000 ignore=y file=exp.dmp log=imp.log tables=t1,t2,t3
oracle 10g 引入Data Dump 技术,数据泵的作用
1.实现逻辑备份和逻辑恢复
2.在数据库用户之间移动对象
3.在数据库之间移动对象
4.实现表空间搬移
expdp -help
impdp -help
使用exp之前,必须要建立directory 对象,并且需要为数据库用户授予使用directory对象权限
- 导出表 expdp abc/abc directory=dump_dir dumpfile=tab.dmp tables=depe,emp logfile=exp.log
- 导出(用户) expdp abc/abc directory=dump_dir dumpfile=schema.dmp schemas=system,abc logfile=exp.log
- 导出表空间 expdp abc/abc directory=dump_dir dumpfile=tablespace.dmp tablespaces=user01,user02 logfile=exp.log
- 导出数据库 expdp system/manager directory=dump_dir dumpfile=full.dmp full=y logfile=exp.log
- 5导出查询条件 expdp abc/abc@db_name directory=dump_dir dumpfile=expdb.dmp tables=emp query='where deptno=10' logfile=exp.log
使用impdp之前,必须要建立directory 对象,并且需要为数据库用户授予使用directory对象权限
导出表impdp abc/abc directory=dump_dir dumpfile=tab.dmp tables=depe,emp logfile=impdp.log
导出(用户)impdp abc/abc directory=dump_dir dumpfile=schema.dmp schemas=system,abc logfile=impdp.log
导出表空间impdp abc/abc directory=dump_dir dumpfile=tablespace.dmp tablespaces=user01,user02 logfile=impdp.log
导出数据库impdp system/manager directory=dump_dir dumpfile=full.dmp full=y logfile=impdp.log
导出查询条件 impdp abc/abc@db_name directory=dump_dir dumpfile=expdb.dmp tables=emp query='where deptno=10' logfile=impdp.log
SQL*Loader一种数据加载工具,比较适合业务分析类型数据库,能处理多种格式的平面文件,比传统的数据插入效率更高.
加载方式:
- 传统路经(direct=false) 等同于insert INSERT INTO TABLE PARTITION(P) VALUES...
- 直接加载(direct=true) 性能比传统路经加载更高,但限制也更多 LOAD INTO TABLE PARTITION (P) VALUES...
- 外部表加载(较少用) 先为数据文件上创建一个外部表,然后再把数据从外部表INSERT到目标表中
sample :
exp USERID=scott/tiger TABLES=(scott.emp,scott.sales) FILE=/tmp/exp_tab.dmp
imp c##sapr3/12345678 file=/oracle/test.dmp full=y ignore=y;
小注:
在DB OS用户下运行
imp USERID=scott/tiger from user=user1 touser=user2 file=file commit=y feedback=10000 buffer=10240000 ignore=y rows=y indexes=n
先导数据rows=y indexes=n,再导索引rows=n indexes=y
- 分段式提交
- 设置缓冲
- 先导数据再导索引