我们知道数据的重要性,但我们也要知道,数据的备份和恢复也是同样重要的,比如买了新手机,我们需要把旧手机上的某些重要的数据同步到新的手机中。在这个过程中,需要在旧手机上进行备份,在到新手机上进行恢复,然后,我们就可以及时的使用,不然新手机没有老手机上的重要数据,总会觉得少了点东西;

Mysql中提供了几种数据备份和恢复的方法,我写一下常用的几个;

1.     mysqldump命令;

2.     Percona Xtrabackup工具;

 

首先,需要明确几个定义:

完全备份:从开始到执行备份这一时刻的全部数据;

增量备份:从上一次完全备份或上一次增量备份以来的变化的数据;

差异备份:备份从上一次完全备份以来变化的数据;

 

热备份:可读可写状态下所做的操作;

温备份:可读不可写状态下所做的操作;

冷备份:不可读不可写,服务离线所做的备份操作;

 

物理备份:复制数据文件进行数据备份;

逻辑备份:备份sql语句,而并非数据;

 

Mysqldump工具是一个非常有效的也是常用的一个备份工具,其内容可以帮助innodb事务引擎实现温备份。也可以帮助组MYISAM非事务型存储引擎更快的进行备份工具;

 

常用选项:

--all-databases, -A:备份所有的数据库(完全备份);

--databases, -B:指定需要备份的数据库;

--flush-logs, -F:手动刷写二进制日志;

--quick, -q:快速导出数据,导出大表时很有用;

--lock-all-tables, -x:为所有的表施加读锁,直至数据导出结束;

--single-transaction:导出innodb存储引擎的表时,开启一个事务保证数据库的一致性和持久性;

[root@localhost ~]# mysqldump --lock-tables --flush-logs --all-databases -q > ./alldb.sql

 

在对数据库进行恢复时,建议临时关闭二进制

 

MariaDB [(none)]> set @@sql_log_bin=0;
MariaDB [(none)]> \. /alldb.sql
MariaDB [(none)]> set @@sql_log_bin=1;

 

OR

 

[root@www ~]# mysql -uroot -p < /alldata.sql
Enter password: