(02)逻辑备份恢复(exp/imp)与磁带

        增量备份蛮简单的,以前7,8i,9i的常备啊。 我从Oracle 7.3.4就开始用,感情蛮深的。 就是数据库越来越大,emp/imp有点吃不消了。但它还是有用武之地的,比如在跨平台迁移和数据库升级时就很有用,只是用点慢。 再就是用这个数据库的字符集要一致,别搞出乱码来。
我在这列下备份恢复到本地文件和磁带上怎么做,再就是附了个脚本。

(一) 备份
直接备份到本地磁盘,并复制到远程备份服务器上的脚本
xcl_exp.sh
 #!/bin/sh
##author:xiongchuanliang
fn=`date +"%y_%m_%d_%H_%M"`
su - oracle -c "exp system/manager full=y ignore=y file=/xcl_exp_bak/orcl_${fn}.dmp log=/xcl_exp_bak/orcl_${fn}.log "
rcp /xcl_exp_bak/* 172.18.1.8:/orabk/orcl/
在这用的rcp,有需要时,改成ftp也可以。

直接备份到磁带:
  exp system/manager full=y buffer=65536 feedback=100000 volsize=0 file=/dev/rmt0 log=/xcl_exp_bak/exp_orcl.log
  推荐通过exp导出到文件,再把文件复制到磁带的方法。原因你看我后面附的关于磁带部份的说明就会明白了。

  导出指定用户:
     exp system/manager owner=xcl buffer=65536 feedback=100000  file= /xcl_exp_bak/exp_orcl_xcl.dmp log=/xcl_exp_bak/exp_orcl.log

(二)恢复
  从本地文件恢复:
    imp system/manager  buffer=65536 feedback=100000 ignore=y  full=y file=orcl_ xxxx.dmp log=imp_orcl_ xxxx .log

   导入指定用户:
     imp system/manager  buffer=65536 feedback=100000 ignore=y  fromuser= xcl  touser= xcl  file=orcl_ xxxx.dmp log=imp_orcl_ xxxx .log

  若从磁带设备恢复
    imp system/manager  buffer=65536 feedback=100000 ignore=y volsize=0 full=y file=/dev/rmt0   log=imp_orcl_ xxxx .log
   
逻辑备份也有增差量:
   1. 完全增量导出
      inctype=complete
   2.增量导出
      inctype=incremental
   3.累积型导出
      inctype=cumulative

   对于增量备份的恢复
      inctype=RESTORE

(三)exp和imp的一些参数:
volsize 每个磁带文件卷的文件字节数 
feedback
每 x 行显示进度(0)
filesize
指定存储文件的最大尺寸,如果不指定则所有对象和数据会放到一个导出文件中
tables
表名列表
rows
导出数据行(y)
constraints
导出的约束条件(y)
indexes
导出索引(y)
triggers
导出触发器(y)
record
跟踪增量导出(y)
grants
导出权限(y)
full
导出整个文件 (n)
当y时,会导出除sys外所有其他方案的对象,但需要exp_full_database或dba角色
buffer[l1]
数据缓冲区大小,单位字节
只有常规导出时生效
ignore:
若ignore=y,Oracle不执行CREATE TABLE语句,直接将数据插入到表中,如果插入的记录违背了约束条件,比如主键约束,则出错的记录不会插入,但合法的记录会添加到表中。
若ignore=n,Oracle不执行CREATE TABLE语句,同时也不会将数据插入到表中,而是忽略该表的错误,继续恢复下一个表。

(四)关于磁带的一些操作: 
1. 查看主机上的磁带设备
   lsdev -Cc tape
   如有显示Available的设备,就是可用的,通常为rmt0
2.查看磁带存储的内容
   tar -tvf /dev/rmt0
3. 写入磁带
   对于新磁带或可以不保留原有数据的磁带,可以用下面命令备份
   -- 文件名不要包含路径信息
  tar -cvf /dev/rmt0 xcl_exp_orcl.dmp 
   对于要保留原有数据的, tar -rvf 追加到磁带即可
  --注意,从数据为直接备份到磁带的,就不能再追加了。
  tar -rvf /dev/rmt0 xcl_exp_orcl.dmp
4. 将磁带上的备份复制到本地
  全复制出来
   tar -xvf /dev/rmt0
  如只复制指定的文件
   tar -xvf /dev/rmt0 xcl_exp_orcl.dmp

还有很多细节功能就不说了。具体看帮助去。呵呵。

MAIL:xcl_168@aliyun.com
Blog:http://blog.csdn.net/xcl168
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值