数据库备份健康检查

备份策略

DM 数据库支持全量备份和增量备份,备份方式包括 V1.0到 V2.0,数据服务器对备份版本的支持可通过 dm.ini 参数 BAK_POLICY 来定义。

值为 1 时只能使用 V1.0 版本,为 2 表示只支持 V2.0,为 0 表示同时支持 V1.0 和 V2.0 版本;默认为0。

备份 V1.0 是由数据库进程 dmserver 自身去做,备份 V2.0 使用独立的 dmap 进程来负责,备份效率有巨大提升。建议优先使用备份 V2.0

备份空间划定

如果是单实例或者是 Data Watch 集群,备份文件可保留在服务器本地的文件系统中,如果是 DMDSC 集群可保留在本地,或者 ASM 磁盘中。

不论是何种数据库架构,我们建议备份文件存放在服务器节点的本地文件系统中。并单独划分磁盘空间保存,空间建议最少可保存一个周期的完整备份。

定时备份任务

通常情况下,生产系统都需要制定定时备份任务,备份时间点建议避开业务高峰期。每次备份的时间间隔,需要根据间隔时间段内生成归档量来判断,请务必保证两次备份间隔时间的归档能完整保存,否则会导致备份失败。

在归档空间充足的条件下,数据量在 100 GB~2 TB 的数据库系统,建议采用每周全备一次,每天增量备份一次的定时备份调度策略,并在备份时选择同时备份日志文件。检查定时任务的方式如下:

  • 查看数据库是否开启代理

通过管理工具查看,代理环境状态。

未开启代理环境如下所示:

db_bak_chk_01

已开启代理环境如下所示:

db_bak_chk_02

  • 检查是否创建了定时备份的任务

在代理中选择【作业】-选择【相关作业】-右键【修改】,如下图所示:

db_bak_chk_03

db_bak_chk_04

这样就表明数据库中有备份定时任务。

定时删除备份任务

为了确保备份空间能循环使用,建议制定定时删除备份任务。

确认是否创建了定时删除备份的任务,在代理中选择【作业】-选择【相关作业】-右键【修改】,如下图所示:

db_bak_chk_05

db_bak_chk_06

检查备份目录是否还存在过期备份,查询数据库的备份目录,语句如下所示:

Select * from v$dm_ini where para_name=’ BAK_PATH’;

db_bak_chk_07

检查里面的备份文件,如下图所示:

db_bak_chk_08

如果没有超过7天的备份,表示定期删除过期备份任务正常。

备份检查

备份成功与否,非常关键,也是数据库管理员每日需要关注的事情。建议定期巡检备份情况

备份 V1.0 校验

使用校验函数 SF_BAK_FILE_CHECK 进行校验,语句如下所示:

select SF_BAK_FILE_CHECK('绝对路径/备份名字'); --查询结果为 1,表示备份正常。

备份 V2.0 校验

CHECK BACKUPSET...命令用于校验特定备份集,每次只能检验一个备份集,如下图所示:

db_bak_wzc_01

若备份集在默认备份路径下,可指定相对路径校验备份集,如下图所示:

db_bak_wzc_02

定时任务执行检查

使用 manager 管理工具-【代理】-【作业】-选择【备份任务】-右键【查看作业历史信息】,即可看到备份任务的执行情况,如下图所示:

db_bak_chk_09

db_bak_chk_10

db_bak_chk_11

备份日志检查

通过备份日志和 DMAP 日志,可以获得备份任务执行情况,详细请参考运行日志健康检查章节。

微信扫码
分享文档
扫一扫
联系客服