当前位置:网站首页 >  攻略

宝塔面板全类型数据库定时全量备份+自动清理实操指南

时间:2026年05月30日 13:27:16 来源:易频IT社区

前期准备:确认基础条件

在开始前,请先确保满足以下2个必要条件,避免后续操作卡壳:

  • 已安装并登录宝塔面板:版本建议≥7.9.3,太旧版本可能功能有缺失或存在已知Bug,若未安装可访问宝塔官方安装教程执行1条命令安装(根据系统选择对应脚本)
  • 已创建并正常运行需要备份的数据库:支持MySQL/MariaDB/PostgreSQL/MongoDB四种主流数据库

方式一:宝塔面板可视化操作(90%用户首选)

该方式无需写代码,界面直观,适合所有水平的用户,操作后系统会自动生成备份脚本和定时任务。

步骤1:进入数据库备份设置页

登录宝塔面板后,点击左侧导航栏的「数据库」按钮,进入数据库管理界面,找到需要备份的数据库,点击对应行右侧的「备份」按钮(图标为旋转的箭头+云盘)。

步骤2:配置单次备份(可选但建议先测试)

点击备份后,首先弹出的是单次备份窗口,默认备份目录为「/www/backup/database」(可点击修改按钮调整路径,建议保留在非系统盘的独立分区,避免系统盘占满影响网站运行),勾选好需要备份的库后,点击「立即备份」,等待10-30秒(库大小决定时间),显示「备份成功」后,可在下方的「备份记录」标签页中查看、下载、删除已生成的备份包。

步骤3:创建定时自动备份任务

点击数据库管理界面顶部的「计划任务」按钮(图标为时钟),进入计划任务管理页:

  • 选择任务类型:在顶部下拉框中选择「备份数据库」
  • 设置执行周期:根据数据更新频率选择,个人博客/静态站建议「每天凌晨3点」,电商/动态高频更新站建议「每6小时」或自定义(周期最小支持1分钟,不建议设太短,占用服务器资源)
  • 选择备份数据库:点击「选择数据库」,勾选需要的库,全选可点击顶部「全选」按钮
  • 设置备份保留天数:核心配置,避免备份包占满服务器,个人站建议「7天」,电商/企业站建议「14-30天」
  • 确认并添加任务:点击「添加任务」,系统会自动生成对应的备份脚本和定时计划

步骤4:验证定时任务是否生效(重要)

添加完成后,在计划任务列表中找到刚创建的备份任务,点击对应行右侧的「执行」按钮(图标为三角形播放键)手动触发一次,执行完成后:

  • 点击「日志」按钮查看执行结果,显示「完成」且没有报错即为正常
  • 进入「/www/backup/database」目录(可通过左侧导航栏的「文件」按钮进入),确认有新的备份包生成(命名格式为「库名_年-月-日-时-分-秒.sql.gz」)

方式二:宝塔SSH终端自定义脚本备份(适合高级需求)

该方式支持自定义备份路径、压缩方式、推送至第三方云存储(如阿里云OSS、腾讯云COS),适合有特殊需求的用户。

步骤1:打开宝塔SSH终端

登录宝塔面板后,点击左侧导航栏的「终端」按钮,进入终端界面,输入服务器root密码(密码输入时不会显示字符,输入完成后按回车键即可)。

步骤2:创建自定义备份脚本

宝塔面板全类型数据库定时全量备份+自动清理实操指南

在终端中执行以下命令,创建并编辑备份脚本(脚本名可自定义,这里用db_backup.sh):

```bash vi /www/server/panel/scripts/db_backup.sh ```

进入vi编辑器后,按「i」键进入插入模式,复制以下完整脚本并粘贴(替换脚本开头的配置项为自己的实际信息):

