Mysql备份与还原实例
一、备份数据库
----清空一下日志
mysql> reset master;
Query OK, 0 rows affected (0.02 sec)
----查看一下echo表的存储引擎
mysql> show table status like 'echo' \G;
*************************** 1. row ***************************
Name: echo
Engine: InnoDB
Version: 10
Row_format: Compact
Rows: 3
Avg_row_length: 5461
Data_length: 16384
Max_data_length: 0
Index_length: 0
Data_free: 94371840
Auto_increment: NULL
Create_time: 2013-09-23 16:45:31
Update_time: NULL
Check_time: NULL
Collation: utf8_general_ci
Checksum: NULL
Create_options:
Comment:
1 row in set (0.00 sec) ERROR:
No query specified
----开始备份
[root@rhel5 dump]# mysqldump -u root -p --skip-opt --quick --extended-insert=false --single-transaction --master-data=2 --databases jack > /mysql/mysql5.5/dump/echo.sql Enter password:
[root@rhel5 dump]# ll
总计 4
-rw-r--r-- 1 root root 1558 09-23 21:47 echo.sql
---查看备份出来的sql
[root@rhel5 dump]# more echo.sql
-- MySQL dump 10.13 Distrib 5.5.22, for Linux (i686)
--
-- Host: localhost Database: jack
-- ------------------------------------------------------
-- Server version 5.5.22-log
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; --
-- Position to start replication or point-in-time recovery from
-- -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=107; --
-- Current Database: `jack`
-- CREATE DATABASE /*!32312 IF NOT EXISTS*/ `jack` /*!40100 DEFAULT CHARACTER SET utf8 */; USE `jack`; --
-- Table structure for table `echo`
-- /*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `echo` (
`id` int(11) DEFAULT NULL,
`msg` varchar(100) DEFAULT NULL
);
/*!40101 SET character_set_client = @saved_cs_client */; --
-- Dumping data for table `echo`
-- INSERT INTO `echo` VALUES (1,'aaa');
INSERT INTO `echo` VALUES (1,'bbb');
INSERT INTO `echo` VALUES (1,'人');
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; -- Dump completed on 2013-09-23 21:47:55
二、对表进行修改,然后删除
----插入一下内容
mysql> insert into echo values(4,'ccc');
Query OK, 1 row affected (0.02 sec) mysql> insert into echo values(5,'ddd');
Query OK, 1 row affected (0.01 sec) mysql> select * from echo;
+------+------+
| id | msg |
+------+------+
| 1 | aaa |
| 1 | bbb |
| 1 | 人 |
| 4 | ccc |
| 5 | ddd |
+------+------+
5 rows in set (0.00 sec) mysql> drop table echo;
Query OK, 0 rows affected (0.02 sec) mysql> select * from echo;
ERROR 1146 (42S02): Table 'jack.echo' doesn't exist
三、查看表删除的位置
mysql> show binary logs;
+------------------+-----------+
| Log_name | File_size |
+------------------+-----------+
| mysql-bin.000001 | 593 |
+------------------+-----------+
1 row in set (0.00 sec) mysql> flush logs;
Query OK, 0 rows affected (0.01 sec) mysql> show binlog events;
+------------------+-----+-------------+-----------+-------------+---------------------------------------------------------+
| Log_name | Pos | Event_type | Server_id | End_log_pos | Info |
+------------------+-----+-------------+-----------+-------------+---------------------------------------------------------+
| mysql-bin.000001 | 4 | Format_desc | 1 | 107 | Server ver: 5.5.22-log, Binlog ver: 4 |
| mysql-bin.000001 | 107 | Query | 1 | 175 | BEGIN |
| mysql-bin.000001 | 175 | Query | 1 | 270 | use `jack`; insert into echo values(4,'ccc') |
| mysql-bin.000001 | 270 | Xid | 1 | 297 | COMMIT /* xid=176 */ |
| mysql-bin.000001 | 297 | Query | 1 | 365 | BEGIN |
| mysql-bin.000001 | 365 | Query | 1 | 460 | use `jack`; insert into echo values(5,'ddd') |
| mysql-bin.000001 | 460 | Xid | 1 | 487 | COMMIT /* xid=177 */ |
| mysql-bin.000001 | 487 | Query | 1 | 593 | use `jack`; DROP TABLE `echo` /* generated by server */ |
| mysql-bin.000001 | 593 | Rotate | 1 | 636 | mysql-bin.000002;pos=4 |
+------------------+-----+-------------+-----------+-------------+---------------------------------------------------------+
9 rows in set (0.00 sec)
----从上面可以看出drop table 是在487----
mysql> show binary logs;
+------------------+-----------+
| Log_name | File_size |
+------------------+-----------+
| mysql-bin.000001 | 636 |
| mysql-bin.000002 | 107 |
+------------------+-----------+
2 rows in set (0.00 sec) mysql> show binlog events in 'mysql-bin.000001' \G;
*************************** 1. row ***************************
Log_name: mysql-bin.000001
Pos: 4
Event_type: Format_desc
Server_id: 1
End_log_pos: 107
Info: Server ver: 5.5.22-log, Binlog ver: 4
*************************** 2. row ***************************
Log_name: mysql-bin.000001
Pos: 107
Event_type: Query
Server_id: 1
End_log_pos: 175
Info: BEGIN
*************************** 3. row ***************************
Log_name: mysql-bin.000001
Pos: 175
Event_type: Query
Server_id: 1
End_log_pos: 270
Info: use `jack`; insert into echo values(4,'ccc')
*************************** 4. row ***************************
Log_name: mysql-bin.000001
Pos: 270
Event_type: Xid
Server_id: 1
End_log_pos: 297
Info: COMMIT /* xid=176 */
*************************** 5. row ***************************
Log_name: mysql-bin.000001
Pos: 297
Event_type: Query
Server_id: 1
End_log_pos: 365
Info: BEGIN
*************************** 6. row ***************************
Log_name: mysql-bin.000001
Pos: 365
Event_type: Query
Server_id: 1
End_log_pos: 460
Info: use `jack`; insert into echo values(5,'ddd')
*************************** 7. row ***************************
Log_name: mysql-bin.000001
Pos: 460
Event_type: Xid
Server_id: 1
End_log_pos: 487
Info: COMMIT /* xid=177 */
*************************** 8. row ***************************
Log_name: mysql-bin.000001
Pos: 487
Event_type: Query
Server_id: 1
End_log_pos: 593
Info: use `jack`; DROP TABLE `echo` /* generated by server */
*************************** 9. row ***************************
Log_name: mysql-bin.000001
Pos: 593
Event_type: Rotate
Server_id: 1
End_log_pos: 636
Info: mysql-bin.000002;pos=4
9 rows in set (0.00 sec) ERROR:
No query specified
四、查看备份的位置
[root@rhel5 dump]# more echo.sql
-- MySQL dump 10.13 Distrib 5.5.22, for Linux (i686)
--
-- Host: localhost Database: jack
-- ------------------------------------------------------
-- Server version 5.5.22-log
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; --
-- Position to start replication or point-in-time recovery from
-- -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=107; --
-- Current Database: `jack`
-- CREATE DATABASE /*!32312 IF NOT EXISTS*/ `jack` /*!40100 DEFAULT CHARACTER SET utf8 */; USE `jack`; --
-- Table structure for table `echo`
-- /*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `echo` (
`id` int(11) DEFAULT NULL,
`msg` varchar(100) DEFAULT NULL
);
/*!40101 SET character_set_client = @saved_cs_client */; --
-- Dumping data for table `echo`
-- INSERT INTO `echo` VALUES (1,'aaa');
INSERT INTO `echo` VALUES (1,'bbb');
INSERT INTO `echo` VALUES (1,'人');
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; -- Dump completed on 2013-09-23 21:47:55 [root@rhel5 dump]# grep "CHANGE MASTER" ./echo.sql
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=107;
五、还原数据库
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| jack |
| mysql |
| performance_schema |
| test |
+--------------------+
5 rows in set (0.01 sec)
----因为没有测试库,所以只能把jack数据库给删除掉
mysql> drop database jack;
Query OK, 0 rows affected (0.02 sec)
----还原数据库
[root@rhel5 dump]# mysql -u root -p < ./echo.sql
Enter password: mysql> use jack
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A Database changed
mysql> show tables;
+----------------+
| Tables_in_jack |
+----------------+
| echo |
+----------------+
1 row in set (0.00 sec)
---已经还原到表被修改之前
mysql> select * from echo;
+------+------+
| id | msg |
+------+------+
| 1 | aaa |
| 1 | bbb |
| 1 | 人 |
+------+------+
3 rows in set (0.01 sec) mysql> show binary logs;
+------------------+-----------+
| Log_name | File_size |
+------------------+-----------+
| mysql-bin.000001 | 636 |
| mysql-bin.000002 | 1065 |
+------------------+-----------+
2 rows in set (0.00 sec) mysql> show binlog events in 'mysql-bin.000002';
+------------------+------+-------------+-----------+-------------+----------------------------------------------------------------------------------------------------+
| Log_name | Pos | Event_type | Server_id | End_log_pos | Info |
+------------------+------+-------------+-----------+-------------+----------------------------------------------------------------------------------------------------+
| mysql-bin.000002 | 4 | Format_desc | 1 | 107 | Server ver: 5.5.22-log, Binlog ver: 4 |
| mysql-bin.000002 | 107 | Query | 1 | 188 | drop database jack |
| mysql-bin.000002 | 188 | Query | 1 | 337 | CREATE DATABASE /*!32312 IF NOT EXISTS*/ `jack` /*!40100 DEFAULT CHARACTER SET utf8 */ |
| mysql-bin.000002 | 337 | Query | 1 | 486 | use `jack`; CREATE TABLE `echo` ( `id` int(11) DEFAULT NULL,
`msg` varchar(100) DEFAULT NULL
) |
| mysql-bin.000002 | 486 | Query | 1 | 554 | BEGIN |
| mysql-bin.000002 | 554 | Query | 1 | 652 | use `jack`; INSERT INTO `echo` VALUES (1,'aaa') |
| mysql-bin.000002 | 652 | Xid | 1 | 679 | COMMIT /* xid=206 */ |
| mysql-bin.000002 | 679 | Query | 1 | 747 | BEGIN |
| mysql-bin.000002 | 747 | Query | 1 | 845 | use `jack`; INSERT INTO `echo` VALUES (1,'bbb') |
| mysql-bin.000002 | 845 | Xid | 1 | 872 | COMMIT /* xid=207 */ |
| mysql-bin.000002 | 872 | Query | 1 | 940 | BEGIN |
| mysql-bin.000002 | 940 | Query | 1 | 1038 | use `jack`; INSERT INTO `echo` VALUES (1,'人') |
| mysql-bin.000002 | 1038 | Xid | 1 | 1065 | COMMIT /* xid=208 */ |
+------------------+------+-------------+-----------+-------------+----------------------------------------------------------------------------------------------------+
13 rows in set (0.00 sec)
六、恢复数据库
[root@rhel5 data]# mysqlbinlog -u root -p --start-position=107 --stop-position=487 -vv ./mysql-bin.000001 | mysql -u root -p
Enter password: Enter password:
123456 mysql> select * from echo;
+------+------+
| id | msg |
+------+------+
| 1 | aaa |
| 1 | bbb |
| 1 | 人 |
| 4 | ccc |
| 5 | ddd |
+------+------+
5 rows in set (0.00 sec)
Mysql备份与还原实例的更多相关文章
- mysql 利用binlog增量备份,还原实例
mysql 利用binlog增量备份,还原实例 张映 发表于 2010-09-29 分类目录: mysql 标签:binlog, mysql, mysqldump, 增量备份 一,什么是增量备份 增量 ...
- MySQL备份与还原详细过程示例
MySQL备份与还原详细过程示例 一.MySQL备份类型 1.热备份.温备份.冷备份 (根据服务器状态) 热备份:读.写不受影响: 温备份:仅可以执行读操作: 冷备份:离线备份:读.写操作均中止: 2 ...
- MySQL备份和还原数据
MySQL备份和还原数据 导出整个数据库 mysqldump -uroot -p database_name > db_backup.sql 导入整个数据库 mysql -uroot -p da ...
- MySQL 备份与还原详解
相关阅读: MySQL备份和恢复具体实施 http://www.linuxidc.com/Linux/2012-12/76257.htm MySQL备份与恢复的三种方法总结 http://www.li ...
- mysql 备份与还原
http://dev.yesky.com/281/35291281.shtml 每一种逻辑错误发生的概率都极低,但是当多种可能性叠加的时候,小概率事件就 放大成很大的安全隐患,这时候备份的必要性就凸显 ...
- mysql备份与还原-mysqldump备份、mysql与source还原
以下都以在linux操作系统上的mysql为例 mysqldump备份 mysqldump实际就是将数据库中的数据转化为建库.建表和插入记录的sql语句 1.备份一个数据库 [或其中几个表],不指定表 ...
- mysql备份和还原命令
备份和还原数据库都是在未登录的前提下进行命令操作的: 1.备份表: mysqldump -u root -p dbname table1 table2 > D:\sqlback.sql 2.备份 ...
- MYSQL进阶学习笔记十八:MySQL备份和还原!(视频序号:进阶_37)
知识点十九:MySQL的备份的还原(38) 一.mysql的备份 1.通过使用mysqldump的命令备份 使用mysqldump命令备份,mysqldump命令将数据库中的数据备份成一个文本文件.表 ...
- mysql备份及还原
mysql怎样复制数据库?或者说,将数据库拷贝到另外一台机? 按照我的理解,复制数据库,如果是: 1.直接拷贝数据库文件,应该先停数据服务,否则拷不出来.但是,生产机器,哪能说停就停呢? 2.在线拷贝 ...
随机推荐
- Java遇见HTML——JSP篇之JSP指令与动作元素
一.include指令(如:<%@include file="..."%> ) 示例: Date.jsp <%@page import="java.te ...
- Redis一些基本的操作
代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syst ...
- 第八篇 Replication:合并复制-How it works
本篇文章是SQL Server Replication系列的第八篇,详细内容请参考原文. 在这一系列的前几篇你已经学习了如何在多服务器环境中配置合并复制.这一篇将介绍合并代理并解释它在复制过程中扮演的 ...
- 又来了,SDE非直连
现在sde都推荐直连了,没想到还是遇到了非直连. 用10.1默认是直连,但还支持非直连. 安装半天始终无法启动.系统差点崩了. 原来是sde用户密码过期锁定了,好烦. C:\Program Files ...
- D3D9 浮点精度的问题
最近在对我们的渲染引擎进行优化的时候,发现一个奇怪的现象,因为我们做了Pre-Z(把比较大的物体先绘制一遍,这个时候关闭颜色写,只开启深度测试和写入,目的是为了减少后面一些不可见像素的计算.),面在绘 ...
- Android 开发环境搭建以及编译
两种搭建编译环境的方式,一种方法是用户安装虚拟机,然后安装基础的Ubuntu12.04.2 系统,利用提供的工具和详细的使用步骤,搭建编译环境:另外一种方法是用户安装虚拟机,然后直接加载 “搭建好的U ...
- jQuery的delegate()与proxy()方法
1. jQuery 事件 - delegate() 方法 定义和用法 delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数. 使用 ...
- 改变对update的做法
以前都是 先根据id或者其他条件查出来 再根据查出来的结果 进行修改 再update提交 这里可以改所有的字段 现在是做法 是直接new 一个 Do或者Vo 把要改变的值 先填充进去 然后再去 ...
- 创建Java类并实例化的基本过程
package com.sanguosha.java; /* * 面向对象实现的过程 * 1.创建类并设计类的成员(成员变量即属性and成员方法即方法) * 2.通过类来创建类的对象,也称类的实例化 ...
- JAVA多线程与多进程
并发与并行是两个既相似而又不相同的概念,但往往容易混为一谈,这两者究竟有什么区别呢?本文通过一个例子让你更好地理解(本文由并发编程网翻译). 现代社会是并行的:多核.网络.云计算.用户负载,并发技术对 ...