加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

使用perl 实现 oracle数据库用户自动备份脚本

发布时间:2020-12-16 00:29:07 所属栏目:大数据 来源:网络整理
导读:公司的oracle数据库使用 Commval软件进行物理备份,这个东西看起来挺高级的,不过我一次也没有用它进行恢复过。实际生产过程中,经常会遇到开发人员找到我说,他要某年某月某张的表数据,甚至是一年前的数据,让我从备份中去取出来给他们。我每次听到这种话

公司的oracle数据库使用 Commval软件进行物理备份,这个东西看起来挺高级的,不过我一次也没有用它进行恢复过。实际生产过程中,经常会遇到开发人员找到我说,他要某年某月某张的表数据,甚至是一年前的数据,让我从备份中去取出来给他们。我每次听到这种话,脑袋就大,理论上实现起来很容易,全备+归档。可实际情况是,要恢复我往哪里恢复? 往生产的机器恢复肯定是不行的,除非再买台小机和存储。就算有了设备Commval能不能进行异地恢复还是一回事。另外Commval的备份空间是有许可的,现在数据库做一次全备近500G,归档日志平均每天生成10G左右,也根本没有那么多空间保存一年多。因此我就用exp命令进行备份。


一开始,我用exp进行用户导出。但有一个问题,导出的文件将近100G,即使压缩后也有30G,如果保存每天的数据,一个月就得消耗1T的磁盘。并且恢复起来也相当麻烦,30G的文件解压缩出来,要花6个小时。导入数据库的时间则更长需要十几个小时。后来,我进行研究,发现有许多表不是每天都变化的,而且有些表只要一个月备份一次就可了。于是我就用perl写了一个脚本,用exp对每张表进行单独导出,如果表的记录数与最后一次导出没有发生变化,则不进行导出。每月月初进行一次全部导出。


导出的脚本见 我上传的资源。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读