本文共 1538 字,大约阅读时间需要 5 分钟。
[root@mariadb ~]# mysqldump -uroot -p123456 --lock-all-tables --flush-logs --events --routines --master-data=2 --all-databases > /backup/data_dir/fulldata-`date +%F`.sql
说明:
--lock-all-tables
:锁定数据库中的所有表,防止在备份过程中其他连接操作导致数据不一致。--flush-logs
:刷新二进制日志文件,使后续增量备份基于新文件。--master-data=2
:记录当前二进制日志文件及位置,便于增量备份。[root@mariadb ~]# cp /var/log/mysql_log/mysql-bin.000004 /backup/binlog_dir/mysql-bin.000004-increment.`date +%F`
mysql> CREATE DATABASE mydb2;mysql> USE mydb2;mysql> CREATE TABLE tb2 (id INT, name CHAR(15));
mysql> SHOW MASTER STATUS;
执行后滚动日志:
mysql> FLUSH LOGS;mysql> SHOW MASTER STATUS;
备份二进制日志文件:
[root@mariadb ~]# cp /var/log/mysql_log/mysql-bin.000004 /backup/binlog_dir/mysql-bin.000004-increment.`date +%F`
mysql> INSERT INTO mydb2.tb2 (id, name) VALUES (1, 'timepoint');
mysql> DROP DATABASE myddb1;mysql> DROP DATABASE myddb2;
[root@mariadb ~]# /opt/lamp/mysql55/bin/mysqld_safe --skip-networking &
mysql> SET GLOBAL sql_log_bin=0;mysql> SHOW GLOBAL VARIABLES LIKE 'sql_log_bin';
滚动日志并恢复全备份:
[root@mariadb ~]# mysql -uroot -p123456 < /backup/data_dir/fulldata-2015-04-14.sql
[root@mariadb ~]# mysqlbinlog /backup/binlog_dir/mysql-bin.000004-increment.2015-04-14 > /tmp/increment.sql
[root@mariadb ~]# mysqlbinlog --stop-position=321 /var/log/mysql_log/mysql-bin.000005 > /tmp/321ttim.sql
mysql> SET GLOBAL sql_log_bin=1;[root@mariadb ~]# service mysqld restart
mysqldump工具适用于InnoDB存储引擎的热备备份,但对包含MyISAM表的库需要在备份前锁定表。全备份+增量备份结合使用,既实现数据备份,又支持灾难恢复。
转载地址:http://jibfk.baihongyu.com/