Heim > Datenbank > MySQL-Tutorial > MySQL逻辑备份恢复方法简单总结

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-07 17:27:42
Original
974 Leute haben es durchsucht

一、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

Verwandte Etiketten:
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage