Mysql(日志、备份与恢复)【三】

  1. 备份类型在这里插入图片描述

  2. 备份的数据量在这里插入图片描述

  3. 备份的文件
    包括:数据目录下的文件,二进制文件,配置文件

  4. 备份工具在这里插入图片描述

  5. mysql变量在这里插入图片描述
    查看慢查询时间在这里插入图片描述

  6. 日志在这里插入图片描述如果想修改或者添加日志,在配置文件添加相关配置信息即可

  7. 二进制日志在这里插入图片描述

  8. 下载好mysql数据库后一般都需要先启动二进制日志在配置文件添加一行,并且建议不要默认放在数据目录,与数据目录分别放在不同的磁盘比较好在这里插入图片描述注:mysql-bin可以前面添加路径 但此目录需要修改属主和属组
    重启mysql服务即可
    默认目录在/var/lib/mysql数据目录下;查看命令mysqlbinlog mysql-bin.000001在这里插入图片描述

  9. 查看二进制文件内容在这里插入图片描述

  10. 在mysql查看二进制文件都有哪些操作在这里插入图片描述

  11. 查看各二进制文件大小show binary logs;

  12. 二进制文件滚动的三种情况
    在这里插入图片描述

  13. 输出时间年月日时间在这里插入图片描述

逻辑备份

mysqldump工具的使用:逻辑备份
mysqldump(完全备份) + 二进制日志文件
完全备份+增量备份

常用选项:
db_name [tb1] [tb2]:备份指定数据库或表
备份库时不包含创建库的命令,恢复时,需要先创建空白库

--master-data={1|2}
   1:以change master to的方式记录位置,可以用于恢复后直接启动从服务器
   2:以change master to的方式记录位置,但默认被注释
   
#mysqldump -uroot -p --master-data=2 cloud2 person > ./bakup/cloud2_person-$(date +%Y%m%d).sql
     查看备份文件内容,可以看到以change master to方式记录的二进制文件名称和位置
	 
--lock-all-talbes
      锁定所有表
	  
--flush-logs
       执行二进制日志文件滚动
	   
如果指定库中的表的存储引擎类型为InnoDB,可以使用选项--single-transaction启动热备份,不要与--all-l    ock-tables一起使用

备份多个库:
    --all-databases: 备份所有库
	
	mysqldump -uroot -p --master-data=1 --lock-all-tables --flush-logs --all-databases
	 > bakup/all-$(%Y%m%d).sql
	 
--databases <db_name>: 备份指定库
     此两个选项本分事会备份创建库的命令,因此,恢复时不用创建空白库

示例:使用mysqldump备份数据库,利用二进制日志实现即时点还原 备份策略:

     mysqldump(完全备份)
	 每日备份二进制日志,实现增量备份
  1. 准备备份磁盘设备 /backup

  2. mkfs.ext4 /dev/sdb1

  3. vim /etc/fstab
    /dev/sdb1 /backup ext4 defaults 0 0

  4. 进行完全备份:
    mysqldump -uroot -p --lock-all-tables --flush-logs --master-data=2 --all-databases > /backup/$(date +%F-%T).all_db.sql
    5.通过删除模拟增量备份:
    mysql> delete from cloud2.person where id=6;
    Query OK, 0 rows affected (0.02 sec)

    mysql> select * from cloud2.person;
    ±—±----------±----+
    | id | user_name | age |
    ±—±----------±----+
    | 1 | zhangsan | 10 |
    | 2 | lisi | 33 |
    | 3 | zhangsan | 20 |
    | 4 | wangwu | 30 |
    | 5 | wangwu2 | 30 |
    ±—±----------±----+
    5 rows in set (0.00 sec)

6.备份新二进制日志文件,实现增量备份
[root@mysql ~]# mysqlbinlog /var/lib/mysql/mysql-bin.000013 > /backup/$(date +%F-%T).in creament.sql
7.查看新的日志文件
mysql> show master status\G
*************************** 1. row ***************************
File: mysql-bin.000013
Position: 154
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in set (0.01 sec)

8.再次通过插入模拟增量备份
mysql> insert into cloud2.person(user_name, age) values(‘aaa’, 60),(‘bbb’,70);
Query OK, 2 rows affected (0.03 sec)
Records: 2 Duplicates: 0 Warnings: 0

9.备份新的二进制文件,实现增量备份
mysql> show master status;
±-----------------±---------±-------------±-----------------±------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
±-----------------±---------±-------------±-----------------±------------------+
| mysql-bin.000014 | 434 | | | |
±-----------------±---------±-------------±-----------------±------------------+
1 row in set (0.00 sec)
[root@mysql ~]# mysqlbinlog --start-position=434 /var/lib/mysql/mysql-bin.000014 > /backup/$(date +%F-%T).increament2.sql
[root@mysql ~]# ll /backup/
总用量 864
-rw-r–r-- 1 root root 857223 10月 29 17:15 2019-10-29-17:15:03.all_db.sql
-rw-r–r-- 1 root root 862 10月 29 22:09 2019-10-29-22:09:45.increament.sql
-rw-r–r-- 1 root root 2243 10月 29 22:18 2019-10-29-22:18:50.increament2.sql
drwx------ 2 root root 16384 10月 29 17:01 lost+found

数据恢复
1.[root@mysql ~]# systemctl stop mysqld
[root@mysql ~]# rm -rf /var/lib/mysql/*

2.重启数据库服务
systemctl start mysqld;

3.重新设置root数据库密码:
[root@mysql ~]# grep ‘password’ /var/log/mysqld.log
[root@mysql ~]# mysqladmin -uroot -p password “new password”
Enter password:用此命令检索出的密码:grep ‘password’ /var/log/mysqld.log

4.先恢复完全备份,再依次恢复增量备份
[root@mysql ~]# mysql -u root -p < /backup/2019-10-29-17:15:03.all_db.sql

mysql> show databases;
±-------------------+
| Database |
±-------------------+
| information_schema |
| cloud2 |
| mysql |
| performance_schema |
| sys |
±-------------------+
5 rows in set (0.02 sec)
也可在mysql数据库里还可以实行以下命令恢复数据
source /backup/2019-10-29-22:09:45.increament.sql
source /backup/2019-10-29-22:18:50.increament2.sql
注:在mysql里可以执行shell命令\! 后接命令 实现在主机操作在这里插入图片描述

使用Select实现逻辑备份在这里插入图片描述

再使用load data 恢复数据在这里插入图片描述

物理备份

xtrabackup实现物理备份

  1. 完全备份:

在这里插入图片描述
具体步骤:在这里插入图片描述
注:记得把/var/lib/mysql数据目录的属主和属组改成mysql
2. 完全备份加增量备份在这里插入图片描述
恢复增量备份在这里插入图片描述

LVM完全备份

在这里插入图片描述
注:锁表时不能退出mysql ,只能再开个终端操作
增量备份则用二进制文件导入即可

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT_Bigboy_sz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值