【达梦数据库备份策略】利用Xftp实现windows远程下载linux备份数据库压缩包

本文章主要是为了项目中可以定时备份生产或测试环境数据库,并持久化到本地,个人测试完全可行,当然只为了想考虑这种方式的人提供拙见,方法肯定还有。


前言

环境:linux、Xftp 7、

利用Xftp 7自带的远程访问属性和定时属性,实现定时从linux拉取备份好的文件(当然最好是打包压缩好的,这样速度更加快捷)


一、前期准备

Xftp 7是一种灵活且轻量级的SFFT/FTP客户端,用于需要安全地通过网络传输文件的用户。

使用Xftp7软件能让文件传输被简化,使用拖拽、直接编辑和增强的同步,这些特性在直观的标签界面中被封装。
它可以帮助你的电和远程计算机进行文件同步,支持Windows和UNIX/Linux之间传输,完美支持SFTP、FTP传输,使用简单、快捷深度用户喜爱,同时Xftp7中文版具有很好的安全性,你完全可以放心自己的数据在传输中不被泄漏。

二、具体步骤

1.编写bash脚本

内容如下:

一、复杂版(能满足大多数人要求)

####bak_dm.sh脚本起始###
#/bin/bash
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/dm8/bin"
export DM_HOME="/dm8"
export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool
#当天年月日
CUR_DATE=`date +'%Y%m%d%H%M%S'`
#获取当天是星期几
WEEKDAY_INDEX=`date +'%w'`

#逻辑备份全库
dexp sysdba/***@localhost:5236 file=dexp_${CUR_DATE}.dmp directory=/dm8/backup/dmp log=dexp_${CUR_DATE}.log full=y

#在线物理备份全库、归档日志,每周六全量备份,其他日期增量备份。同时删除30天前的历史备份集
if [[ $WEEKDAY_INDEX -eq 6 ]]; then
  disql sysdba/***@localhost:5236<<EOF
  backup database full backupset '/dm8/backup/full/dmdb01_full_${CUR_DATE}';
  SF_BAKSET_BACKUP_DIR_ADD('DISK','/dm8/backup/full');
  call sp_db_bakset_remove_batch('DISK',now()-30);
EOF
else
  disql sysdba/***@localhost:5236<<EOF
  backup database increment with backupdir '/dm8/backup/full' backupset '/dm8/backup/incr/dmdb01_incr_${CUR_DATE}';
  SF_BAKSET_BACKUP_DIR_ADD('DISK','/dm8/backup/incr');
  call sp_db_bakset_remove_batch('DISK',now()-30);
EOF
fi

#备份归档
disql sysdba/***@localhost:5236<<EOF
  backup archivelog all  backupset '/dm8/backup/arch/arch_full_${CUR_DATE}';
  SF_BAKSET_BACKUP_DIR_ADD('DISK','/dm8/backup/arch');
  call SP_ARCH_BAKSET_REMOVE_BATCH('DISK',now()-30);
EOF

#删除30天前的dmp备份文件
find /dm8/backup/dmp -mtime 30 -type f -name "*.dmp" -exec rm -rf {} \;

######bak_dm.sh脚本结束#####

二、简易版(保存7天的备份数据)

####bak_dm.sh脚本起始###
#!/bin/bash

source /etc/profile
backup_dir=/root/db_backup
log_date=`date +%Y-%m-%d`
/home/dmdba/dmdbms/bin/dexp SYSDBA/SYSDBA directory=${backup_dir} file=scgj.dmp log=scgj.log SCHEMAS=SYSDBA

tar -czvf ${backup_dir}/scgj_${log_date}.tar.gz ${backup_dir}/scgj.dmp ${backup_dir}/scgj.log --remove-files

# 删除7天以前的备份
find ${backup_dir}/ -name "scgj_*.tar.gz" -mtime +7 -exec rm -rf "{}" \;
######bak_dm.sh脚本结束#####

三、简易版(保存最近1天的备份数据)

####bak_dm.sh脚本起始###
#!/bin/bash

# 进入备份的目录,并且删除最近一次备份的文件
cd /app/bak_dm_sql/time_bak && rm -f ./db_bak.dmp

# 开始备份
/home/dmdba/dmdbms/bin/dexp userid=SYSDBA/SYSDBA file=db_bak.dmp log=db_str.log  directory=/app/bak_dm_sql/time_bak/ SCHEMAS="SYSDBA"  PARALLEL=2

# 备份结束执行此命令打包
tar -zcvf db_newest.tar.gz ./db_bak.dmp

######bak_dm.sh脚本结束#####
  • 配置执行权限:
chmod +x /dm8/backup/bak_dm.sh
  • 配置定时任务:
#配置定时任务,每天晚上22点定时执行备份脚本
crontab -e
0 22 * * * su - dmdba -c "/dm8/backup/bak_dm.sh" >>/dm8/backup/bak_dm.log 2>&1
  • 重启定时任务生效:
service crond restart
  • 查看定时任务状态:
查看crontab状态:
service crond status

2.xftp7配置

一、远程连接信息绑定:

参考文章:xftp7连接信息配置指南

二、定时任务配置:

1、定时任务位置:
定时任务位置
在这里插入图片描述
2、创建定时任务配置持久化目录
在这里插入图片描述
3、执行定时任务
在这里插入图片描述

3.效果展示

持久化到本地了!!
在这里插入图片描述


总结

以上就是今天主要实现的效果
如果有什么疑问和要求可以在评论下方评论,我会积极协助处理哈~

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

〆﹏destiny 筑梦)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值