oracle数据备份

开始 进入 cmd 控制台
输入 tnsping dbuser 命令 测试是否连接数据库
输入

数据导出:
exp user/password@DBUSER file=d:\DBdata\mesinfo.dmp tables=(mes_itme,mes_wo,mes_wms_material) log=d:\DBdata\meslog.log buffer=409600 命令
user:用户名
password:密码
@DBUSER:数据库名
file:dmp(导出数据文件)存放路径
tables:要导出的数据表
log :日志
buffer:buffer的单位是bytes,例如要设置1M,则是1024000,上面的例子设置的是400M。
根据我们测试的结果,加入buffer参数后,约有40%的性能提升。

======================================
一、基本用法
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中
exp system/manager@TEST file=d:\daochu.dmp full=y

2 将数据库中system用户与sys用户的表导出
exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)
3 将数据库中的表table1 、table2导出
exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2)
4 将数据库中的表table1中的字段filed1以”00”打头的数据导出
exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\” where filed1 like ‘00%’\”

 上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。

不过在上面命令后面 加上 compress=y 就可以了
数据的导入
1 将D:\daochu.dmp 中的数据导入 TEST数据库中。
imp system/manager@TEST file=d:\daochu.dmp
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上 ignore=y 就可以了。
2 将d:\daochu.dmp中的表table1 导入
imp system/manager@TEST file=d:\daochu.dmp tables=(table1)

二、.exp的参数
参数一:buffer
exp userid/passwd@infodb81 file=user_DATE.dmp log=user_DATE.log buffer=4096000000

注意:buffer的单位是bytes,例如要设置1M,则是1024000,上面的例子设置的是400M。
根据我们测试的结果,加入buffer参数后,约有40%的性能提升。

经过反复验证:合理的buffer值是10240000-1024000之间,再大了反而效率更低。
环境:aix 6.1 16c 32G,sga信息如下
SQL> show sga
Total System Global Area 2.0043E+10 bytes
Fixed Size 2153336 bytes
Variable Size 1.3690E+10 bytes
Database Buffers 6174015488 bytes
Redo Buffers 176394240 bytes

性能对比:
加入buffer参数前(数据约9G,共31分钟)
========== 备份用户sinosybak 11-02-21 02:08:16 ====================
========== 备份用户shyang 11-02-21 02:35:49 ====================
加入Buffer参数后(约18分钟)
========== 备份用户sinosybak 11-02-28 02:25:04 ====================
========== 备份用户shyang 11-02-28 02:43:52 ====================

参数二:direct
exp userid/passwd@infodb81 file=user_DATE.dmp log=user_DATE.log direct=y recordlength=65536

direct : 直接导出,数据从磁盘读入到高速缓存,直接写入到最终文件,所以没有数据行检查与匹配的过程。据不权威的评测结果,性能有50%到70%的提升。

同样的环境,实测结果,有70%的性能提升
约70G数据,普通exp模式,未加buffer,约2小时40分
========== 备份用户sinosy 11-02-22 22:30:00 ====================
========== 开始传输sinosy 11-02-23 01:10:39 ====================
exp buffer=102400000,约2小时
========== 备份用户sinosy 11-02-28 22:30:01 ====================
========== 开始传输sinosy 11-03-01 00:39:58 ====================
exp direct模式,约1个小时
========== 备份用户sinosy 11-03-01 22:30:00 ====================
========== 开始传输sinosy 11-03-01 23:05:43 ====================

注意:
1.recordlength参数(IO缓冲大小),与direct参数配对使用,默认该参数为1024bytes,上面的例子为64K(最大值也为64K)。
2.使用direct后,buffer参数失效;
3.使用direct,不支持query子句(没有行匹配的过程),不支持带Blob类型字段的表,但是系统会自动判断、自动切换,也就是说不会因为一张表的问题,导致整个schema不能使用direct备份;
4.direct不支持表空间导出。

参数三:consistent
exp userid/passwd@infodb81 file=user_DATE.dmp log=user_DATE.log consistent=y

consistent : 交叉一致性,用在序列值小于表中最大值的情况。

例如:exp默认情况下,先导出序列,后导出表,如果序列导出之后,表又使用序列插入了新的数据,就会导致数据不一致。

其他参数:
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 将传输的表空间列表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值