mysql对于InnoDB存储引擎的冷备非常简单,只需要备份MySQL数据库的frm文件、共享表空间文件、独立表空间文件(*.ibd)、重做日志文件。--建议定期备份MySQL数据库的配置文件my.cnf 冷备的优点: a) 备份简单,只要拷贝相关文件 b) 备份文件易于在不同操作系统,不同MySQL版本进行恢复 c) 恢复相当简单,只需要把文件恢复到指定位置即可 d) 恢复速度快,不需要执行任何SQL语句,也不需要重建索引 冷备的缺点: a) InnoDB存储引擎冷备的文件通常比逻辑文件大很多,因为表空间中存放着数据,如Undo段,插入缓冲等信息 b) 冷备不总是可以轻易地跨平台。操作系统、MySQL的版本、文件大小写敏感和浮点数格式都会成为问题
逻辑备份: shell>mysqldump [argument] > file_name
备份全部数据库,使用--all-database选项: shell>mysqldump --all-databases > all.sql
shell> mysqldump–database db1 db2 db3 > dump.sql
mysqldump一些重要参数选项: --single-transaction:在备份开始前,先执行STARTTRANSACTION命令,以此来获得备份的一致性
--lock-tables(-l):在备份中,以此锁住每个架构下的所有表。一般用于MyISAM存储引擎,备份时只能对数据库进行读取操作,不 --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 (责任编辑:好模板) |