msyqldump实现mysql逻辑轻量备份
2021/11/12 2:11:08
本文主要是介绍msyqldump实现mysql逻辑轻量备份,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
逻辑备份
备份的是建表、建库、插入等操作所执行的sql语句
适用于中小型数据、效率相对较低,一般在数据库正常提供服务下进行:mysqldump、mydumper、into outfile等
备份实质:是把要备份的数据导出为.sql文件(里面存放的是当前数据库实现的sql语言)
数据准备:
创建一个tmp的数据库,在tmp库下创建tmp1表,分别写入数据 msyql> create database tmp; msyql> use tmp; mysql> create table test1( id int not null, name varchar(20),age int(10),primary key(id)) engine=innodb default charset=utf8; msyql> insert into tmp1 values(1,'tmp',22); mysql> select *from tmp1; +------+------+------+ | id | name | age | +------+------+------+ | 1 | tom | 22 | +------+------+------+ 1 row in set (0.00 sec)
逻辑全量备份
表级别备份
语法格式:
mysqldump 库名 表名列表 > 备份到的地址 -p
如果要备份多个表,表与表之间用空格隔开
将tmp库tmp1表逻辑备份 [root@localhost bin]# mysqldump tmp tmp1 > /tmp/sqlbak/tmp1.sql -p Enter password: 这里输入数据库用户的密码
如果没有添加MySQL到环境变量,执行mysqldump需要到mysq/bin目录下执行
这里可以打开tmp1.sql看一看
cat tmp1.sql
可以看出这个文件里面存入的都是这张表的sql语句。
现在可以模拟MySQL数据丢失
删除表模拟数据丢失 mysql> drop table tmp1; Query OK, 0 rows affected (0.00 sec)
利用备份恢复
mysql> source /tmp/sqlbak/tmp1.sql Enter password: 或者使用这个命令 [root@localhost sqlbak]# mysql -p tmp < /tmp/sqlbak/tmp1.sql Enter password:
查询数据是否恢复
mysql> select *from tmp1; +------+------+------+ | id | name | age | +------+------+------+ | 1 | tom | 22 | +------+------+------+ 1 row in set (0.00 sec)
库级别备份与还原
语法格式:
mysqldump [选项] --databases [选项] 库名
[root@localhost bin]# mysqldump --databases tmp > /tmp/sqlbak/tmp.txt -p Enter password:
模拟数据故障
删除数据库模拟故障 mysql> drop database tmp; Query OK, 1 rows affected (0.01 sec)
利用备份恢复
mysql> source /tmp/sqlbak/tmp.txt 或者使用这个命令 [root@localhost sqlbak]# mysql -p tmp < /tmp/sqlbak/tmp1.txt Enter password:
查询恢复数据
mysql> select *from tmp.tmp1; +------+------+------+ | id | name | age | +------+------+------+ | 1 | tom | 22 | +------+------+------+ 1 row in set (0.00 sec)
全库级备份
mysqldump [选项] --all-databases [选项]
语法格式:mysqldump [选项] 数据库名 表名列表
mysqldump选项说明
–master-data 选项说明:
1、在恢复数据时选择,默认是1
2、需要RELOAD privilege并必须打开二进制文件
3、这个选项会自动打开–lock-all-tables,关闭–lock-tables
如果要用mysqldump进行全库级备份,必须开启二进制日志
vim /etc/my.cnf
修改完后重启mysql
service mysql restart
开始全库备份
[root@localhost data]# mysqldump --all-databases --master-data --single-transaction > /tmp/sqlbak/all.sql -p Enter password:
删除一些数据用于测试
删除数据库模拟故障 mysql> drop database tmp; Query OK, 1 rows affected (0.01 sec)
利用备份恢复数据
mysql> source /tmp/sqlbak/all.sql 或者使用这个命令 [root@localhost data]# mysql < /tmp/sqlbak/all.sql -p Enter password:
查询数据是否以及恢复
mysql> select *from tmp.tmp1; +------+------+------+ | id | name | age | +------+------+------+ | 1 | tom | 22 | +------+------+------+ 1 row in set (0.00 sec)
这篇关于msyqldump实现mysql逻辑轻量备份的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-07MySQL读写分离入门:轻松掌握数据库读写分离技术
- 2024-12-07MySQL读写分离入门教程
- 2024-12-07MySQL分库分表入门详解
- 2024-12-07MySQL分库分表入门指南
- 2024-12-07MySQL慢查询入门:快速掌握性能优化技巧
- 2024-12-07MySQL入门:新手必读的简单教程
- 2024-12-07MySQL入门:从零开始学习MySQL数据库
- 2024-12-07MySQL索引入门:新手快速掌握MySQL索引技巧
- 2024-12-06BinLog学习:MySQL数据库BinLog入门教程
- 2024-12-06Binlog学习:MySQL数据库的日志管理入门教程