数字档案馆系统全量备份解决方案:零门槛可直接落地实操指南
前期准备与工具安装
本方案适配绝大多数部署在CentOS 7/8环境下的数字档案馆系统,覆盖「结构化业务数据库+非结构化电子档案文件」两类核心数据的全量备份,无需依赖额外付费工具,所有步骤可直接复制执行。
安装必备工具
直接执行对应命令完成所有工具安装,复制即可运行:
``` CentOS 7/8 环境 yum install -y rsync crontabs ``` ``` Debian/Ubuntu 环境 apt update && apt install -y rsync cron ```如果你的MySQL/MariaDB没有自带备份工具,执行对应命令补充安装:
``` CentOS yum install -y mysql-backup Debian/Ubuntu apt install -y mariadb-backup ```执行以下命令创建备份目录,授权访问权限:
``` mkdir -p /opt/daj_full_backup/local && mkdir -p /opt/daj_full_backup/check chmod -R 755 /opt/daj_full_backup ```全量备份脚本配置
1. 配置数据库全量备份脚本
创建并打开脚本文件,命令如下:
``` vi /opt/daj_full_backup/db_backup.sh ```粘贴以下完整内容,仅替换尖括号内的自定义信息即可直接使用:
``` !/bin/bash 数字档案馆数据库全量备份脚本 DB_USER=<你的数据库用户名> DB_PASS=<你的数据库密码> DB_NAME=<数字档案馆对应数据库名> BACKUP_DIR=/opt/daj_full_backup/local DATE=$(date +%Y%m%d_%H%M%S) 执行全量备份,避免锁表 mysqldump -u${DB_USER} -p${DB_PASS} --default-character-set=utf8mb4 --single-transaction --quick ${DB_NAME} | gzip > ${BACKUP_DIR}/daj_db_${DATE}.sql.gz 删除30天前的过期备份,修改数字可调整保留天数 find ${BACKUP_DIR} -name "daj_db_.sql.gz" -mtime +30 -delete 生成备份完整性校验文件 md5sum ${BACKUP_DIR}/daj_db_${DATE}.sql.gz > /opt/daj_full_backup/check/db_${DATE}.md5 ```保存脚本后,执行命令添加可执行权限:
``` chmod +x /opt/daj_full_backup/db_backup.sh ```注意:如果数字档案馆采用分库存储,只需新增多条mysqldump备份语句即可,无需修改其他逻辑
2. 配置电子文件全量备份脚本
创建并打开文件备份脚本,命令如下:
``` vi /opt/daj_full_backup/file_backup.sh ```粘贴以下完整内容,替换尖括号内的路径即可:
``` !/bin/bash 数字档案馆电子文件全量备份脚本 SOURCE_DIR=<你的电子文件根目录,示例:/opt/digital_archive/files> BACKUP_DIR=/opt/daj_full_backup/local DATE=$(date +%Y%m%d_%H%M%S) 全量打包压缩 tar -zcf ${BACKUP_DIR}/daj_files_${DATE}.tar.gz -C ${SOURCE_DIR} . 删除30天前的过期备份 find ${BACKUP_DIR} -name "daj_files_.tar.gz" -mtime +30 -delete 生成校验文件 md5sum ${BACKUP_DIR}/daj_files_${DATE}.tar.gz > /opt/daj_full_backup/check/files_${DATE}.md5 ```
保存后添加可执行权限:
``` chmod +x /opt/daj_full_backup/file_backup.sh ```3. 配置异地容灾同步脚本(可选)
如果需要将全量备份同步到异地服务器,创建同步脚本:
``` vi /opt/daj_full_backup/remote_sync.sh ```粘贴以下内容,替换对应信息即可:
``` !/bin/bash REMOTE_USER=<异地服务器用户名> REMOTE_IP=<异地服务器IP地址> REMOTE_DIR=<异地服务器备份目录,示例:/backup/daj> 同步备份文件和校验文件到异地 rsync -avzP /opt/daj_full_backup/local/.gz ${REMOTE_USER}@${REMOTE_IP}:${REMOTE_DIR} rsync -avzP /opt/daj_full_backup/check/.md5 ${REMOTE_USER}@${REMOTE_IP}:${REMOTE_DIR}/check ```添加可执行权限:
``` chmod +x /opt/daj_full_backup/remote_sync.sh ```配置定时自动全量备份
执行以下命令打开定时任务配置文件:
``` crontab -e ```在文件末尾添加以下内容,本示例为每日凌晨2点开始按顺序执行全量备份,可根据需求调整时间:
``` 0 2 /bin/bash /opt/daj_full_backup/db_backup.sh >> /opt/daj_full_backup/backup.log 2>&1 0 3 /bin/bash /opt/daj_full_backup/file_backup.sh >> /opt/daj_full_backup/backup.log 2>&1 0 4 /bin/bash /opt/daj_full_backup/remote_sync.sh >> /opt/daj_full_backup/backup.log 2>&1 ```保存退出后,执行以下命令重启并开启定时服务:
``` CentOS 7/8 systemctl restart crond systemctl enable crond ``` ``` Debian/Ubuntu systemctl restart cron systemctl enable cron ```备份校验与恢复操作
备份完整性校验
执行以下命令即可校验备份是否完整,替换为你要校验的校验文件名即可:
``` md5sum -c /opt/daj_full_backup/check/对应校验文件名.md5 ```输出结果包含OK说明备份完整可用,输出FAILED说明备份损坏,需要重新执行备份。
备份恢复步骤
恢复数据库,替换对应参数后执行:
``` gunzip < /opt/daj_full_backup/local/备份文件名.sql.gz | mysql -u数据库用户名 -p数据库密码 目标数据库名 ```恢复电子文件,替换对应参数后执行:
``` tar -zxf /opt/daj_full_backup/local/备份文件名.tar.gz -C 目标电子文件根目录 ```关键注意事项
- 备份目录不要放在系统盘:建议将备份目录创建在独立数据盘,避免系统故障导致备份一起丢失
- 首次手动测试:配置完定时任务后,先手动执行一次所有脚本,确认没有权限、路径错误后再等待定时执行
- 密码安全:如果数据库密码包含特殊字符,建议将认证信息写入
~/.my.cnf,避免密码明文泄露 - 大文件调整:如果电子文件总大小超过200GB,可将tar打包改为rsync同步到备份目录,不影响全量备份有效性