mysql逻辑备份与还原工具mysqldump
(一)mysqldump介绍
mysqldump是MySQL自带的逻辑备份工具,类似于Oracle的expdp/impdp,mysqldump备份十分灵活,可以在以下级别对数据库进行备份:
- 实例下的所有数据库
- 某个或某几个数据库
- 某个数据库中的表
- 某个数据库中的表的某些记录
mysqldump的备份结果集有两种文件:一种是将数据转换为标准的SQL语句,另一种是按照指定的分隔符,输出为特定格式的平面文件。
(二)mysqldump的用法
可以直接使用mysqldump命令查看mysqldump的用法
[root@mysqlserver ~]# 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参数众多,如果要查看所有参数信息,可以使用命令:
[root@mysqlserver ~]# mysqldump --help
mysqldump Ver 10.13 Distrib 5.7., for el7 (x86_64)
...
(三)mysqldump参数
mysqldump参数众多,常用参数如下:
| 类型 | 参数 | 作用 |
| 帮助参数 | -? [--help] | 显示帮助信息 |
| 连接参数 | -u [--user] | 指定连接的数据库用户 |
| -p [--password] | 指定用户的密码 | |
| -S [--socket] | 指定socket文件连接数据库,只能用于本地连接 | |
| -h [--host] | 指定要连接的主机名称或者IP | |
| -P [--port] | 指定连接数据库的端口 | |
| 字符集参数 | --default-character-set | 字符集参数,默认字符集utf-8 |
| 导出数据控制参数 | -A [--all-databases] | 导出所有数据库 |
| -B [--databases] | 导出指定的某个或某几个数据库 | |
| --tables | 参数值的格式为“db_name table_name” | |
| -w [--where] | 导出符合条件的数据 | |
| -n [--no-create-db] | 不生成建库的脚本,即使指定--all-databases或--databases参数 | |
| --ignore-table | 指定表不导出,参数值格式为“--ignore-table=db_name.table_name”,每次只能指定一个值,如果要指定多个值,需多次使用--ignore-table参数 | |
| -d [--no-data] | 只导出表结构,不导行数据 | |
| -t [--no-create-info] | 只导行数据,不导表结构 | |
| 锁控制参数 | -l [--lock-tables] | 对象在导出期间,会锁定该对象,此时其它会话无法对该表执行写入操作,默认启用 |
| --single-transaction |
在导出数据时会创建一致性的快照,在保证保证数据导出一致性的情况下,还不会阻塞其它会话的读写操作。 该参数会创建一致性的备份,是十分重要的参数。备份的是在执行mysqldump这一时刻的数据库的状态,后续数据库变化不会备份 |
|
| 其它参数 | --force | 在导出导入过程中,如果遇到错误,继续执行 |
| --master-data | 这将导致二进制日志位置和文件名附加到输出文件中。如果等于1,则将其作为更改主命令打印;如果等于2,则将其作为注释打印。此选项将启用--lock-all-tables,除非也指定了--single-transaction(在这种情况下,全局读取锁定只在转储开始时占用很短的时间)。在任何情况下,日志上的任何操作都将在转储的确切时刻发生。选项自动关闭锁定表。 |
(四)备份样例
初始数据库信息:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| testdb |
+--------------------+
(4.1)执行全库备份
mysqldump -uroot -p123456 -h192.168.10. -P3306 --all-databases --single-transaction --force > all_db.sql
注:information_schema是特殊的数据库,即使全备,也不会备份该数据库。
(4.2)备份多个数据库
# 备份多个数据库:mysql和testdb
mysqldump -uroot -p123456 -h192.168.10. -P3306 --databases mysql testdb --single-transaction --force > multi_db.sql
(4.3)备份单个数据库
根据是否使用“--databases”参数,单个数据库的备份有2种方法。
databases参数
mysqldump -uroot -p123456 -h192.168.10. -P3306 --databases testdb --single-transaction --force > testdb_method1.sql # 方法2:备份单个数据库:testdb,不使用
--
databases参数
mysqldump -uroot -p123456 -h192.168.10. -P3306 testdb --single-transaction --force > testdb_method2.sql
两者的区别在于添加“--database”参数,则会在导出语句中包含建库语句。
[root@mysqlserver mysqlbackup]# cat testdb_method1.sql |grep "CREATE DATABASE"
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `testdb` /*!40100 DEFAULT CHARACTER SET utf8 */; [root@mysqlserver mysqlbackup]# cat testdb_method2.sql |grep "CREATE DATABASE"
(4.4)导出数据库的某些表
# 导出testdb的表test01,test02,目前来看,只能针对单个数据库的表进行导出
mysqldump -uroot -p123456 -h192.168.10. -P3306 --tables testdb test01 test02 --single-transaction --force > tables.sql
(五)还原样例
还原操作相对来说较为简单,直接执行.sql文件即可。
(5.1)执行全库还原,发现sys,和performance_schema没还原
删除全部数据库
mysql> show databases ;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| testdb |
+--------------------+
5 rows in set (0.02 sec) mysql> drop database mysql;
Query OK, 31 rows affected (0.02 sec) mysql> drop database performance_schema;
Query OK, 87 rows affected (0.01 sec) mysql> drop database sys;
Query OK, 101 rows affected (0.10 sec) mysql> drop database testdb;
Query OK, 3 rows affected (0.01 sec)
执行还原操作
[root@mysqlserver mysqlbackup]# mysql -uroot -p123456 -h192.168.10. -P3306 < all_db.sql
查看还原结果:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| testdb |
+--------------------+
(2)执行testdb数据库还原
对于使用“--databses”参数创建的备份,直接执行sql语句,如果没有testdb数据库,则自动创建testdb数据库,再导入数据,如果有testdb数据库,则直接导入数据
mysql> drop database testdb;
Query OK, 3 rows affected (0.02 sec) mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
+--------------------+
2 rows in set (0.03 sec) # 恢复数据
[root@mysqlserver mysqlbackup]# mysql -uroot -p123456 -h192.168.10.15 -P3306 < testdb_method1.sql
mysql: [Warning] Using a password on the command line interface can be insecure. mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| testdb |
+--------------------+
3 rows in set (0.03 sec)
对于没有使用“--databases”参数创建的备份,必须先创建数据库,再执行导入,导入时须指定数据库名称。
# 如果没有创建数据库 或者 不指定数据库名称,则还原报错
[root@mysqlserver mysqlbackup]# mysql -uroot -p123456 -h192.168.10. -P3306 < testdb_method2.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR (3D000) at line : No database selected # 指定数据库名称,还原正常
[root@mysqlserver mysqlbackup]# mysql -uroot -p123456 -h192.168.10. -P3306 testdb< testdb_method2.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
【完】
mysql逻辑备份与还原工具mysqldump的更多相关文章
- mysql多线程备份与还原工具mydumper
(一)mydumper介绍 之前我们已经学过如何使用mysqldump备份恢复数据库:<mysql逻辑备份与还原工具mysqldump>,就目前来说,mysqldump是使用最广泛的MyS ...
- (4.12)mysql备份还原——mysql逻辑备份之mysqldump
关键词:mysql逻辑备份介绍,mysqldump,mysqldump最佳实践 我的相关文章:https://www.cnblogs.com/gered/p/9721696.html 正文 1.mys ...
- MySQL 逻辑备份工具
简介: Mydumper.Myloader 是一个第三方的.开源的 MySQL 逻辑备份工具. 支持多线程,比起 mysqldump 要快很多,也能解决 innobackupex 备份工具对 MyIS ...
- day 50 MySQL数据备份与还原(mysqldump)
MySQL数据备份与还原(mysqldump) 一 mysqldump指令实现数据备份.mysql指令实现数据还原 经常有朋友问我,DBA到底是做什么的,百科上说:数据库管理员(Databas ...
- MySQL的备份和还原
MySQL的备份和还原 备份:副本 RAID1,RAID10:保证硬件损坏而不会业务中止: DROP TABLE mydb.tb1; 备份类型: 热备份.温备份和冷备 ...
- mysql数据库-备份与还原实操
目录 备份工具 1 基于 LVM 的快照备份(几乎热备) 2 数据库冷备份和还原 3 mysqldump备份工具 3.1 实战备份策略 3.1.1 全备份 3.1.2 分库分表备份 3.2 mysql ...
- 图解MySQL逻辑备份的实现流程
1. 摘要 数据作为一家公司的重要资产,其重要程度不言而喻.数据库为数据提供存取服务,担任着重要的角色,如果因数据误删.服务器故障.病毒入侵等原因导致数据丢失或服务不可用,会对公司造成重大损失,所以数 ...
- 转 MySQL 数据备份与还原
MySQL 数据备份与还原 原贴:http://www.cnblogs.com/kissdodog/p/4174421.html 一.数据备份 1.使用mysqldump命令备份 mysqldum ...
- MYSQL数据备份与还原学习笔记
数据备份与还原 1.mysqldump 1.1 文件地址: E:\xampp\mysql\bin 文件名:mysqldump.exe CMD下进入mysqldump.exe cd E:\xampp ...
随机推荐
- MySQL 8 InnoDB Table 和 Page 压缩
压缩用一点CPU换取磁盘IO.内存空间.磁盘空间. 在有Secondary Indexes 的表中,使用压缩更加明显,相关索引数据也会压缩. InnoDB 表压缩 对表压缩只需要在Create Tab ...
- Python3标准库:heapq堆排序算法
1. heapq堆排序算法 堆(heap)是一个树形数据结构,其中子节点与父节点有一种有序关系.二叉堆(binary heap)可以使用一个有组织的列表或数组表示,其中元素N的子元素位于2*N+1和2 ...
- css常用样式背景background如何使用
css背景background属性常用于定义HTML的背景,background简写属性作用是将背景属性设置在一个声明中,background背景属性常见为以下这些:.background-color ...
- JavaDay11
Java learning_Day11 本人学习视频用的是马士兵的,也在这里献上 <链接:https://pan.baidu.com/s/1qKNGJNh0GgvlJnitTJGqgA> ...
- [大数据技术]datax的安装以及使用
1.datax简述 DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL.Oracle.SqlServer.Postgre.HDFS.Hive.ADS.HBase.Ta ...
- 安装MongoDB到Ubuntu(APT)
运行环境 系统版本:Ubuntu 16.04.5 LTS 软件版本:mongodb-org-4.0.8 硬件要求:无 安装过程 1.配置APT-Mongodb存储库 ATP-Mongodb存储库由Mo ...
- 【巨杉数据库SequoiaDB】巨杉Tech | “删库跑路”又出现,如何防范数据安全风险?
最近,又双叕有企业被“删库”了.来自微盟官网的消息,微盟的业务系统数据库(包括主备)遭遇其公司运维人员的删除,系统将停止运营超48小时. 频发的类似事件也让大家对于数据安全的关注不断提高.数据是一个科 ...
- Callablestatement与JavaBean及其实例
一. Callablestatement:调用 数据库中的存储过程.存储函数 connection.prepareCall(参数:存储过程/存储函数名)参数格式:存储过程:(无返回值return,用O ...
- js image to base64 摘录
//传入图片路径,返回base64 //用处,由于在新增时,使用的是base64的格式,为了统一,在编辑时,也将图片转为base64,以便于统一处理 /* 使用: 因为图像处理存在一定的延时,所以通过 ...
- 关于IO板的输出(Do的写入)
IO板的输入输出遵循MODBUS协议 1.单个DO开关量寄存器写入-功能码05 例子-打开信道3 01 05 00 02 00 00 CD CA 01 从机地址(由io的配置文件决定) 05 功能码 ...