在创建定时备份作业前需确认开启归档
确认dmap服务已启动:ps -ef|grep dmap
命令行创建定时备份作业
管理工具固然操作简单便捷,但在一些时候我们没有管理工具可用又需要创建定时备份,这时候就懵逼了....
创建定时备份策略的语句很容易查到,但我的亲身经历告诉你直接输入语句会报错。
创建每周日1:30全备,周一到周六2:30增备,每天0:30删除15前备份
以下是语句和你平常搜到的大同小异:
每周日1:30全备
call SP_CREATE_JOB('full_bak',1,0,'',0,0,'',0,'full_bak');
call SP_JOB_CONFIG_START('full_bak');
call SP_ADD_JOB_STEP('full_bak', 'full_bak', 6, '01000000/opt/dmbak', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('full_bak', 'full_bak', 1, 2, 1, 1, 0, '01:30:00', NULL, '2021-03-01 18:50:53', NULL, '');
call SP_JOB_CONFIG_COMMIT('full_bak');
周一到周六2:30增备
call SP_CREATE_JOB('intr_bak',1,0,'',0,0,'',0,'intr_bak');
call SP_JOB_CONFIG_START('intr_bak');
call SP_ADD_JOB_STEP('intr_bak', 'intr_bak', 6, '11000000/opt/dmbak|/opt/dmbak', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('intr_bak', 'intr_bak', 1, 2, 1, 126, 0, '02:30:00', NULL, '2021-03-01 18:56:23', NULL, '');
call SP_JOB_CONFIG_COMMIT('intr_bak');
每天0:30删除15前备份
call SP_CREATE_JOB('del_bak',1,0,'',0,0,'',0,'del_bak');
call SP_JOB_CONFIG_START('del_bak');
call SP_ADD_JOB_STEP('del_bak', 'del_bak', 0, 'SF_BAKSET_BACKUP_DIR_ADD (''DISK'',''/opt/dmbak'');
SP_DB_BAKSET_REMOVE_BATCH (''DISK'',SYSDATE=7);', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('del_bak', 'del_bak', 1, 1, 1, 0, 0, '00:30:00', NULL, '2021-03-01 19:03:01', NULL, '');
call SP_JOB_CONFIG_COMMIT('del_bak');
一般可能登录disql就直接执行语句
报错:显示没有该模式,这是因为没有代理环境。
就像图像化工具在创建定时作业之前需要创建代理环境
命令行也需要创建,创建命令为
SP_INIT_JOB_SYS(1); 创建代理环境
再次执行创建定时全备策略
剩下的语句依次执行一般不会出现问题。
图形化工具创建定时备份作业
图形化就比较简单了,点点点就好了,但也有一些需要注意的点
首先就是右键创建代理环境
每周日1:30全备
右键新建作业
作业名称,作业描述均可自定义
作业步骤——>添加
步骤类型一定要选基于备份集备份数据
作业调度——>添加
确定——>确定,新建定时全备完成。
周一到周六2:30增备
右键新建作业
作业步骤——>添加
这里需要注意基备份目录只用选到全备存放的目录就可以,不用指定一个具体的全备文件,如果指定到一个具体的全备文件,增量备份就只会基于这一个全备文件进行增量备份;如果选的是全备目录,数据库会在最近一次全备的基础上进行增备。
作业调度——>添加
确定——>确定,新建定时增备完成
每天定时删除15天前的备份
这里需要用到脚本语句
至此定时作业创建完成。