当前位置: 首页 > news >正文

Centos和麒麟系统如何每天晚上2点10分定时备份达梦数据库

一、准备达梦数据库备份脚本

首先创建一个备份脚本(.sh 文件),用于执行达梦数据库的备份命令。脚本需包含备份路径、日志记录等信息,确保备份过程可追溯。

1. 创建脚本文件

# 使用vim创建脚本(文件名可自定义,如 dm_backup.sh)

sudo vim /usr/local/dm_backup/dm_backup.sh
2. 编写备份脚本内容
#!/bin/bash# 配置参数
export DM_HOME="/home/dmdba/dmdbms"             # 达梦安装目录(需修改)
BAK_DIR="/lamp/bak/dmbak/"                    # 备份存储目录(需修改)
USER="SYSDBA"                            # 数据库用户名
PASSWORD="DM5555"                  # 密码(需修改)
PORT="5237"                              # 数据库端口
SCHEMA="shujuku"                           # 需备份的模式名(需修改)
RETENTION_DAYS=30                        # 备份保留天数# 创建备份目录
mkdir -p ${BAK_DIR} || exit 1# 设置环境变量
export PATH=${DM_HOME}/bin:${PATH}
export LD_LIBRARY_PATH=${DM_HOME}/bin:${LD_LIBRARY_PATH}# 生成带时间戳的文件名
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
DMP_FILE="${SCHEMA}_${TIMESTAMP}.dmp"
LOG_FILE="${SCHEMA}_${TIMESTAMP}.log"
TAR_FILE="${BAK_DIR}/${SCHEMA}_${TIMESTAMP}.tar.gz"# 执行逻辑备份(按模式导出)
${DM_HOME}/bin/dexp USERID=${USER}/${PASSWORD}@localhost:${PORT} \
DIRECTORY=${BAK_DIR} \
FILE=${DMP_FILE} \
LOG=${LOG_FILE} \
SCHEMAS=${SCHEMA} \
COMPRESS=Y# 压缩备份文件
tar -czf ${TAR_FILE} -C ${BAK_DIR} ${DMP_FILE} ${LOG_FILE} && \
rm -f ${BAK_DIR}/${DMP_FILE} ${BAK_DIR}/${LOG_FILE}# 清理旧备份(保留30天)
find ${BAK_DIR} -name "${SCHEMA}_*.tar.gz" -mtime +${RETENTION_DAYS} -exec rm -f {} \;echo "[$(date)] 备份完成: ${TAR_FILE}" >> ${BAK_DIR}/backup.log

二、设置脚本权限

确保脚本可执行:

# 修改脚本权限
sudo chmod +x /usr/local/dm_backup/dm_backup.sh# 测试脚本是否能正常运行(手动执行一次,检查备份是否成功)
sudo sh /usr/local/dm_backup/dm_backup.sh

执行后,查看 BACKUP_DIR 目录是否生成备份文件,以及日志文件是否有错误信息。

三、添加定时任务(crontab)

通过 crontab 设置每天凌晨 2 点 10 分自动执行备份脚本。

1. 编辑 crontab 任务
# 编辑当前用户的定时任务(建议使用root用户,避免权限问题)
sudo crontab -e
2. 添加定时任务规则

在打开的文件中添加以下内容(表示每天 2 点 10 分执行脚本):

# 每天凌晨2点10分执行达梦数据库备份脚本
10 2 * * * /usr/local/dm_backup/dm_backup.sh
3. 保存并退出
  • 若使用 vim 编辑,按 Esc 后输入 :wq 保存退出。

四、验证定时任务

  1. 查看已添加的定时任务:

sudo crontab -l
  1. 若能看到刚才添加的规则,说明任务已生效。

  2. 检查 crond 服务状态(确保定时任务服务正常运行):

# 查看crond服务状态
sudo systemctl status crond# 若未启动,执行以下命令启动并设置开机自启
sudo systemctl start crond
sudo systemctl enable crond

五、备份结果检查

  • 等待到第二天凌晨 2 点 10 分后,查看 BACKUP_DIR 目录是否生成新的备份文件。
  • 查看日志文件(如 backup_log_20240705.log),确认备份是否成功。
http://www.xdnf.cn/news/1087993.html

相关文章:

  • JAVAEE 代理
  • 3D 演示动画在汽车培训与教育领域中的应用
  • Modbus TCP转Profinet网关实现视觉相机与西门子PLC配置实例研究
  • Anolis OS 23 架构支持家族新成员:Anolis OS 23.3 版本及 RISC-V 预览版发布
  • 面试题--系统如何处理异常
  • SpringAI学习笔记-MCP服务器简单示例
  • 【UE5】虚幻引擎小百科
  • 后台设计指南:系统架构、交互规范与工具实战全流程解析
  • (C++)list列表相关基础用法(C++教程)(STL库基础教程)
  • Android T startingwindow使用总结
  • 深度剖析:向70岁老系统植入通信芯片——MCP注入构建未来级分布式通信
  • 容器技术技术入门与 Docker 环境部署
  • Flutter基础(前端教程④-组件拼接)
  • Python Web应用开发之Flask框架高级应用(三)——蓝图(Blueprints)
  • uniapp b树
  • 【LeetCode 热题 100】142. 环形链表 II——快慢指针
  • FairyGUI 实现 Boss 双层血条动画
  • Crazyflie无人机集群控制笔记(二)通过SDK实时对接Crazyswarm2及NOKOV度量动捕数据
  • jmeter 性能测试步骤是什么?
  • 代码详细注释:C语言实现控制台用户注册登录系统
  • C++进阶—二叉树进阶
  • [2025CVPR]SGC-Net:开放词汇人机交互检测的分层粒度比较网络解析
  • 【网络协议安全】任务14:路由器DHCP_AAA_TELNET配置
  • Redis基础数据结构
  • Serverless 数据库来了?无服务器数据库 vs 传统数据库有何不同?
  • 学习日记-spring-day43-7.8
  • 日语学习-日语知识点小记-构建基础-JLPT-N3阶段(1):新的开始-尊他开始
  • Docker企业级应用:从入门到生产环境最佳实践
  • ReactNative【实战系列教程】我的小红书 4 -- 首页(含顶栏tab切换,横向滚动频道,频道编辑弹窗,瀑布流布局列表等)
  • 论文略读:UniPELT: A Unified Framework for Parameter-Efficient Language Model Tuning