SQLAdmin备份恢复CentOS数据方法
一 概念澄清与适用场景
- SQLAdmin在CentOS环境中通常指基于Web的数据库管理工具(如phpMyAdmin/Adminer等),本身不执行备份/恢复;实际备份恢复由数据库引擎完成。
- 常见数据库与工具对应关系如下:
| 数据库引擎 |
常用备份工具 |
典型命令示例 |
适用场景 |
| MySQL/MariaDB |
mysqldump、Percona XtraBackup |
mysqldump、xtrabackup |
逻辑备份/单库/整库迁移;物理热备/快速整机恢复 |
| PostgreSQL |
pg_dump |
pg_dump |
逻辑备份/迁移 |
| Microsoft SQL Server on Linux |
sqlcmd(T‑SQL BACKUP DATABASE) |
BACKUP DATABASE … TO DISK |
SQL Server在CentOS上的备份/恢复 |
下文按引擎给出可直接执行的备份与恢复步骤。
二 MySQL或MariaDB备份与恢复
- 逻辑备份与恢复(mysqldump)
- 备份
- 整库:mysqldump -uroot -p --single-transaction --routines --triggers --default-character-set=utf8mb4 --hex-blob –all-databases > /backups/full_$(date +%F).sql
- 单库:mysqldump -uroot -p --single-transaction --routines --triggers --default-character-set=utf8mb4 dbname > /backups/dbname_$(date +%F).sql
- 恢复
- mysql -uroot -p < /backups/full_2025-12-11.sql
- 建议先在非生产环境验证,恢复后执行:mysqlcheck -uroot -p --auto-repair --optimize --all-databases
- 物理热备与恢复(XtraBackup,InnoDB)
- 全量备份:xtrabackup --defaults-file=/etc/my.cnf --backup -uroot -p --target-dir=/backups/full_2025-12-11
- 准备:xtrabackup --prepare --target-dir=/backups/full_2025-12-11
- 恢复
- 停库:mysqladmin -uroot -p shutdown
- 备份并清空数据目录:mv /var/lib/mysql /var/lib/mysql.bak_$(date +%F) && mkdir -p /var/lib/mysql
- 拷贝回数据:xtrabackup --defaults-file=/etc/my.cnf --copy-back --target-dir=/backups/full_2025-12-11
- 修复权限并启动:chown -R mysql:mysql /var/lib/mysql && systemctl start mysqld
- 自动化备份(示例)
- 每天02:00整库备份:0 2 * * * /usr/bin/mysqldump -uroot -pYourPass --single-transaction --routines --triggers --default-character-set=utf8mb4 --hex-blob --all-databases > /backups/full_$(date +%F).sql 2>> /var/log/mysql_backup.log
三 PostgreSQL备份与恢复
- 备份
- 目录格式(便于迁移/部分恢复):pg_dump -U postgres -W -F c dbname > /backups/dbname_$(date +%F).backup
- SQL文本格式(便于审阅/跨版本):pg_dump -U postgres -W dbname > /backups/dbname_$(date +%F).sql
- 恢复
- 目录格式:pg_restore -U postgres -d dbname /backups/dbname_2025-12-11.backup
- SQL文本格式:psql -U postgres -d dbname -f /backups/dbname_2025-12-11.sql
- 自动化备份(示例)
- 每天02:00备份:0 2 * * * /usr/bin/pg_dump -U postgres -W -F c dbname > /backups/dbname_$(date +%F).backup 2>> /var/log/pg_backup.log
四 Microsoft SQL Server on Linux备份与恢复
- 备份(sqlcmd + T‑SQL)
- sqlcmd -S 127.0.0.1 -U sa -P YourStrong@Pass -Q “BACKUP DATABASE [YourDB] TO DISK = N’/var/opt/mssql/backup/YourDB_$(date +%F).bak’ WITH NOFORMAT, NOINIT, NAME = N’YourDB-Full’, SKIP, NOREWIND, NOUNLOAD, STATS = 10”
- 恢复(sqlcmd + T‑SQL)
- 先确认无活跃连接:sqlcmd -S 127.0.0.1 -U sa -P YourStrong@Pass -Q “ALTER DATABASE [YourDB] SET SINGLE_USER WITH ROLLBACK IMMEDIATE”
- 执行恢复:sqlcmd -S 127.0.0.1 -U sa -P YourStrong@Pass -Q “RESTORE DATABASE [YourDB] FROM DISK = N’/var/opt/mssql/backup/YourDB_2025-12-11.bak’ WITH REPLACE, STATS = 10”
- 恢复为单用户后再改回多用户:sqlcmd -S 127.0.0.1 -U sa -P YourStrong@Pass -Q “ALTER DATABASE [YourDB] SET MULTI_USER”
- 注意
- 备份目录必须对mssql用户可写(/var/opt/mssql/backup),并确保磁盘空间充足。
五 通过SQLAdmin执行与运维建议
- 在phpMyAdmin/Adminer中,逻辑备份可直接用导出功能;物理备份需通过服务器命令行执行(XtraBackup/sqlcmd等)。
- 安全与合规
- 备份文件含敏感数据,建议加密并传输到异地/对象存储;设置最小权限的备份专用账户。
- 开启防火墙仅放行必要端口,按需配置SELinux;定期审计用户与权限。
- 可靠性
- 定期做恢复演练,校验数据一致性与可用性;保留多份与多代备份(如近7天日备+近4周日备+月度归档)。
- 监控磁盘空间与备份任务日志,出现异常及时告警与回滚预案。