```bash !/bin/bash -- 配置项开始 -- 数据库类型:mysql/mariadb/postgresql/mongodb DB_TYPE="mysql" 数据库用户名 DB_USER="root" 数据库密码(注意:如果密码包含特殊字符,建议加单引号包裹) DB_PASS='your_db_password' 数据库主机地址(本地数据库用localhost或127.0.0.1) DB_HOST="127.0.0.1" 数据库端口(MySQL/MariaDB默认3306,PostgreSQL默认5432,MongoDB默认27017) DB_PORT="3306" 需要备份的数据库列表(多个库用空格分隔,全选可写all) DB_LIST="db1 db2 db3" 备份文件保存路径(建议保留在非系统盘的独立分区) BACKUP_DIR="/www/backup/database_custom" 备份文件保留天数 BACKUP_DAYS="7" -- 配置项结束 -- 创建备份目录(如果不存在) mkdir -p $BACKUP_DIR 获取当前日期时间,用于命名备份文件 DATE=$(date +%Y-%m-%d-%H-%M-%S) 备份数据库逻辑 if [ "$DB_TYPE" = "mysql" ] || [ "$DB_TYPE" = "mariadb" ]; then if [ "$DB_LIST" = "all" ]; then mysqldump -u$DB_USER -p$DB_PASS -h$DB_HOST -P$DB_PORT --single-transaction --all-databases | gzip > $BACKUP_DIR/all_databases_$DATE.sql.gz else for DB_NAME in $DB_LIST; do mysqldump -u$DB_USER -p$DB_PASS -h$DB_HOST -P$DB_PORT --single-transaction $DB_NAME | gzip > $BACKUP_DIR/$DB_NAME_$DATE.sql.gz done fi elif [ "$DB_TYPE" = "postgresql" ]; then 切换到postgres用户执行备份(PostgreSQL默认要求) if [ "$DB_LIST" = "all" ]; then su - postgres -c "pg_dumpall | gzip > $BACKUP_DIR/all_databases_$DATE.sql.gz" else for DB_NAME in $DB_LIST; do su - postgres -c "pg_dump $DB_NAME | gzip > $BACKUP_DIR/$DB_NAME_$DATE.sql.gz" done fi elif [ "$DB_TYPE" = "mongodb" ]; then if [ "$DB_LIST" = "all" ]; then mongodump --host $DB_HOST --port $DB_PORT --username $DB_USER --password $DB_PASS --authenticationDatabase admin --gzip --archive=$BACKUP_DIR/all_databases_$DATE.archive.gz else for DB_NAME in $DB_LIST; do mongodump --host $DB_HOST --port $DB_PORT --username $DB_USER --password $DB_PASS --authenticationDatabase admin --db $DB_NAME --gzip --archive=$BACKUP_DIR/$DB_NAME_$DATE.archive.gz done fi fi 删除超过保留天数的备份文件 find $BACKUP_DIR -type f -name ".sql.gz" -o -name ".archive.gz" -mtime +$BACKUP_DAYS -exec rm -f {} \; ```

粘贴完成后,按「Esc」键退出插入模式,输入「:wq」并按回车键保存并退出vi编辑器。

步骤3:给脚本添加执行权限

在终端中执行以下命令,给脚本添加可执行权限:

```bash chmod +x /www/server/panel/scripts/db_backup.sh ```

步骤4:手动测试脚本是否正常

在终端中执行以下命令,手动触发一次备份:

```bash /www/server/panel/scripts/db_backup.sh ```

等待执行完成后,进入「/www/backup/database_custom」目录(可通过左侧导航栏的「文件」按钮进入),确认有新的备份包生成。

步骤5:在宝塔计划任务中添加自定义脚本任务

进入宝塔面板的「计划任务」管理页:

  • 选择任务类型:在顶部下拉框中选择「Shell脚本」
  • 设置执行周期:和可视化操作一致
  • 填写脚本内容:在下方的文本框中输入「/www/server/panel/scripts/db_backup.sh」(无需写其他内容)
  • 确认并添加任务:点击「添加任务」,添加后同样手动触发一次验证

宝塔数据库备份后的恢复方法(必看)

备份的最终目的是恢复,以下是宝塔面板可视化恢复的方法:

  • 本地恢复已保存的备份包:进入数据库管理界面,点击对应库右侧的「备份」按钮,进入「备份记录」标签页,找到需要恢复的备份包,点击「恢复」按钮即可
  • 上传外部备份包恢复:进入数据库管理界面,点击对应库右侧的「导入」按钮,选择「从本地上传」「从服务器上传」备份包,点击「开始导入」即可(注意:备份包必须是.sql或.sql.gz格式,且大小不超过宝塔面板设置的上传限制,可在左侧导航栏的「软件商店」中找到「PHP」或「Nginx/Apache」修改上传限制)

相关推荐

最新

热门

推荐

精选

标签

易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。

Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图