700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > MySQL逻辑备份mysqldump简介

MySQL逻辑备份mysqldump简介

时间:2020-07-24 19:41:09

相关推荐

MySQL逻辑备份mysqldump简介

备注:测试数据库版本为MySQL 8.0

这个blog我们来聊聊MySQL 的逻辑备份工具mysqldump

文章目录

一.mysqldump参数介绍二.一些mysqldump案例整理三.逻辑备份文件格式化参考文档:

一.mysqldump参数介绍

二.一些mysqldump案例整理

下面整理一些常用的mysqldump案例

-- 备份所有数据库到单个文件中mysqldump -uroot -p -hhost --all-databases > dump.sql-- 备份单个数据库,备份数据库 db_namemysqldump -uroot -p -hhost db_name > dump.sql-- 备份数据库下的单个表,备份 数据库 db_name下的tab_name表mysqldump -uroot -p -hhost db_name tab_name> dump.sql-- 备份表的元数据,不导出数据mysqldump -uroot -p -hhost --no-data db_name tab_name> dump.sql-- 备份表的数据,不包含建表语句mysqldump -uroot -p -hhost --no-create-info db_name tab_name> dump.sql-- 备份多张表,备份 示例数据库 db_name下的tab1、tab2表mysqldump -uroot -p -hhost db_name tab1 tab2> dump.sql-- 带where条件的备份,导出id小于100的数据mysqldump -uroot -p -hhost db_name tab_name --where="id < 100" > dump.sql-- 剔除几张表进行备份数据库下其它的表mysqldump -uroot -p -hhost db_name --ignore-table db_name.tab1 --ignore-table db_name.tab2> dump.sql-- 通过--result-file选项来指定输出文件,避免windows上发生换行符转换mysqldump -uroot -p -hhost db_name --result-file=dump.sql

注意

对于InnoDB备份,应该增加 --single-transaction选项,这会使用InnoDB的MVCC特性在单个时间点创建一个一致性的备份,而不需要lock tables锁定所有的表。

如果增加–master–data选项,备份还会包括在备份时服务器的二进制日志的位置,这对基于时间的恢复和设置复制非常有帮助。然后也要知道,获得日志位置时需要使用flush tabls with read lock冻结服务器。

三.逻辑备份文件格式化

mysqldump导出的格式如下:

-- MySQL dump 10.13 Distrib 8.0.20, for Linux (x86_64)---- Host: localhost Database: test-- -------------------------------------------------------- Server version 8.0.20/*!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 */;/*!50503 SET NAMES utf8mb4 */;/*!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 `t1`--DROP TABLE IF EXISTS `t1`;/*!40101 SET @saved_cs_client= @@character_set_client */;/*!50503 SET character_set_client = utf8mb4 */;CREATE TABLE `t1` (`id` int DEFAULT NULL,`name` varchar(100) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;/*!40101 SET character_set_client = @saved_cs_client */;---- Dumping data for table `t1`--LOCK TABLES `t1` WRITE;/*!40000 ALTER TABLE `t1` DISABLE KEYS */;INSERT INTO `t1` VALUES (1,'a'),(2,'b'),(3,'c');/*!40000 ALTER TABLE `t1` ENABLE KEYS */;UNLOCK TABLES;---- Table structure for table `t2`--DROP TABLE IF EXISTS `t2`;/*!40101 SET @saved_cs_client= @@character_set_client */;/*!50503 SET character_set_client = utf8mb4 */;CREATE TABLE `t2` (`id` int DEFAULT NULL,`name` varchar(100) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;/*!40101 SET character_set_client = @saved_cs_client */;---- Dumping data for table `t2`--LOCK TABLES `t2` WRITE;/*!40000 ALTER TABLE `t2` DISABLE KEYS */;INSERT INTO `t2` VALUES (1,'abc'),(2,'def'),(3,'ghi');/*!40000 ALTER TABLE `t2` ENABLE KEYS */;UNLOCK TABLES;/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;-- Dump completed on -07-02 5:44:25

格式化输出:

[mysql@****** tmp]$ egrep -v "#|\*|--|^$" dump1.sqlDROP TABLE IF EXISTS `t1`;CREATE TABLE `t1` (`id` int DEFAULT NULL,`name` varchar(100) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;LOCK TABLES `t1` WRITE;INSERT INTO `t1` VALUES (1,'a'),(2,'b'),(3,'c');UNLOCK TABLES;DROP TABLE IF EXISTS `t2`;CREATE TABLE `t2` (`id` int DEFAULT NULL,`name` varchar(100) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;LOCK TABLES `t2` WRITE;INSERT INTO `t2` VALUES (1,'abc'),(2,'def'),(3,'ghi');UNLOCK TABLES;

参考文档:

1./doc/refman/8.0/en/mysqldump.html

2./qq78292959/p/3637135.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。