插件窝 干货文章 如何在Linux上备份和还原数据库

如何在Linux上备份和还原数据库

备份 数据库 还原 用户名 433    来源:    2025-04-16

Linux 数据库备份与还原指南

常见数据库备份方法

MySQL/MariaDB 备份

备份单个数据库:

mysqldump -u [用户名] -p[密码] [数据库名] > backup.sql

备份所有数据库:

mysqldump -u [用户名] -p[密码] --all-databases > all_backup.sql

备份特定表:

mysqldump -u [用户名] -p[密码] [数据库名] [表名1] [表名2] > tables_backup.sql

PostgreSQL 备份

备份单个数据库:

pg_dump -U [用户名] -d [数据库名] -f backup.sql

备份所有数据库:

pg_dumpall -U [用户名] -f all_backup.sql

MongoDB 备份

备份整个数据库:

mongodump --host [主机] --port [端口] -u [用户名] -p [密码] --authenticationDatabase admin --db [数据库名] --out /backup/path

数据库还原方法

MySQL/MariaDB 还原

还原单个数据库:

mysql -u [用户名] -p[密码] [数据库名] < backup.sql

还原所有数据库:

mysql -u [用户名] -p[密码] < all_backup.sql

PostgreSQL 还原

还原单个数据库:

psql -U [用户名] -d [数据库名] -f backup.sql

还原所有数据库:

psql -U [用户名] -f all_backup.sql

MongoDB 还原

还原整个数据库:

mongorestore --host [主机] --port [端口] -u [用户名] -p [密码] --authenticationDatabase admin /backup/path

高级备份技巧

  1. 压缩备份:

    mysqldump -u [用户名] -p[密码] [数据库名] | gzip > backup.sql.gz
    
  2. 定时自动备份(使用cron):

    # 编辑crontab
    crontab -e
    # 添加每天凌晨3点备份
    0 3 * * * /usr/bin/mysqldump -u [用户名] -p[密码] [数据库名] > /path/to/backup/db_$(date +\%Y\%m\%d).sql
    
  3. 增量备份(使用二进制日志):

    # 启用二进制日志
    # 在my.cnf中添加:
    [mysqld]
    log-bin=mysql-bin
    
    # 备份二进制日志
    mysqlbinlog /var/lib/mysql/mysql-bin.000123 > binlog_backup.sql
    

注意事项

  1. 确保备份文件有适当的权限保护
  2. 定期测试备份文件的还原能力
  3. 考虑将备份文件存储在远程位置或云存储
  4. 对于大型数据库,考虑使用物理备份工具如Percona XtraBackup

恢复策略建议

  1. 定期完整备份(如每周)
  2. 每日增量备份
  3. 保留多个备份版本
  4. 监控备份过程确保成功完成