Mysql逻辑全量备份-mysqldump

mysql逻辑备份典型工具代表是mysqldump,一般数据量不大的情况通过mysqldump进行定时全量逻辑备份完全能够胜任。下面我们就演示如何使用mysqldump实现逻辑全量备份。

mysqldump-备份

 官方文档:https://dev.mysql.com/doc/refman/5.6/en/mysqldump.html

备份命令:

mysqldump \
-hlocalhost \
-P3306 \
-uroot \
--single-transaction \
--flush-logs \
--events \
--master-data=2 \
--routines \
--triggers \
--flush-privileges \
--default-character-set=utf8 \
--databases test_backup > /opt/backup/mysql/logic/full/`date +%Y-%m-%d`.sql

--single-transaction: 基于InnoDB表保证数据一致性,但不要同时使用--lock-all-tables或--lock-table; --master-data=2: 记录备份那一时刻的二进制日志的位置(-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000008', MASTER_LOG_POS=154;这行语句),并且注释掉,1是不注释的;---databases: 指定导出的数据库,注意--all--databases可以导出所有数据库,但是要注意很多mysql默认数据库会缺失,比较多坑;

--flush-logs:在开始转储之前(一般在锁住表后备份前)新创建一个MySQL二进制日志文件,例如mysql-bin.000005通过flush-logs命令后目录下会多一个mysql-bin.000006,并且新的日志会写到新创建的000006文件下。这个命令很有作用,可以避免从文件中间进行操作。。

--routines:从转储的数据库转储存储的例程(过程和函数)

--triggers:备份表相关触发器

--events:备份事件信息

--flush-privileges:导出mysql数据库权限,虽然这里没什么用,一般生产配合--all-databases一起使用。

mysqldump-恢复

注意,建议根据前面文章【理解Mysql备份和恢复】恢复指导思想进行操作,下面模拟发生数据库故障导致数据损坏

rm -rf /usr/local/mysql/data/test_backup/*

 

开始模拟恢复数据。

1、关闭mysql服务

由于mysqldump不能真正关闭mysql服务,所以这里关闭意义是关闭外部访问,可以修改配置文件my.cnf添加配置skip-networking然后重启mysql服务

2、开始恢复

# 根据恢复指导思想,需要对故障数据库现场保留一份

tar -zcvf mysql.tar.gz /usr/local/mysql

# 必须先删除故障数据库

drop database test_backup;

# 再手工创建

create database test_backup;

# 关闭二进制日志记录,防止重复记录

set sql_log_bin=0;

source /opt/backup/mysql/logic/full/2019-09-09.sql;

# 开启二进制日志记录

set sql_log_bin=1;

 

也可以使用mysql test_backup < /opt/backup/mysql/logic/full/2019-09-09.sql进行恢复。该命令不需要登录进入mysql命令行执行,而是在服务器命令行执行。

3、查看恢复情况

 

 至此,通过mysqldump实现逻辑全量备份演示完毕!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值