文档章节

MySQL备份和恢复具体实施

gulf
 gulf
发布于 2016/03/28 10:01
字数 784
阅读 20
收藏 0

转载:http://www.linuxidc.com/Linux/2012-12/76257.htm



MySQL备份类别,参考笔者上篇文章MySQL备份类别 http://www.linuxidc.com/Linux/2012-12/76256.htm

冷备:

对于InnoDB存储引擎的冷备非常简单,只需要备份MySQL数据库的frm文件、共享表空间文件、独立表空间文件(*.ibd)、重做日志文件。--建议定期备份MySQL数据库的配置文件my.cnf

冷备的优点:

a)        备份简单,只要拷贝相关文件

b)        备份文件易于在不同操作系统,不同MySQL版本进行恢复

c)        恢复相当简单,只需要把文件恢复到指定位置即可

d)        恢复速度快,不需要执行任何SQL语句,也不需要重建索引

冷备的缺点:

a)        InnoDB存储引擎冷备的文件通常比逻辑文件大很多,因为表空间中存放着数据,如Undo段,插入缓冲等信息

b)        冷备不总是可以轻易地跨平台。操作系统、MySQL的版本、文件大小写敏感和浮点数格式都会成为问题

逻辑备份:
mysqldump备份工具
mysqldump的语法如下:

shell>mysqldump [argument] > file_name

 

备份全部数据库,使用--all-database选项:

shell>mysqldump --all-databases > all.sql

 


备份指定的数据库,--database:

shell> mysqldump–database db1 db2 db3 > dump.sql

 

mysqldump一些重要参数选项:

--single-transaction:在备份开始前,先执行STARTTRANSACTION命令,以此来获得备份的一致性

--lock-tables(-l):在备份中,以此锁住每个架构下的所有表。一般用于MyISAM存储引擎,备份时只能对数据库进行读取操作,不过备份依然可以保证一致性。对于InnoDB不需要使用该参数,用--single-transaction即可,并且--lock-tables和--single-transaction是互斥的,不能同时使用。如果你的MySQL数据库中既有MyISAM存储引擎表,又有InnoDB存储引擎表,那么这时你的选择只有--lock-tables了。--lock-tables选项是依次对每个架构中的表上锁的,因此只能保证每个架构下表备份的一致性,不能保证所有架构下表的一致性。

--lock-all-tables(-x):在备份过程中,对所有架构中的所有表上锁

--add-drop-database:在createdatabase之前先运行drop database。这个参数需要和--all-databases或者--database选项一起使用

备份指定的表:

# mysqldump--single-transaction --socket=/var/run/mysqld/mysql5.socket test1 test1 >test1.sql

# cattest1.sql

-- MySQL dump 10.13 Distrib 5.1.61, for RedHat-linux-gnu (i386)

--

-- Host: localhost    Database: test1

-- ------------------------------------------------------

-- Server version      5.5.20-ndb-7.2.5-log

 

/*!40101 SET@OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;

/*!40101 SET@OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;

/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION*/;

/*!40101 SET NAMES utf8 */;

/*!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 */;

 

--

-- Table structure for table `test1`

--

 

DROP TABLE IF EXISTS `test1`;

/*!40101 SET @saved_cs_client    = @@character_set_client */;

/*!40101 SET character_set_client = utf8 */;

CREATE TABLE `test1` (

  `id`int(11) NOT NULL,

  `name`varchar(10) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

/*!40101 SET character_set_client = @saved_cs_client*/;

 

--

-- Dumping data for table `test1`

--

 

LOCK TABLES `test1` WRITE;

/*!40000 ALTER TABLE `test1` DISABLE KEYS */;

INSERT INTO `test1` VALUES(1,'wu'),(2,'terry'),(3,'tang'),(4,'jack'),(4,'cat'),(3,NULL),(3,'dog');

/*!40000 ALTER TABLE `test1` ENABLE KEYS */;

UNLOCK TABLES;

/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

 

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;

/*!40014 SETFOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;

/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT*/;

/*!40101 SETCHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;

/*!40101 SETCOLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

 


© 著作权归作者所有

gulf
粉丝 14
博文 278
码字总数 157028
作品 0
广州
程序员
私信 提问
用Mysqldump实现全库备份+binlog的数据还原

随着业务量的增长,数据库也是成倍增长,原来一直使用的全库备份不再适合现在的数据库了,动辄就备份10G-20G,太占用磁盘空间,所以就考虑用更简洁更快速更节省磁盘空间的备份方法,这就想到了...

奋斗的寒霜
2017/06/26
0
0
做好灾备平台,打造自动化运维管理的最后堡垒

作者介绍 战学超,青航数据架构师。曾任职于NEC软件、海尔B2B平台巨商汇,负责企业数据平台构建、B2B电商平台数据管理与搭建。拥有丰富DBA、系统运维架构经验,擅长数据库、数据平台搭建、私...

战学超
2017/06/28
0
0
RDS for MySQL 5.7 备份恢复为本地实例

RDS for MySQL 5.7 备份恢复为本地实例 1. 本地环境 2. 恢复步骤 3. 后记 近期同学咨询反馈 RDS for MySQL 5.7 备份恢复本地实例的问题比较多,提供一个恢复样例。 1. 本地环境 1.1 MySQL DB...

田杰
01/24
0
0
Mysql用户管理、常用SQL语句及Mysql的备份与恢复

12月6日任务 13.4 mysql用户管理 13.5 常用sql语句 13.6 mysql数据库备份恢复 MySQL用户管理 创建用户 指定具体ip 不指定ip无法登录 -h指定ip后成功登录 限制命令 任意ip 同一个用户指定多个...

robertt15
2018/12/06
0
0
java 实现 通用的数据库备份和恢复

要用java xml 实现, sqlserver和mysql等数据库的备份和还原。也就是说让SQL Server的备份,恢复到SQL Server 或MySQL。MySQL的备份,恢复到SQL Server 或MySQL。 各位能不能说说具体讲这方面...

王震、末将在
2012/06/27
827
4

没有更多内容

加载失败,请刷新页面

加载更多

Command模式

https://www.cnblogs.com/devinzhang/archive/2012/01/06/2315235.html

南桥北木
40分钟前
0
0
由于PostgreSQL9.x二进制输出格式默认值改变导致的读取图片错误

今天从社区邮件看到一个这样的问题,感觉很有意思,在这分享给大家~具体如下: 问题现象: 作者有一个很老的Java应用,当时后端采用的PostgreSQL数据库版本为8.x,该系统除了正常的数据增删...

闻术苑
56分钟前
2
0
导入sql时出现Invalid default value for 'create_time'报错处理方法

当运行SQL会出现:[Err] 1067 - Invalid default value for 'create_time',是因为Mysql版本不同,如果版本不 < 5.6请去的话报错的处理方法如下: 方法 :alter table table_name modify cre......

writeademo
今天
1
0
对ssm(spring,springmvc,mybatis)的了解总结

ssm框架现在是java web开发的三个主流框架 ,其实严格来算只算是两个框架,因为springmvc属于spring框架 ,是spring的一个mvc子框架 那么我们下面就来了解一下三大框架把 一 .Spring spring...

咸鱼-李y
今天
2
0
聊聊Elasticsearch的FsProbe

序 本文主要研究一下Elasticsearch的FsProbe FsProbe elasticsearch-7.0.1/server/src/main/java/org/elasticsearch/monitor/fs/FsProbe.java public class FsProbe { private static f......

go4it
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部