热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

mysqldba系统学习(17)mysql的备份和恢复的完整实践

mysql的备份和恢复的完整实践一,备份数据库之间的环境设置1,创建数据库test1,创建表tt插入如下数据mysqlcreatedatabasetest1;QueryOK,1rowaffected..

mysql的备份和恢复的完整实践一,备份数据库之间的环境设置1,创建数据库test1,创建表tt插入如下数据mysqlcreatedatabasetest1;QueryOK,1rowaffected..

mysql的备份和恢复的完整实践

一,备份数据库之间的环境设置

1,创建数据库test1,创建表tt 插入如下数据

mysql> create database test1; Query OK, 1 row affected (0.04 sec) mysql> use test1 Database changed mysql> create table tt(id int,name varchar(100),msg varchar(200)) engine=myisam; Query OK, 0 rows affected (0.18 sec) mysql> insert into tt values(1,'chenzhongyang','how are you'); Query OK, 1 row affected (0.00 sec) mysql> insert into tt values(2,'tianhongyan','BMW'); Query OK, 1 row affected (0.00 sec) mysql> insert into tt values(3,'jisuanji','why'); Query OK, 1 row affected (0.00 sec)

2,由于我设置的二进制日志文件的记录格式是row,所以每一行的数据改变就会记录一次日志

mysql> show variables like "%format%"

-> ;

+---------------------+-------------------+

| Variable_name | Value |

+---------------------+-------------------+

| binlog_format | ROW |

3, 此时只有一个二进制日志文件

mysql> show binary logs;

+-----------------+-----------+

| Log_name | File_size |

+-----------------+-----------+

| mysqlbin.000161 | 1133 |

+-----------------+-----------+

1 row in set (0.00 sec)

4,查看二进制日志文件的内容

二进制日志文件 end_log_pos 1133

[root@test4 ~]# mysqlbinlog '/tmp/mysqlbin.000161' 。。。。。。。。。。。。。。。。。。。 # at 588 #130905 22:26:42 server id 1 end_log_pos 658 Query thread_id=7 exec_time=0 error_code=0 SET TIMESTAMP=1378391202/*!*/; COMMIT /*!*/; # at 658 #130905 22:27:15 server id 1 end_log_pos 727 Query thread_id=7 exec_time=0 error_code=0 SET TIMESTAMP=1378391235/*!*/; BEGIN /*!*/; # at 727 # at 775 #130905 22:27:15 server id 1 end_log_pos 775 Table_map: `test1`.`tt` mapped to number 21 #130905 22:27:15 server id 1 end_log_pos 827 Write_rows: table id 21 flags: STMT_END_F BINLOG ' w5QoUhMBAAAAMAAAAAcDAAAAABUAAAAAAAEABXRlc3QxAAJ0dAADAw8PBCwBWAIH w5QoUhcBAAAANAAAADsDAAAAABUAAAAAAAEAA//4AgAAAAsAdGlhbmhvbmd5YW4DAEJNVw== '/*!*/; # at 827 #130905 22:27:15 server id 1 end_log_pos 897 Query thread_id=7 exec_time=0 error_code=0 SET TIMESTAMP=1378391235/*!*/; COMMIT /*!*/; # at 897 #130905 22:27:56 server id 1 end_log_pos 966 Query thread_id=7 exec_time=0 error_code=0 SET TIMESTAMP=1378391276/*!*/; BEGIN /*!*/; # at 966 # at 1014 #130905 22:27:56 server id 1 end_log_pos 1014 Table_map: `test1`.`tt` mapped to number 21 #130905 22:27:56 server id 1 end_log_pos 1063 Write_rows: table id 21 flags: STMT_END_F BINLOG ' 7JQoUhMBAAAAMAAAAPYDAAAAABUAAAAAAAEABXRlc3QxAAJ0dAADAw8PBCwBWAIH 7JQoUhcBAAAAMQAAACcEAAAAABUAAAAAAAEAA//4AwAAAAgAamlzdWFuamkDAHdoeQ== '/*!*/; # at 1063 #130905 22:27:56 server id 1 end_log_pos 1133 Query thread_id=7 exec_time=0 error_code=0 SET TIMESTAMP=1378391276/*!*/; COMMIT /*!*/; DELIMITER ; # End of log file ROLLBACK /* added by mysqlbinlog */; /*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;



