×

MySQL数据库备份&还原-LINUX

96
walk_and_walk
2016.05.07 10:24* 字数 398

MySQL数据库备份&还原-LINUX

手动备份:

1. 备份一个数据库
mysqldump -hhostname -uusername -pmypwd databasename > /path to backup/bakname.sql
备份并压缩
mysqldump -hhostname -uusername -pmypwd databasename | gzip > /path to backup/bakname.sql.gz

2. 备份多个数据库
mysqldump -hhostname -uusername -pmypwd databases databasename1 databasename2 databasename3 > /path to backup/bakname.sql

3. 备份数据库一些表
mysqldump -hhostname -uusername -pmypwd databasename table1 table2 table3 > /path to backup/bakname.sql

4. 仅备份数据库结构
mysqldump -no-data -databases databasename1 databasename2 databasename3 > /path to backup/bakname.sql

5. 备份所有数据库
mysqldump -all-databases > /path to backup/bakname.sql


还原数据库

1. 还原无压缩数据库
mysql -hhostname -uuser -pmypwd databasename < /path to backup/bakname.sql

2. 还原压缩数据库
gunzip < /path to backup/bakname.sql.gz | mysql -hhostname -uusername -pmypwd databasename


迁移到新服务器

mysqldump -hhostname -uuser -pmypwd databasename | mysql -hnew_hostname -C databasename


脚本定时备份

  1. 创建备份脚本

    vim mysql_backup.sh

    #!/bin/sh
    # This is a mysql datbase backup shell script.
    
    # set mysql info
    hostname="localhost"
    user="root"
    password="my password"
    
    # set database info
    database="bak database name"
    bakpath="path to backup"
    date=$(date +%Y%m%d_%H%M%S)
    
    # backup
    mkdir -p $bakpath
    mysqldump -h$hostname -u$user -p$password $database | gzip \ 
    > $bakpath/$database_$date_sql.gz
    
  2. 创建定时任务

    crontab: crontab 是linux系统下的一个任务调度器

    crontab定时服务 启动|结束|状态
    service crond start | status | stop

    # 查看config文件,可以看到定时规则
    $ cat /etc/cron
    
    # 添加备份定时任务
    $ crontab -e
    添加定时计划,例如:每天2点执行
    0 2 * * * /path to sh/mysql_backup.sh
    保存退出
    
    # 查看当前用户定时任务
    $ crontab -l
    
    #查看定时计划日志
    $ tail -f /var/log/cron
    
  3. 定时跟踪

MySQL
Web note ad 1