增量备份蛮简单的,以前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:[email protected] Blog:http://blog.csdn.net/xcl168