mysql 备份王_MySQL备份与还原

MySQL备份与还原

一、数据备份

1.备份方式

1)全量备份:对数据库完整的备份

2)增量备份:从最后一次备份后改变的文件

3)差异备份:在最后一次完整后被修改的文件

建议:全量+增量=1月全量,1周增量

2.备份分类

1)物理备份

冷备份:关闭数据后

热备份:数据运行状态时

2)逻辑备份

对逻辑对象(表、库)备份

二、完整备份

1.特性

1)数据完整

2)数据较庞大

3)时间长,重复性数据

打包、cp、mysqldump

案例:

1.准备数据

//新建hehe数据库 mysql> create database hehe;

3c6e3640a476f58c80d1a78523d96ecb.png

//向hehe数据库添加a表和格式 mysql>create table hehe.a(user char(4),password char(8),primary key(user));

78ab7e5b8c55d730add611a5d2a9e8c4.png

//插入表内数据 mysql> insert into hehe.a values('Zhangs','123');

1dc2b6fb614f84970ceb73b06e2bcf40.png

//插入表内数据 mysql> insert into hehe.a values('Lisi','123');

471d58137c3bc97c64146396cf9ca64b.png

2.备份

方式一:(冷备份)

//关闭数据库 /etc/init.d/mysqld stop

32bc3b30f75ba5a164ba4177b7b73ca1.png

//备份数据库 tar -zcvf /root/mysql.bak /usr/local/mysql/data/

1a318add0e5d31d0fb7b5bd90775bb9a.png

方式二:(热备份)

mysqldump -u root -p --all-database >/root/mysql.sql //热备份,数据库不需停止,备份所有数据库

1eff7c78df009fe7f1670bd49800f31b.png

方式三:(压缩锁表热备份)

//使用压缩方式来做数据库热备份

mysqldump -h localhost -uroot -p --opt --single-transaction 库名 | gzip > 库名.sql.gz

//导入数据库

gzip -dc 库名.sql.gz | mysql -uroot -p 数据库密码

注:以上热备份方式三最为安全!

3.模拟故障

//误删除hehe数据库 mysql> drop database hehe;

80bd0e932b926412fcc835a3f3c3e923.png

4.恢复

方式一:(冷恢复)

//关闭数据库 /etc/init.d/mysqld stop

296d9e9d15169b763aeb92cd91005795.png

//tar -zxvf /root/mysql.bak -C /

5cdce184ea4ab120029c0b50f5990f9f.png

方式二:(热恢复)

//进入数据执行命令 mysql> source /root/mysql.sql

18db33beafed40bd961cefe0c6512eb5.png

方式三:(热恢复)

//恢复数据mysql -u root -p < /root/mysql.sql

7a37b73a95fd98bc2942bf05277a87bb.png

三、增量备份

1.Mysql不自带增量备份方式,需通过Binary logs(记录所有更改操作)实现增量

案例:

1)准备数据(同上准备数据)

1455ce086f637e58903a71511c75e37d.png

2)开启二进制日志

//编辑MySQL数据库配置文件 vim /etc/my.cnf

cfa291dbb602dd89b3f29bcf83d553d2.png

e076c5788bed3eb747c7ae6cc1aba004.png

704e8646bf47fb3911e27bc91e3ff2dd.png

//重启MySQL服务 /etc/init.d/mysqld restart

ac1479bb225a8b63a069658675673ae0.png

3.完整备份

方式一:(冷备份)

/etc/init.d/mysqld stop

83369db3fb6ae6cdeb399c5d1b45d81b.png

//备份数据库 tar -zcvf /root/mysql.bak /usr/local/mysql/data/

95d6e55f8341680f2704c557f33017e4.png

方式二:(热备份)

mysqldump -u root -p --all-database >/root/mysql.sql //热备份,数据库不需停止,备份所有数据库

68e07548f6e2a895a621cf706cffa4bd.png

4.数据增加

//查看二进制文件 ls /usr/local/mysql/data/

708cde4745129a495ec1e2756ebf8ec5.png

//截取二进制文件准备增加数据 mysqladmin -u root -p flush-logs

52501d4180d7ba5dbb5871a7edd627b2.png

//查看二进制文件 ls /usr/local/mysql/data/

9510833a21ac7773afda1a5171cc715e.png

//登录数据库添加数据 mysql> insert into hehe.a values('wang','123');

cdd2fd1cc787d5eab2d518ac8a1c9ad6.png

//生成一个新的二进制文件 mysql> flush log;

1fc8f640975eda4c5a04f92455ae973f.png

//退出数据库查看 ls /usr/local/mysql/data/

abdad4f476d7a61ed10ba8c78e1b59c2.png

5.增量备份(需要还原的数据都在mysql-bin.000032这里)

//拷贝增加的数据 cp /usr/local/mysql/data/mysql-bin.000032 /root/

e8ea507541e84c331b05022ae5000ff9.png

//查看/root/目录 (如以下情况已经成功备份新增加数据)

093757560ef8a01867fb50194f4522a9.png

6.数据删除

//登陆数据库误删除 mysql> delete hehe.a from haha.a where user='lisi';

45a689760da300ec645ad7434fe7f516.png

7.增量还原

//还原删除的新增数据mysqlbinlog mysql-bin.000018 | mysql -u root -p

bceb6cbdc54a06767a64b175b7737c74.png

//查看数据库 select * from hehe.a;

30ecae769e00bf94c7fb275a9980fa07.png

注:增量还原成功

8.验证

//登录数据库查看数据是否还原 mysql> select * from hehe.a;

5e232ab115b8ed6e99d1d7249764c3d7.png

注:如果做增量数据备份一定在增量前截取二进制数据,在备份完成时应再次截取二进制数据,切记一旦数据丢失所需要还原的增量数据为增量前截取的二进制数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值