Home >Database >Mysql Tutorial >MySQL逻辑备份恢复方法简单总结

MySQL逻辑备份恢复方法简单总结

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-07 17:27:42973browse

一、Mysql逻辑备份 1. 使用mysqldump命令生成INSERT语句备份 此方法类似于Oracle的expdp\exp工具 语法如下: mysqldump [argum

一、Mysql逻辑备份
 
 
 
1. 使用mysqldump命令生成INSERT语句备份
 
此方法类似于Oracle的expdp\exp工具
 
语法如下:
 
mysqldump [arguments] > file_name.sql
 
 
 
使用帮助:
 
[root@gc ~]# mysqldump

Usage: mysqldump [OPTIONS] database [tables]
 
OR    mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
 
OR    mysqldump [OPTIONS] --all-databases [OPTIONS]
 
For more options, use mysqldump --help
 
 
 
备份实例:
 
备份所有数据库
 
# mysqldump -uroot -proot --all-database > /tmp/dumpback/alldb.sql
 
 
 
备份某些数据库
 
# mysqldump -uroot -proot --database sqoop hive > /tmp/dumpback/sqoop_hive.sql

 
 
备份某数据库中的表
 
# mysqldump -uroot -proot sqoop tb1 > /tmp/dumpback/sqoop_tb1.sql
 
 
 
查看备份内容:
 
[root@gc dumpback]# more sqoop_tb1.sql

-- MySQL dump 10.13  Distrib 5.5.24, for Linux (x86_64)
 
--
 
-- Host: localhost    Database: sqoop
 
-- ------------------------------------------------------
 
-- Server version      5.5.24
 
 
 
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
 
......
 
--
 
-- Table structure for table `tb1`
 
--
 
DROP TABLE IF EXISTS `tb1`;
 
/*!40101 SET @saved_cs_client    = @@character_set_client */;
 
/*!40101 SET character_set_client = utf8 */;
 
CREATE TABLE `tb1` (
 
  `table_schema` varchar(64) CHARACTER SET utf8 NOT NULL DEFAULT '',
 
  `table_name` varchar(64) CHARACTER SET utf8 NOT NULL DEFAULT '',
 
  `table_type` varchar(64) CHARACTER SET utf8 NOT NULL DEFAULT ''
 
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
/*!40101 SET character_set_client = @saved_cs_client */;
 
 
 
--
 
-- Dumping data for table `tb1`
 
--
 
 
 
LOCK TABLES `tb1` WRITE;
 
/*!40000 ALTER TABLE `tb1` DISABLE KEYS */;
 
INSERT INTO `tb1` VALUES ('information_schema','CHARACTER_SETS','SYSTEM VIEW')
 
......
 
 
 
/*!40000 ALTER TABLE `tb1` ENABLE KEYS */;
 
UNLOCK TABLES;
 
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
 
.....
 
 
 
-- Dump completed on 2013-03-25 18:26:53
 
 
 
注意事项:
 
如何保证数据备份的一致性?
 
要想保证数据的一致性可以通过以下两种方法做到:
 
第一、同一时刻取出所有数据
 
对于事务支持的存储引擎,如Innodb 或者BDB 等,可以通过控制将整个备份过程在同一个事务中,使用“--single-transaction”选项。
 
例如:
 
# mysqldump --single-transaction test > test_backup.sql

 
 
第二、数据库中的数据处于静止状态
 
通过锁表参数
 
--lock-tables 每次锁定一个数据库的表,此参数是默认为true(见上面备份内容实例);
 
--lock-all-tables 一次锁定所有的表,适用于dump的表分别处于各个不同的数据库中的情况

linux

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:Oracle完整性约束Next article:Oracle 创建临时表