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. 69、Android 布局中轻松实现图片的全屏、居中、平铺

    public void paint() { if (item.laying_mode != 1)//平铺或者充满 { new AsyncTask<Void, Void, Void>() { ...

  2. 53、listview、expandableListview如何选中时保持高亮?

    一.listView被选中后保持高亮 70down voteaccepted To hold the color of listview item when you press it, include ...

  3. 工作中用到的安卓日志相关命令(logcat)

    1. 打印安卓日志,在cmd中使用adb shell logcat:在adb shell下直接打logcat 2. 如果不想打印占用终端,则加个&号,即logcat & 3. 如果想把 ...

  4. APK无源码使用Robotium简单总结

    1.使用re-sign.jar对待测包进行重签名,并记录下包名和主Activity名. 2.在Eclipse中点击File-New-Other 选择Android下的Android Test Proj ...

  5. windows批处理 打开exe后关闭cmd

    start "" "程序路径.exe"    这样调用就OK啦.如: start "" "D:\123.exe" 如果下 ...

  6. Kafka SSL 配置

    #!/bin/bash # 生成服务器keystore(密钥和证书)keytool -keystore server.keystore.jks -alias machine03.zheng.com - ...

  7. Halcon17 windows 下载

    Halcon17 windows 下载地址:http://www.211xun.com/download_page_9.html HALCON 17 是一套机器视觉图像处理库,由一千多个算子以及底层的 ...

  8. Linux下MySQL c++ connector示例

    最近在学习数据库的内容,起先是在windows下用mysql c++ connector进行编程,之所以选用c++而不是c的api,主要是考虑到c++ connector是按照JDBC的api进行实现 ...

  9. 位图 c++ 位图排序

    什么是位图?来自http://www.cnblogs.com/dolphin0520/archive/2011/10/19/2217369.html 位图就是用一个bit来标记某个元素对应的值,键值就 ...

  10. java流(二)

    目录 1 ObjectOutputStream/ObjectInputStream的使用 2 序列化 3 具体序列化的过程 4 Externalizable的简易介绍 实现序列化的Person类 /* ...