日常工作中需要经常使用备份功能,尽管DM8可以设置Job任务,但无法应对工作中多样化的备份场景,如脱机物理备份、联机物理备份、联机逻辑备份和归档备份,同时job任务对于普通的运维人员而言,有一定的学习成本。
本定时备份脚本旨在解决上述痛点,提供多样化的备份方式选择,并贴合实际生产需要,提供定时任务设置,借助于图形化交互界面,使得普通运维人员也能够快速上手。
需要提及的是,本脚本仅是DM8备份job任务的补充,而非替代。
**运行环境:**Linux + perl环境
**备份环境:**基于DM8数据库的 DSC集群、主备集群以及单机环境
可供选择的备份方式包括:联机物理备份、脱机物理备份、联机逻辑备份和归档备份。
除脱机物理备份外,其他备份方式均支持即时、定时备份,包括即时一次备份、即时多次备份、定时一次备份和定时多次备份。
注1:脱机物理备份备份不支持定时备份,均为即时一次备份
注2:多次备份指的是从某时刻开始,每经过一段时间便执行一次备份的执行方式
注3:目前支持的定时间隔为日、周、月
脚本获取: 提取码:08xa
1.上传脚本至待备份数据库服务器上任一dmdba所属目录下,并转换文件格式:
sed -i 's/\r$//' DM8_Auto_Backup.pl
2.添加执行权限:
chmod +x DM8_Auto_Backup.pl
./DM8_Auto_Backup.pl
即时备份情况下,包括即时一次备份、即时多次备份,可通过 tail -f auto_bak.log 查看备份情况,或者查看待备份目录查看备份文件是否生成。
注:auto_bak.log 文件作用请参见7.1小节。
定时备份情况下,如果是定时一次备份,可通过 atq 命令查看目前 at 任务;如果是定时多次备份,通过 crontab -l 查看循环备份任务,查看是否已定时调用 at_cron_时间戳.sql,进一步的可查看【at_cron_时间戳.sql】文件中待调用的文件是否生成。
(1) AT服务:指定在某个时间点执行某个文件
(2)crontab服务:间隔多长时间执行某个文件
当用户确定好备份方式及备份参数后,脚本会将对应的备份命令写入到【at_cron_时间戳.sql】文件中,供定时命令调用。
即时、定时一次备份:通过AT命令设置为基于当前时间或未来某个时间执行一次【at_cron_时间戳.sql】文件。
即时、定时多次备份:通过crontab命令设置为每隔一分钟执行一次【cron_时间戳.file】文件,该文件用来判断是否满足定时备份设置的时间间隔,当满足时便调用一次【at_cron_时间戳.sql】。
首次执行脚本后,会在DM软件安装目录下生成auto_bak.log文件和bak_exc_file子目录。
该文件为备份结果日志文件,存放备份时间、备份时间成功与否、备份结果等信息。
DM软件安装目录下的子目录,用于存放login.sql、login_result.log、arch_status.log等文件。
存放访问数据库信息。
备份数据库时需要事先验证用户所输入的账号密码是否正确,因此将用户输入的信息暂存放至此,验证程序会从该文件中获取登录信息进行验证。
存放验证访问数据库后的信息,与login.sql文件配套使用。
验证程序从login.sql中获取登录信息进行验证,然后将验证后的信息暂存放至此,用于下一步程序判断此次验证是否成功,若不成功,用户还可查看此文件来判断具体失败原因。
存放’select arch_is_valid from v$dm_arch_ini;'查询结果,用于判断待备份数据库是否开启归档。
注:执行联机物理备份、归档备份时使用。
存放备份命令,供at或crontab调用。
用于在循环执行脚本作业任务中,计算间隔时间,crontab任务会每分钟调用该文件,一旦间隔时间满足设定的备份作业调用时间,则调用 at_cron_时间戳.sql 文件。
解决办法:YUM安装
yum insyall at
–启动服务:
systemctl start atd
1.yum search locate
2.yum install mlocate
3.updatedb
4.执行 locate disql 检测是否成果
1.本地下载包文件:
安装包
2**.创建组(否则后面updatedb会报错)**
[root@VM-0-8-centos ~]# groupadd mlocate
3.解压
[root@VM-0-8-centos opt]# xz -d mlocate-0.26.tar.xz
[root@VM-0-8-centos opt]# tar -xvf mlocate-0.26.tar
-- 进入解压后目录:
[root@VM-0-8-centos opt]# cd mlocate-0.26/
-- 执行如下命令:
./configure
make && make install
updatedb
4.执行 locate disql 检测是否成功
文章
阅读量
获赞