温馨提示×

SQLAdmin备份恢复CentOS数据方法

小樊
41
2025-12-11 18:14:39
栏目: 云计算

SQLAdmin备份恢复CentOS数据方法

一 概念澄清与适用场景

  • SQLAdmin在CentOS环境中通常指基于Web的数据库管理工具(如phpMyAdmin/Adminer等),本身不执行备份/恢复;实际备份恢复由数据库引擎完成。
  • 常见数据库与工具对应关系如下:
数据库引擎 常用备份工具 典型命令示例 适用场景
MySQL/MariaDB mysqldumpPercona 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周日备+月度归档)。
    • 监控磁盘空间与备份任务日志,出现异常及时告警与回滚预案。

0