• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

MySQL备份和恢复具体实施

mysql 搞代码 4年前 (2022-01-09) 16次浏览 已收录 0个评论

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

MySQL备份类别,参考笔者上篇文章MySQL备份类别

冷备:

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

冷备的优点:

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

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

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

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

冷备的缺点:

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

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

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

shell>mys

本文来源gao!daima.com搞$代!码#网#

qldump [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 */;

— Dump completed on 2012-11-10 1:39:53


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:MySQL备份和恢复具体实施

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址