mysql之备份和导入数据(包括二进制日志)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: mysql之备份和导入数据(包括二进制日志)

前言:今天早上在写博客时,思索再三,没有更好的头绪,就想起了以前在操作mysql的时候,经常要用的一些命令,下面就来简单介绍一下

备份数据:

C:\Users\xxxx>mysqldump -uxxx -pxxx backup > backup.sql

C:\Users\xxxx>
mysqldump :mysql用于存储数据库的应用程序,会产生一个sql文件,如上文的backup.sql,其中包含了数据库的create、insert into等语句。

随后我们使用dir命令查看一下C:\Users\xxxx>目录的文件列表,可以看到

2014/08/23 10:15 1,271 backup.sql
恢复数据:

mysql> use backup;
Database changed
mysql> source C:\Users\xxxx\backup.sql
Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.03 sec)
使用mysql命令进入到mysql命令行,使用use backup切换数据库,然后使用source命令进行数据的恢复。

以上source命令在处理mysql的大量数据恢复时,速度还是比较可观的。

但是我们在真实的项目当中,经常需要用到二进制日志,那么下面我们来做一个二进制的日志备份操作

首先:我们查看一下mysql二进制日志是否开启

mysql> show variables like 'log_bin';
Variable_name Value
log_bin OFF

1 row in set (0.14 sec)

第二步:我们开启二进制日志(在Windows的mysql安装目录中的my.ini文件中增加以下内容,确保你的f盘有mysqlbin目录)

add log-bin

log-bin=f:/mysqlbin/binlog.log

set the database for test

binlog-do-db=backup

第三步:我们重启一下mysql

C:\Users\xxxx>net stop mysql
MySQL 服务正在停止.
MySQL 服务已成功停止。

C:\Users\xxxx>net start mysql
MySQL 服务正在启动 .
MySQL 服务已经启动成功。
第四步:再次查看log_bin是否开启

mysql> show variables like 'log_bin';
Variable_name Value
log_bin ON

1 row in set (0.00 sec)

第五步:对backup数据库进行一下操作,假如已经存在

mysql> show columns from binlog;
Field Type Null Key Default Extra
id int(11) YES NULL

1 row in set (0.08 sec)

mysql>
我们插入一条数据

mysql> insert into binlog values (2);
Query OK, 1 row affected (0.01 sec)

mysql> select * from binlog;
id
1
2

2 rows in set (0.00 sec)

mysql>

第六步:我们查看一下二进制日志目录

F:\mysqlbin>dir
驱动器 F 中的卷是 F:
卷的序列号是 000C-A0EB

F:\mysqlbin 的目录

2014/08/23 11:02

.
2014/08/23 11:02 ..
2014/08/23 11:02 126 binlog.000001
2014/08/23 11:02 107 binlog.000002
2014/08/23 11:02 52 binlog.index
           3 个文件            285 字节
           2 个目录 117,389,742,080 可用字节

第七步:我们再使用mysqlbinlog查看一下,内容比较多,上下使用了...空过,可以看到"insert into binlog values (2)"为我们刚刚操作的内容

F:\mysqlbin>mysqlbinlog binlog.000002
...
use backup/!/;
SET TIMESTAMP=1408763281/!/;
insert into binlog values (2)
/!/;

at 271

140823 11:08:01 server id 1 end_log_pos 298 Xid = 9

...

那么我们再次回去标题讲的二进制日志恢复和备份,备份就如前文所讲,那么就再来说说二进制的恢复

第一种:使用source命令,二进制日志是不能直接通过source命令来恢复,那么我们需要按照以下步骤来进行

第一步:先将二进制日志转换成普通sql文件

F:\mysqlbin>mysqlbinlog -uxxx -pxxx binlog.000001 > binlog1.sql

F:\mysqlbin>mysqlbinlog -uxxx -pxxx binlog.000002 > binlog2.sql

F:\mysqlbin>dir
驱动器 F 中的卷是 F:
卷的序列号是 000C-A0EB

F:\mysqlbin 的目录

2014/08/23 11:22

.
2014/08/23 11:22 ..
2014/08/23 11:02 126 binlog.000001
2014/08/23 11:08 298 binlog.000002
2014/08/23 11:02 52 binlog.index
2014/08/23 11:22 644 binlog1.sql
2014/08/23 11:22 1,569 binlog2.sql
           5 个文件          2,689 字节
           2 个目录 117,389,737,984 可用字节

第二步:新建一个sql文件,里面输入以下内容

source F:\mysqlbin\binlog1.sql
source F:\mysqlbin\binlog2.sql

第三步:导入以上的sql文件

mysql> source C:\Users\xxx\backup.sql
Query OK, 0 rows affected (0.00 sec)

第二种方法,使用mysqlbinlog

F:\mysqlbin>mysqlbinlog binlog.000001 | mysql -uroot -proot

F:\mysqlbin>mysqlbinlog binlog.000002 | mysql -uroot -proot

最后:这些简单的,常用的命令,以及使用方式都是非常值得总结的。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1天前
|
存储 Oracle 关系型数据库
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
本文介绍了MySQL InnoDB存储引擎中的数据文件和重做日志文件。数据文件包括`.ibd`和`ibdata`文件,用于存放InnoDB数据和索引。重做日志文件(redo log)确保数据的可靠性和事务的持久性,其大小和路径可由相关参数配置。文章还提供了视频讲解和示例代码。
67 10
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
|
2天前
|
关系型数据库 MySQL Linux
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
13 3
|
2天前
|
监控 关系型数据库 MySQL
Linux环境下MySQL数据库自动定时备份策略
在Linux环境下,MySQL数据库的自动定时备份是确保数据安全和可靠性的重要措施。通过设置定时任务,我们可以每天自动执行数据库备份,从而减少人为错误和提高数据恢复的效率。本文将详细介绍如何在Linux下实现MySQL数据库的自动定时备份。
12 3
|
1月前
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
1612 14
|
1天前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的联机重做日志文件与数据写入过程
在Oracle数据库中,联机重做日志文件记录了数据库的变化,用于实例恢复。每个数据库有多组联机重做日志,每组建议至少有两个成员。通过SQL语句可查看日志文件信息。视频讲解和示意图进一步解释了这一过程。
|
1月前
|
安全 关系型数据库 MySQL
MySQL用户备份
【10月更文挑战第2天】MySQL用户备份
53 3
|
1月前
|
SQL 存储 关系型数据库
Mysql主从同步 清理二进制日志的技巧
Mysql主从同步 清理二进制日志的技巧
26 1
|
19天前
|
存储 关系型数据库 MySQL
MySQL中的Redo Log、Undo Log和Binlog:深入解析
【10月更文挑战第21天】在数据库管理系统中,日志是保障数据一致性和完整性的关键机制。MySQL作为一种广泛使用的关系型数据库管理系统,提供了多种日志类型来满足不同的需求。本文将详细介绍MySQL中的Redo Log、Undo Log和Binlog,从背景、业务场景、功能、底层实现原理、使用措施等方面进行详细分析,并通过Java代码示例展示如何与这些日志进行交互。
32 0
|
3天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
14 4
|
1天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
5 1

推荐镜像

更多
下一篇
无影云桌面