mysql 逻辑备份_mysql物理完全备份和逻辑完全备份

mysql物理完全备份:

数据库物理备份: tar

1,准备环境(模拟企业中存放数据库磁盘损坏):(工作中千万不能做) ------删库跑路

systemctl stop mysqld

rm -rf /var/lib/mysql/* 如果误删mysql目录就新建目录并授予权限chown -R mysql.mysql

备份过程

#1,停止数据库服务

systemctl stop mysqld ///企业中千万不能做

#2,创建备份目录

mkdir /backup

#3,tar 压缩数据库内容到备份目录下

tar -cf /backup/`date +%F`-mysql-all.tar /var/lib/mysql

#4,重启数据库

systemctl start mysqld

恢复过程

1,停止数据库服务

systemctl stop mysqld

2,导入备份数据

tar -xf /backup/2016-12-07-mysql-all.tar -C / 注意权限chown -R mysql.mysql

3,重启数据库

systemctl start mysqld

备份脚本:

#!/bin/bash

systemctl stop mysqld

#mkdir /backup

tar -cf /backup/`date +%F`-mysql-all.tar /var/lib/mysql

systemctl restart mysqld

逻辑完全备份:

mysqldump -h 服务器 -u用户名 -p密码 数据库名 > 备份文件.sql

备份:

mysqldump -p123 \

--all-databases --single-transaction \

锁表保持数据一致性和可用性

--master-data=2 \

注释掉日志记录 1和2的区别就是注释 1:不注释 2:注释

--flush-logs > /backup/`date +%F-%H`-mysql-all.sql

刷新/截断日志 备份目录

cp /var/lib/mysql/*bin* ~

拷贝数据库二进制文件 以便于恢复备份点到灾难点之间没有备份的数据

恢复:

mysql -p'123' < /backup/2016-12-08-04-mysql-all.sql

mysql -p'123' -e 'flush privileges'

重启服务;

此时恢复的是已经备份的数据

数据库最后一次备份和灾难点之间的数据还没有恢复

二进制日志恢复操作 (备份点到灾难点之间没有备份的数据)

恢复

mysqlbinlog localhost-bin.000002 localhost-bin.000003 --start-position=154 | mysql -p'123'

查看二进制文件 斩断后的日志 交给

注:恢复之前先关闭二进制文件

mysql> set sql_log_bin =0

mysql> source /backup/*.sql

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值