二,备份数据库test1

1,mysqldump备份数据库

[root@test4 ~]# mysqldump --databases test1 --skip-opt --quick --extended-insert=false --lock-all-tables --master-data=2 -u root -p123456 > /tmp/test1.sql

2,查看备份文件

我们发现这个时候记录的开始位置正好是1133,如下就是证明

CHANGE MASTER TO MASTER_LOG_FILE='mysqlbin.000161', MASTER_LOG_POS=1133;

[root@test4 ~]# cat /tmp/test1.sql -- MySQL dump 10.13 Distrib 5.1.70, for unknown-linux-gnu (x86_64) -- -- Host: localhost Database: test1 -- ------------------------------------------------------ -- Server version 5.1.70-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='mysqlbin.000161', MASTER_LOG_POS=1133; -- -- Current Database: `test1` -- CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test1` /*!40100 DEFAULT CHARACTER SET utf8 */; USE `test1`; -- -- Table structure for table `tt` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `tt` ( `id` int(11) DEFAULT NULL, `name` varchar(100) DEFAULT NULL, `msg` varchar(200) DEFAULT NULL ); /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `tt` -- INSERT INTO `tt` VALUES (1,'chenzhongyang','how are you'); INSERT INTO `tt` VALUES (2,'tianhongyan','BMW'); INSERT INTO `tt` VALUES (3,'jisuanji','why'); /*!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-05 22:48:50


三,对表进行修改插入数据然后误删表

由于我们不小心把表tt给删除了,那么我们就要把表tt通过二进制日志给恢复过来

mysql> insert into tt values(4,'shuijunyi','boss');

Query OK, 1 row affected (0.01 sec)


mysql> insert into tt values(5,'zhujun','may I know your name');

Query OK, 1 row affected (0.00 sec)


mysql> select * from tt;

+------+---------------+----------------------+

| id | name | msg |

+------+---------------+----------------------+

| 1 | chenzhongyang | how are you |

| 2 | tianhongyan | BMW |

| 3 | jisuanji | why |

| 4 | shuijunyi | boss |

| 5 | zhujun | may I know your name |

+------+---------------+----------------------+

5 rows in set (0.01 sec)

mysql> drop table tt;

Query OK, 0 rows affected (0.00 sec)


四,,查看执行误操作的位置

通过show master status; 可以查看当前的二进制日志文件的位置

mysql> show master status;

+-----------------+----------+--------------+------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+-----------------+----------+--------------+------------------+

| mysqlbin.000161 | 1622 | | |

+-----------------+----------+--------------+------------------+

1 row in set (0.00 sec)

推荐阅读
  • 本文介绍了如何在MySQL中将零值替换为先前的非零值的方法,包括使用内联查询和更新查询。同时还提供了选择正确值的方法。 ... [详细]
  • 在数据分析工作中,我们通常会遇到这样的问题,一个业务部门由若干业务组构成,需要筛选出每个业务组里业绩前N名的业务员。这其实是一个分组排序的 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 本文介绍了通过mysql命令查看mysql的安装路径的方法,提供了相应的sql语句,并希望对读者有参考价值。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • mysql-cluster集群sql节点高可用keepalived的故障处理过程
    本文描述了mysql-cluster集群sql节点高可用keepalived的故障处理过程,包括故障发生时间、故障描述、故障分析等内容。根据keepalived的日志分析,发现bogus VRRP packet received on eth0 !!!等错误信息,进而导致vip地址失效,使得mysql-cluster的api无法访问。针对这个问题,本文提供了相应的解决方案。 ... [详细]
  • 众筹商城与传统商城的区别及php众筹网站的程序源码
    本文介绍了众筹商城与传统商城的区别,包括所售产品和玩法不同以及运营方式不同。同时还提到了php众筹网站的程序源码和方维众筹的安装和环境问题。 ... [详细]
  • ubuntu用sqoop将数据从hive导入mysql时,命令: ... [详细]
author-avatar
不要哭开心就好_723
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有