Sqladmin在Ubuntu上的备份策略
导读:Ubuntu 上 SQLAdmin 的备份策略 一 策略总览 明确目标:覆盖 SQLAdmin 管理的 MySQL/MariaDB 数据库 的数据与结构,确保可恢复性与异地冗余。 工具选择:SQLAdmin 是数据库 Web 管理工具,本...
Ubuntu 上 SQLAdmin 的备份策略
一 策略总览
- 明确目标:覆盖 SQLAdmin 管理的 MySQL/MariaDB 数据库 的数据与结构,确保可恢复性与异地冗余。
- 工具选择:SQLAdmin 是数据库 Web 管理工具,本身不提供备份功能;备份应通过 mysqldump/mysqlpump 或 SQLAdmin 的界面导出功能完成。
- 备份类型:日常使用 逻辑备份(全量);大数据量可用 mysqlpump 并行导出 提升速度;如需时间点恢复,建议启用 MySQL 二进制日志(binlog)。
- 频率建议:生产库至少 每日全量;关键业务可 每小时增量(binlog);每周做 全量校验与抽样恢复演练。
- 保留与异地:本地保留 7–30 天,并 同步到远程主机/对象存储;定期清理过期备份。
二 推荐方案 自动化脚本 + Cron
- 目录与权限
- 创建备份目录并限制访问:sudo mkdir -p /backup/mysql;sudo chown mysql:mysql /backup/mysql
- 备份脚本示例(全量 + 压缩 + 日志 + 保留)
- 保存为:/usr/local/bin/backup_mysql.sh
- 内容:
#!/usr/bin/env bash set -Eeuo pipefail DB_HOST="localhost" DB_USER="backup_user" DB_PASS="StrongPass!23" DB_NAME="your_db" BACKUP_DIR="/backup/mysql" LOG_FILE="$BACKUP_DIR/backup.log" RETENTION_DAYS=7 DATE=$(date +"%Y%m%d%H%M%S") BACKUP_FILE="$BACKUP_DIR/${ DB_NAME} -${ DATE} .sql.gz" # 创建目录 mkdir -p "$BACKUP_DIR" # 执行备份(--single-transaction 适用于 InnoDB;--routines/--triggers 视需求开启) mysqldump -h "$DB_HOST" -u "$DB_USER" -p"$DB_PASS" \ --single-transaction --routines --triggers --default-character-set=utf8mb4 \ "$DB_NAME" | gzip > "$BACKUP_FILE" # 结果记录 if [ $? -eq 0 ]; then echo "$(date '+%F %T') SUCCESS: $BACKUP_FILE" > > "$LOG_FILE" # 保留策略 find "$BACKUP_DIR" -type f -name "*.sql.gz" -mtime +$RETENTION_DAYS -delete else echo "$(date '+%F %T') FAILED: $BACKUP_FILE" > > "$LOG_FILE" exit 1 fi - 赋权:sudo chmod +x /usr/local/bin/backup_mysql.sh
- 定时任务(Cron)
- 每天 02:00 全量备份:echo ‘0 2 * * * root /usr/local/bin/backup_mysql.sh’ | sudo tee /etc/cron.d/mysql-backup
- 如需每小时增量配合 binlog,可另配脚本仅做 FLUSH BINARY LOGS 并同步最新 binlog 文件到远程。
- 远程复制(可选)
- rsync:rsync -avz --delete /backup/mysql/ user@remote:/backup/mysql/
- 或 scp 到远程主机/对象存储网关。
三 使用 SQLAdmin 界面导出
- 登录 SQLAdmin Web 界面,选择目标数据库。
- 进入 备份/Export,选择导出格式(通常为 SQL),配置导出选项与目标路径/文件名。
- 执行导出并下载备份文件;如需定期执行,建议结合系统的 计划任务 或界面提供的计划功能(若可用)。
四 恢复流程与验证
- 逻辑备份恢复(全量)
- gunzip < /backup/mysql/your_db-20251126.sql.gz | mysql -h localhost -u user -ppass your_db
- 远程备份恢复
- 先 rsync/scp 拉取到本地,再执行上面的 mysql 命令导入。
- 验证与演练
- 定期做 抽样恢复 到临时库,校验表数量、数据一致性(如校验和/行数对比)。
- 若启用 binlog,可按时间点恢复:先恢复最近一次全量,再应用 mysqlbinlog 指定时间/位置区间。
五 安全与运维要点
- 凭据安全:避免在命令行或脚本中明文写密码;建议使用 ~/.my.cnf 配置凭据(权限 600),或在备份专用账号上限制权限(仅 SELECT、SHOW VIEW、LOCK TABLES、RELOAD 等必要权限)。
- 加密与合规:敏感数据建议 传输加密(TLS) 与 静态加密;备份落盘后设置 600 权限,仅允许必要账户访问。
- 监控与告警:脚本输出到 日志文件,配合 logrotate 管理;可用简单监控(如文件大小阈值、最近一次成功时间)触发告警。
- 存储与保留:本地保留 7–30 天,远程/对象存储长期留存;定期清理过期备份,避免磁盘被占满导致备份失败。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Sqladmin在Ubuntu上的备份策略
本文地址: https://pptw.com/jishu/757061.html
