mysqldump

 
  • mysqldump---逻辑备份,热备
    • 单线程,适合数据量小的库
mysql官方自带的命令行工具
 
#全库
)mysqldump -uroot -p123456 --socket=XXX --all-databases > XXX.sql
#指定库
)mysqldump -uroot -p123456 --socket=XXX --databases db2 > XXX.sql
#指定表
)mysqldump -uroot -p123456 --socket=XXX db2 t1 > XXX.sql
#恢复
4)
create database db3;
surce XXX.sql;
 
#使用事务备份全库
)mysqldump --single-transaction -uroot -p123456 --all-databases > XXX.sql
#远程备份
)mysqldump -utest -ptest -hXXX -P3306 --all-databases > XXX.sql
#备份.sql,和.csv格式;
)mysqldump --single-transaction -uroot -p123456 db1 -T XXX
#指定分隔符为","默认分隔符为制表符
)mysqldump -uroot -p000000 --single-transaction --fields-terminated-by=, shuxue -T /tmp
 
主要示例

  1. 演示使用mysqldump备份表,库,实例
  2. 演示使用mysqldump制作一致性备份
  3. 演示使用mysqldump导出数据为csv格式
 
演示使用mysqldump备份表,库,实例:
备份全库:
aiapple@itcast01:~/mysql_backup$ mysqldump -uroot -p000000 --socket=/var/run/mysqld/mysqld.sock --all-databases > ./all_db.sql
aiapple@itcast01:~/mysql_backup$ ls
all_db.sql
aiapple@itcast01:~/mysql_backup$ head -n all_db.sql
-- MySQL dump 10.13 Distrib 5.5., for debian-linux-gnu (i686)
--
-- Host: localhost Database:
-- ------------------------------------------------------
-- Server version 5.5.-0ubuntu0.12.04. /*!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 */; --
-- Current Database: `TEST`
-- CREATE DATABASE /*!32312 IF NOT EXISTS*/ `TEST` /*!40100 DEFAULT CHARACTER SET latin1 */; USE `TEST`; --
-- Current Database: `WY_yun`
-- CREATE DATABASE /*!32312 IF NOT EXISTS*/ `WY_yun` /*!40100 DEFAULT CHARACTER SET latin1 */; #可以看到all_db.sql,实际上就是SQL语句,会将表,插入数据等等;
备份指定库:
aiapple@itcast01:~/mysql_backup$ mysqldump -uroot -p000000 --socket=/var/run/mysqld/mysqld.sock --databases shuxue > ./shuxue.sql
aiapple@itcast01:~/mysql_backup$ ls
all_db.sql shuxue.sql
aiapple@itcast01:~/mysql_backup$ sed -n '22,45p' shuxue.sql
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `shuxue` /*!40100 DEFAULT CHARACTER SET latin1 */; USE `shuxue`; --
-- Table structure for table `res_new`
-- DROP TABLE IF EXISTS `res_new`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `res_new` (
`res` date DEFAULT NULL,
`sum_num` decimal(,) DEFAULT NULL,
`week_day` int() DEFAULT NULL,
`que` int() DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */; --
-- Dumping data for table `res_new`
-- LOCK TABLES `res_new` WRITE; #指定文件显示第几行到第几行sed -n '22,45p' filename;
备份单个表:
mysql> show tables;
+------------------+
| Tables_in_shuxue |
+------------------+
| res_new |
| res_sum_num |
| week_day |
+------------------+
aiapple@itcast01:~/mysql_backup$ mysqldump -uroot -p000000 --socket=/var/run/mysqld/mysqld.sock shuxue week_day > ./week_day.sql
aiapple@itcast01:~/mysql_backup$ ls
all_db.sql shuxue.sql week_day.sql
aiapple@itcast01:~/mysql_backup$ sed -n '10,37p' week_day.sql
/*!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 `week_day`
-- DROP TABLE IF EXISTS `week_day`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `week_day` (
`res` date DEFAULT NULL,
`sum_num` decimal(,) DEFAULT NULL,
`week_day` int() DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */; --
-- Dumping data for table `week_day`
-- LOCK TABLES `week_day` WRITE;
/*!40000 ALTER TABLE `week_day` DISABLE KEYS */;
还原week_day表
mysql> create database db;
Query OK, row affected (0.01 sec) mysql> use db
Database changed mysql> show tables;
Empty set (0.00 sec) mysql> source /home/aiapple/mysql_backup/week_day.sql
Query OK, rows affected (0.01 sec)
Query OK, rows affected (0.00 sec) mysql> show tables;
+--------------+
| Tables_in_db |
+--------------+
| week_day |
+--------------+
使用source命令还原数据;
mysqldump一致性备份

 
定义:
因为在备份过程中,数据库的数据是不断变动的,而一致性备份是指备份某时刻点的数据;
因为innodb提供了可重复读,这个隔离级别,即在同一个事务内看到的数据不变,所以 备份工作中,
如果开启一个事务再进行备份,那么这个备份就是事务开启的时间点的备份,也叫一致性备份;
 
参数:--single-transaction
默认备份会锁表,锁库,来备份,因为没有开启事务,而使用这个参数之后,会开启一个事务来备份,不会锁表锁库。
 
一致性备份全库
aiapple@itcast01:~/mysql_backup$ mysqldump --single-transaction -uroot -p000000 --socket=/var/run/mysqld/mysqld.sock --all-databases > ./all_db.sql
-- Warning: Skipping the data of table mysql.event. Specify the --events option explicitly.
aiapple@itcast01:~/mysql_backup$ ls
all_db.sql
aiapple@itcast01:~/mysql_backup$ sed -n '20,45p' all_db.sql
-- CREATE DATABASE /*!32312 IF NOT EXISTS*/ `TEST` /*!40100 DEFAULT CHARACTER SET latin1 */; USE `TEST`; --
-- Current Database: `WY_yun`
-- CREATE DATABASE /*!32312 IF NOT EXISTS*/ `WY_yun` /*!40100 DEFAULT CHARACTER SET latin1 */; USE `WY_yun`; --
-- Table structure for table `a`
-- DROP TABLE IF EXISTS `a`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `a` (
`name` varchar() DEFAULT NULL,
`id` int() DEFAULT NULL,
`sal` int() DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
远程备份
aiapple@itcast01:~/mysql_backup$ mysqldump -uroot -p000000 -h127.0.0. -P3306 --database shuxue > ./shuxue.sql

aiapple@itcast01:~/mysql_backup$ ls
shuxue.sql
 
演示使用mysqldump导出数据为csv格式
参数:-T
 
aiapple@itcast01:~/mysql_backup$ mysqldump -uroot -p000000 shuxue -T /tmp

aiapple@itcast01:~/mysql_backup$ cd /tmp/
aiapple@itcast01:/tmp$ ls
res_new.sql res_new.txt
week_day.txt week_day.sql
res_sum_num.sql res_sum_num.txt aiapple@itcast01:/tmp$ sed -n '20,45p' week_day.sql
DROP TABLE IF EXISTS `week_day`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `week_day` (
`res` date DEFAULT NULL,
`sum_num` decimal(,) DEFAULT NULL,
`week_day` int() DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!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 -- :: aiapple@itcast01:/tmp$ sed -n '20,45p' week_day.txt
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
 
 
#默认分隔符为制表符
#可以指定分隔符
#指定分隔符为","
aiapple@itcast01:/tmp$ mysqldump -uroot -p000000 --single-transaction --fields-terminated-by=, shuxue -T /tmp

aiapple@itcast01:~/mysql_backup$ cd /tmp/
aiapple@itcast01:/tmp$ ls
res_new.sql res_new.txt
week_day.txt week_day.sql
res_sum_num.sql res_sum_num.txt aiapple@itcast01:/tmp$ sed -n '20,45p' week_day.sql
DROP TABLE IF EXISTS `week_day`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `week_day` (
`res` date DEFAULT NULL,
`sum_num` decimal(,) DEFAULT NULL,
`week_day` int() DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!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 -- :: aiapple@itcast01:/tmp$ sed -n '20,45p' week_day.txt
--,,
--,,
--,,
--,,
--,,
--,,
--,,
--,,
--,,
--,,
--,,
--,,
--,,
--,,
--,,
--,,
--,,
--,,
--,,
--,,
--,,
--,,
--,,
--,,
--,,
--,,

mysqldump实践的更多相关文章

  1. 《开源安全运维平台OSSIM最佳实践》

    <开源安全运维平台OSSIM最佳实践> 经多年潜心研究开源技术,历时三年创作的<开源安全运维平台OSSIM最佳实践>一书即将出版.该书用80多万字记录了,作者10多年的IT行业 ...

  2. centos shell编程6一些工作中实践脚本 nagios监控脚本 自定义zabbix脚本 mysql备份脚本 zabbix错误日志 直接送给bc做计算 gzip innobackupex/Xtrabackup 第四十节课

    centos   shell编程6一些工作中实践脚本   nagios监控脚本 自定义zabbix脚本 mysql备份脚本 zabbix错误日志  直接送给bc做计算  gzip  innobacku ...

  3. LTMP手动编译安装以及全自动化部署实践(附详细代码)

    大家使用LNMP架构,一般可以理解为Linux Shell为CentOS/RadHat/Fedora/Debian/Ubuntu/等平台安装LNMP(Nginx/MySQL /PHP),LNMPA(N ...

  4. mysqldump备份原理6

    写在前面:我们在使用mysqldump备份数据时,请一定记住要加上 -q 参数,后果可能是很严重的,不要给自己挖坑哦.到底为什么呢,且听我慢慢道来! 先来看看 mysqldump –help 中,关于 ...

  5. MySql主从配置实践及其优势浅谈

    MySql主从配置实践及其优势浅谈 1.增加两个MySQL,我将C:\xampp\mysql下的MYSQL复制了一份,放到D:\Mysql2\Mysql5.1 修改my.ini(linux下应该是my ...

  6. mysql迁移-----拷贝mysql目录/load data/mysqldump/into outfile

    摘要:本文简单介绍了mysql的三种备份,并解答了有一些实际备份中会遇到的问题.备份恢复有三种(除了用从库做备份之外), 直接拷贝文件,load data 和 mysqldump命令.少量数据使用my ...

  7. MySQL 开发实践 8 问,你能 hold 住几个?

    最近研发的项目对DB依赖比较重,梳理了这段时间使用MySQL遇到的8个比较具有代表性的问题,答案也比较偏自己的开发实践,没有DBA专业和深入,有出入的请使劲拍砖!- MySQL读写性能是多少,有哪些性 ...

  8. MySQL 开发实践

    最近研发的项目对DB依赖比较重,梳理了这段时间使用MySQL遇到的8个比较具有代表性的问题,答案也比较偏自己的开发实践,没有DBA专业和深入,有出入的请使劲拍砖!- MySQL读写性能是多少,有哪些性 ...

  9. 基于 Docker 的微服务架构实践

    本文来自作者 未闻 在 GitChat 分享的{基于 Docker 的微服务架构实践} 前言 基于 Docker 的容器技术是在2015年的时候开始接触的,两年多的时间,作为一名 Docker 的 D ...

随机推荐

  1. IOS开发---菜鸟学习之路--(六)-UITableView几个方法的使用说明

    对于UITableView的基础使用我这边就不做重复介绍了 我重点就来介绍下如何实现大部分新闻的界面.也就是第一条记录显示大图片下面加一段文字说明 然后剩下来的内容全部显示为文字图片的格式 其实要做到 ...

  2. 【Word Break II】cpp

    题目: Given a string s and a dictionary of words dict, add spaces in s to construct a sentence where e ...

  3. C 语言 习题 1-9

    练习1-9 编写一个将输入复制到输出的程序,并将其中连续的多个空格用一个空格代替. #include <stdio.h> int main(int argc, char const *ar ...

  4. sqlserver不能创建数据库关系图

    use [你的数据库名]EXEC sp_changedbowner 'sa'

  5. JAVA 程序监控基础简述

    最近在项目中自感程序木有问题,也没有什么错误日志出来.但就是有人反映服务慢,有时连不上的情况.为了解决这么妖的问题只能去详细的看看运行中的程序到底出了什么情况,这时如果有个比较好的监控工具可以监控运行 ...

  6. Codeforces Round #364 (Div. 2) A 水

    A. Cards time limit per test 1 second memory limit per test 256 megabytes input standard input outpu ...

  7. Manthan, Codefest 16 B 数学

    B. A Trivial Problem time limit per test 2 seconds memory limit per test 256 megabytes input standar ...

  8. ZJOI2017D1

    假装我还活着. 去温州前沉迷各种奇怪的动画片..嗯补了不少高达.. 到温州以后继续看片..嗯ZG还是挺不错的..然后接着就FA♂现我什么都不会写..有点尴尬.. 因为宾馆离温州中学比较远就完全没去听课 ...

  9. bzoj1040 基环树上dp

    [bzoj1040][ZJOI2008]骑士 2014年2月26日5,2040 Description Z国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英.他们劫富济贫,惩恶扬善,受到社会各 ...

  10. flake8(代码规范利器)

    flake8(代码规范利器) 概述 flake8是下面三个工具的封装: 1)PyFlakes 2)Pep8 3)NedBatchelder’s McCabe script Flake8的下载地址:ht ...