达梦数据库手工作业备份的方法

本文详细介绍了在达梦数据库中如何通过定时任务实现全量与增量备份,以及定期清理旧备份和归档日志的过程。具体步骤包括创建定时作业、配置作业参数、设置作业调度等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

–开启定时任务进行定时备份和定时删除
SP_INIT_JOB_SYS(1); --开启代理作业

–※定时备份中的路径设置为备份路径,要保持和数据目录不同,同时dm.ini参数中BAK_PATH必须和定时备份路径一致,不一致将导致定时删除备份会失败

–定时每周六运行,进行全量备份
–call SP_DROP_JOB(‘JOB_FULL_BAK_TIMELY’);
call SP_CREATE_JOB(‘JOB_FULL_BAK_TIMELY’,1,0,’’,0,0,’’,0,‘定时全量备份’);
call SP_JOB_CONFIG_START(‘JOB_FULL_BAK_TIMELY’);
call SP_ADD_JOB_STEP(‘JOB_FULL_BAK_TIMELY’, ‘STEP_FULL_BAK’, 5, ‘01000C:\DMDBMS\DATA\BAK’, 1, 2, 0, 0, NULL, 0); --BAK1备份
–call SP_ADD_JOB_STEP(‘JOB_FULL_BAK_TIMELY’, ‘STEP_FULL_BAK’, 6, ‘01001000C:\DMDBMS\DATA\BAK’, 1, 2, 0, 0, NULL, 0); --BAK2备份,备份集方式备份
–call SP_ADD_JOB_STEP(‘JOB_FULL_BAK_TIMELY’, ‘STEP_FULL_BAK’, 5, ‘01000/opt/dmdbms/data/bak’, 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE(‘JOB_FULL_BAK_TIMELY’, ‘SCHEDULE_FULL_BAK’, 1, 2, 1, 64, 0, ‘00:05:56’, NULL, ‘2020-03-20 21:05:57’, NULL, ‘’);
call SP_JOB_CONFIG_COMMIT(‘JOB_FULL_BAK_TIMELY’);

–定时每天运行,进行增量备份(晚上,周六除外)
–call SP_DROP_JOB(‘JOB_INCREMENT_BAK_TIMELY_NIGHT’);
call SP_CREATE_JOB(‘JOB_INCREMENT_BAK_TIMELY_NIGHT’,1,0,’’,0,0,’’,0,‘定时增量备份’);
call SP_JOB_CONFIG_START(‘JOB_INCREMENT_BAK_TIMELY_NIGHT’);
call SP_ADD_JOB_STEP(‘JOB_INCREMENT_BAK_TIMELY_NIGHT’, ‘STEP_INCREMENT_BAK’, 5, ‘11000C:\DMDBMS\DATA\BAK|C:\DMDBMS\DATA\BAK’, 1, 2, 0, 0, NULL, 0); --BAK1备份
–call SP_ADD_JOB_STEP(‘JOB_INCREMENT_BAK_TIMELY_NIGHT’, ‘STEP_INCREMENT_BAK’, 6, ‘11001000C:\dmdbms\data\BAK|C:\DMDBMS\DATA\BAK’, 1, 2, 0, 0, NULL, 0); --BAK2备份,备份集方式备份
–call SP_ADD_JOB_STEP(‘JOB_INCREMENT_BAK_TIMELY_NIGHT’, ‘STEP_INCREMENT_BAK’, 5, ‘11000/opt/dmdbms/data/bak|/opt/dmdbms/data/bak’, 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE(‘JOB_INCREMENT_BAK_TIMELY_NIGHT’, ‘SCHEDULE_INCREMENT_BAK’, 1, 2, 1, 63, 0, ‘01:05:56’, NULL, ‘2020-03-20 21:05:57’, NULL, ‘’);
call SP_JOB_CONFIG_COMMIT(‘JOB_INCREMENT_BAK_TIMELY_NIGHT’);

–定时每天运行,进行增量备份(白天)
–call SP_DROP_JOB(‘JOB_INCREMENT_BAK_TIMELY_DAY’);
call SP_CREATE_JOB(‘JOB_INCREMENT_BAK_TIMELY_DAY’,1,0,’’,0,0,’’,0,‘定时增量备份’);
call SP_JOB_CONFIG_START(‘JOB_INCREMENT_BAK_TIMELY_DAY’);
call SP_ADD_JOB_STEP(‘JOB_INCREMENT_BAK_TIMELY_DAY’, ‘STEP_INCREMENT_BAK’, 5, ‘11000C:\DMDBMS\DATA\BAK|C:\DMDBMS\DATA\BAK’, 1, 2, 0, 0, NULL, 0);
–call SP_ADD_JOB_STEP(‘JOB_INCREMENT_BAK_TIMELY_DAY’, ‘STEP_INCREMENT_BAK’, 6, ‘11001000C:\dmdbms\data\BAK|C:\DMDBMS\DATA\BAK’, 1, 2, 0, 0, NULL, 0); --BAK2备份,备份集方式备份
–call SP_ADD_JOB_STEP(‘JOB_INCREMENT_BAK_TIMELY_DAY’, ‘STEP_INCREMENT_BAK’, 5, ‘11000/opt/dmdbms/data/bak|/opt/dmdbms/data/bak’, 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE(‘JOB_INCREMENT_BAK_TIMELY_DAY’, ‘SCHEDULE_INCREMENT_BAK’, 1, 1, 1, 0, 0, ‘12:05:56’, NULL, ‘2020-03-20 21:05:57’, NULL, ‘’);
call SP_JOB_CONFIG_COMMIT(‘JOB_INCREMENT_BAK_TIMELY_DAY’);

–定时每周日运行,删除前30天的备份,包括全量和增量
–call SP_DROP_JOB(‘JOB_DEL_BAK_TIMELY’);
call SP_CREATE_JOB(‘JOB_DEL_BAK_TIMELY’,1,0,’’,0,0,’’,0,‘定时删除备份’);
call SP_JOB_CONFIG_START(‘JOB_DEL_BAK_TIMELY’);
call SP_ADD_JOB_STEP(‘JOB_DEL_BAK_TIMELY’, ‘STEP_DEL_BAK’, 0, ‘SP_BATCH_DEL_BAK(’‘DAMENG’’, ‘’’’, 1, sysdate-30, -1);’, 1, 2, 0, 0, NULL, 0); --BAK1备份
–call SP_ADD_JOB_STEP(‘JOB_DEL_BAK_TIMELY’, ‘STEP_DEL_BAK’, 0, ‘SP_DB_BAKSET_REMOVE_BATCH(NULL,SYSDATE-30);’, 1, 2, 0, 0, NULL, 0); --BAK2备份,备份集方式的备份
call SP_ADD_JOB_SCHEDULE(‘JOB_DEL_BAK_TIMELY’, ‘SCHEDULE_DEL_BAK’, 1, 2, 1, 1, 0, ‘00:05:56’, NULL, ‘2020-03-20 21:05:57’, NULL, ‘’);
call SP_JOB_CONFIG_COMMIT(‘JOB_DEL_BAK_TIMELY’);

–定时每周日运行,删除前30天的归档日志
–call SP_DROP_JOB(‘JOB_DEL_ARCH_TIMELY’);
call SP_CREATE_JOB(‘JOB_DEL_ARCH_TIMELY’,1,0,’’,0,0,’’,0,‘定时删除备份’);
call SP_JOB_CONFIG_START(‘JOB_DEL_ARCH_TIMELY’);
call SP_ADD_JOB_STEP(‘JOB_DEL_ARCH_TIMELY’, ‘STEP_DEL_ARCH’, 0, ‘SF_ARCHIVELOG_DELETE_BEFORE_TIME(SYSDATE - 30);’, 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE(‘JOB_DEL_ARCH_TIMELY’, ‘SCHEDULE_DEL_ARCH’, 1, 2, 1, 1, 0, ‘00:05:56’, NULL, ‘2020-03-20 21:05:57’, NULL, ‘’);
call SP_JOB_CONFIG_COMMIT(‘JOB_DEL_ARCH_TIMELY’);

### 达梦数据库主备配置方法及常见问题 达梦数据库的主备配置是实现高可用性和数据冗余的重要手段。以下是关于达梦数据库主备配置的方法以及可能遇到的常见问题的详细说明。 #### 1. 主备配置的基本步骤 主备配置的核心目标是确保主库和备库之间的数据一致性。以下是配置的主要步骤: - **关闭数据库并进行脱机备份** 在初始搭建环境下,需要对主库进行脱机备份,并将备份文件拷贝到备库所在机器上[^2]。 ```bash ./dmrman CTLSTMT="BACKUP DATABASE '/home/dmdba/dmdbms/data/DAMENG/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET '/home/dmdba/dmdbms/data/BACKUP_FILE_01'" ``` - **初始化备库** 在备库上使用脱机备份文件进行还原,确保备库的数据与主库一致[^2]。 - **以Mount方式启动数据库实例** 必须以Mount方式启动数据库实例,否则系统启动时会重构回滚表空间,生成Redo日志,破坏主备库的数据一致性[^1]。 ```bash /dm/bin/dmserver /dm/data/dmdb/dm.ini mount ``` - **设置OGUID值** 在主库的`bin`文件夹下执行`DISQL`命令行工具,并设置OGUID值,该值应与`dmwatcher.ini`中`INST_OGUID`的值相同[^3]。 ```sql SQL> sp_set_oguid(453331); ``` - **修改数据库模式为Primary** 使用以下SQL语句将主库设置为Primary模式: ```sql SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); SQL> alter database primary; SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0); ``` - **启动备库** 以Mount方式启动备库后,守护进程会自动Open数据库[^1]。 #### 2. 常见问题及解决方法 - **问题1:启动备库时报错“未初始化数据库”** 解决方法:确保在启动备库前已完成初始化操作,并使用正确的`dm.ini`文件路径[^2]。 - **问题2:主备库数据不一致** 解决方法:检查是否以Mount方式启动了数据库实例,避免因不当启动导致的回滚表空间重构[^1]。 - **问题3:OGUID值不匹配** 解决方法:确保主库和备库的OGUID值一致,且与`dmwatcher.ini`中的`INST_OGUID`值相同[^3]。 - **问题4:主库无法切换为Primary模式** 解决方法:检查`SP_SET_PARA_VALUE`的参数设置是否正确,确保允许手工修改服务器模式后再执行切换操作[^1]。 #### 3. 注意事项 - 在主备配置过程中,务必确保网络连接稳定,避免因网络中断导致的数据同步失败。 - 配置完成后,建议定期测试主备切换功能,确保高可用性方案的有效性。 ```python # 示例代码:检查OGUID值是否一致 def check_oguid(primary_oguid, standby_oguid): if primary_oguid == standby_oguid: return "OGUID值一致" else: return "OGUID值不一致,请检查配置" primary_oguid = 453331 standby_oguid = 453331 print(check_oguid(primary_oguid, standby_oguid)) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值