ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

msyqldump实现mysql逻辑轻量备份

2021-11-11 20:58:58  阅读:175  来源: 互联网

标签:tmp +------+------+------+ 轻量 备份 sql msyqldump mysql tmp1


逻辑备份
备份的是建表、建库、插入等操作所执行的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)

标签:tmp,+------+------+------+,轻量,备份,sql,msyqldump,mysql,tmp1
来源: https://blog.csdn.net/weixin_45939085/article/details/121272169

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有