本帖最后由 justgonnab 于 2018-3-8 17:31 编辑
做过的项目基本都离不开数据存储、数据库,所以大部分客户都建议部署备份系统,比如:备份一体机(LANBASED、SERVERBASED、LANFREE等等)、虚拟带库、磁带库等等。
可能大家项目上用的比较的多的就是LANBASED备份一体机,也就是基于局域网来备份数据,一般用户数据量不大全量备份也就几十G左右吧,备份一体机可以指定每天的备份方式,如:三天一次全量备份,其余每天增量备份。功能的可选择性是比较多的。
但是总有一些不听话的厂家,为了牟取“不正当”利润(比如:某三),合同采购的时候有但是实施的时候却部署一套试用60天的版本来糊弄人(因为软件基本全英文)。面对这种做法实在忍无可忍,所以自己想办法自己来备份数据。
刚好有一台闲置的2路服务器,既然闲着也是闲着,不如利用起来做个备份服务器。那么怎么来实现就需要考虑考虑了。
bat脚本是Windows系统上常用的脚本,编写也非常简单,可以实现简单的命令操作,如:复制粘贴、以日期格式命名文件等等。这样强大的“装13”利器配上另一个系统自带工具就可以飞起了! 那就是——任务计划程序!
好了,设计方案有了,开始实现了。一顿百度balabalabala…… 好了!
举个栗子:备份Oracle数据库的数据,并且以日期的格式来命名log日志和dmp文件名称。代码如下:
- rem 设置bat脚本命名文件的日期格式
- set data=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%
- rem 如果时间只有一位数则在其前面添加“0”,否则不添加;因为如果忽略这个问题会导致脚本执行失败
- if "%time:~0,2%" lss "10" (set hh=0%time:~1,1%) else (set hh=%time:~0,2%)
- rem 设置bat脚本命名文件的时间格式
- set time=%hh%%time:~3,2%%time:~6,2%
- rem 执行exp导出dmp命令,并指定备份路径以及文件名格式
- exp 用户名/密码@SID file=路径\数据库备份_%data%%time%.dmp full=y log=路径\数据备份log_%data%%time%.txt
复制代码
将代码保存到txt文件后,把后缀改为bat即可。 可以在编写完毕后执行一下进行测试,看是否能够成功实现数据导出的目的。如果最后发现dmp包和log日志都生成了,查看log最后显示导出成功就表示没问题了!
接下来将此bat脚本添加到任务计划程序中:
每天3点自动执行,当然也可以配置更为个性化的计划任务,希望这个分享能够对大家有所帮助! |