Welcome 微信登录

首页 / 数据库 / MySQL / MySQL备份和恢复具体实施

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 */; -- Dump completed on 2012-11-10  1:39:53
  • 1
  • 2
  • 3
  • 4
  • 下一页
MySQL备份类别Linux下MySQL远程连接提示ERROR 1045 (28000)相关资讯      MYSQL备份  MySQL数据库备份  MySQL备份和恢复 
  • MySQL生产库之Xtrabackup物理备份  (今 08:17)
  • 线上MySQL备份脚本  (07月28日)
  • MySQL备份的三种方法  (07月05日)
  • MySQL备份之mydumper入门学习  (08月22日)
  • MySQL备份之分库分表备份脚本  (07月28日)
  • MySQL之备份和恢复(msyqldump、  (06月20日)
本文评论 查看全部评论 (0)
表情: 姓名: 字数