515439429 发表于 2018-10-5 13:49:30

备份MySQL数据库的4种方式

'   #查看当前二进制文件的状态, 并记录下position的数字  +------------------+----------+--------------+------------------+
  | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
  +------------------+----------+--------------+------------------+
  | mysql-bin.000003 |      106 |            |                  |
  +------------------+----------+--------------+------------------+
  # mysqldump --all-databases --lock-all-tables> backup.sql   #备份数据库到backup.sql文件中
  mysql> CREATE DATABASE TEST1;   #创建一个数据库
  Query OK, 1 row affected (0.00 sec)
  mysql> SHOW MASTER STATUS;   #记下现在的position
  +------------------+----------+--------------+------------------+
  | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
  +------------------+----------+--------------+------------------+
  | mysql-bin.000003 |      191 |            |                  |
  +------------------+----------+--------------+------------------+
  1 row in set (0.00 sec)
  # cp /var/lib/mysql/mysql-bin.000003 /root#备份二进制文件
  # service mysqld stop   #停止MySQL
  # rm -rf /var/lib/mysql/*   #删除所有的数据文件
  # service mysqld start    #启动MySQL, 如果是编译安装的应该不能启动(需重新初始化), 如果rpm安装则会重新初始化数据库
  mysql> SHOW DATABASES;   #查看数据库, 数据丢失!
  +--------------------+
  | Database         |
  +--------------------+
  | information_schema |
  | mysql            |
  | test               |
  +--------------------+
  3 rows in set (0.00 sec)
  mysql> SET sql_log_bin=OFF;   #暂时先将二进制日志关闭
  Query OK, 0 rows affected (0.00 sec)
  mysql> source backup.sql#恢复数据,所需时间根据数据库时间大小而定
  mysql> SET sql_log_bin=ON; 开启二进制日志
  mysql> SHOW DATABASES;   #数据库恢复, 但是缺少TEST1
  +--------------------+
  | Database         |
  +--------------------+
  | information_schema |
  | employees          |
  | mysql            |
  | test               |
  +--------------------+
  4 rows in set (0.00 sec)
  # mysqlbinlog --start-position=106 --stop-position=191 mysql-bin.000003 | mysql employees #通过二进制日志增量恢复数据
  mysql> SHOW DATABASES;    #现在TEST1出现了!
  +--------------------+
  | Database         |
  +--------------------+
  | information_schema |
  | TEST1            |
  | employees          |
  | mysql            |
  | test               |
  +--------------------+
  5 rows in set (0.00 sec)
  #完成

页: [1]
查看完整版本: 备份MySQL数据库的4种方式