Mysql备份与恢复

mysql备份与恢复:

物理备份&逻辑备份:
物理备份:适合比较大的数据,在出现问题后需要快速恢复的数据.
1.物理备份包含库的文件.
2.物理备份比逻辑备份更加快速,因为物理备份只复制文件,不会复制会话.
逻辑备份:适用于比较小的数据,以创建库,创建表,插入数据的方式进行备份.
1.备份数据不包含日志和其他不是不是数据库的文件.

在线备份&离线备份:
在线备份:
1.很少影响其他的客户端.
离线备份:
1.在备份的过程中,数据库的服务不可用,客户端会受到影响.这种备份机制一般在副本中进行.
2.备份的机制比较简单.

本地备份&远端备份:

全备份&增量备份:
增量备份需要开启二进制日志

mysql备份常用命令:

1.将查询数据导入到文件:

select * into outfile '/tmp/kasumi' from t_trade_user;
文件会创建在数据库的服务端,只保存表的数据,不会保存表结构.使用--tab参数创建备份的表结构.
$mysql -ukasumi -h127.0.0.1 -pkasumi < ta.sql > /tmp/kasumi
$vim ta.sql
use traderaccout;
select * from t_trade_user;
$mysql -ukasumi -h127.0.0.1 -pkasumi -e "use traderaccount; select * from t_trade_user G;" > /tmp/kasumi

2.备份某一数据库:
$mysqldump -uroot -ppassword database > backupfile.sql

3.备份为删除表的形式:
$mysqldump -add-drop-table -uroot -ppassword database > backupfile.sql

4.备份为压缩文件:
$mysqldump -uroot -ppassword database | gzip > backupfile.sql.gz

5.备份某些表:
$mysqldump -uroot -ppassword database table_1 table_2 > backupfile.sql

6.备份多个数据库:
$mysqldump -uroot -ppassword -databases database1 database2 > backupfile.sql

7.仅备份数据库结构:
$mysqldump -no-data -databases database1 database2 > backupfile.sql

8.增量备份:
使用二进制日志进行增量备份,需要开启二进制日志

flush tables with read lock;
flush logs;
mysqlbinlog mysql-binlog.000092 >/tmp/increment.sql
unlock tables;

数据恢复:
1.操作系统中恢复:
$mysql -uroot -ppassword database < /tmp/kasumi
2.还原压缩的备份文件:
$gunzip < backupfile.sql.gz | mysql -uroot -ppassword database
3.连接数据库进行恢复:

source /tmp/kasumi;
4.恢复增量备份:
$mysqlbinlog mysql-binlog.000092 | mysql -uroot -pkasumi
4.导入数据恢复:
use traderaccount;
load data infile '/tmp/kasumi' into table t1;

原文地址:https://www.cnblogs.com/kasumi/p/6349149.html