Mysql数据备份

news2024/10/7 2:19:51

一.数据备份的意义

(1)保护数据的安全;

(2)在出现意外的时候(硬盘的损坏,断电,黑客的攻击),以便数据的恢复;

(3)导出生产的数据以便研发人员或者测试人员测试学习;

(4)高权限的人员操作失误导致数据丢失,以便恢复; 二.数据库的备份类型

(1)完全备份:对整个数据库的数据进行备份

(2)部分备份:对部分数据进行备份(可以是一张表也可以是多张表)

增量备份:是以上一次备份为基础来备份变更数据的,节约空间

差异备份:是以第一次完全备份的基础来备份变更备份的,浪费空间

三.数据备份的方式

(1)逻辑备份:直接生成sql语句保存起来,在恢复数据的时候执行备份的sql语句来实现数据的恢复

(2)物理备份:直接拷贝相关的物理数据

区别:逻辑备份效率低,恢复数据效率低,但是逻辑备份节约空间;物理备份浪费空间,但是相对逻辑备份而言效率比较高

四、备份方法

mysqldump是mysql自带的命令,可以利用他来导出数据库数据,一般是放在mysql的安装目录的bin目录下,我的是在/usr/local/mysql/bin下面:

1) mysqldump使用语法:

mysqldump -u 用户(需要备份数据库的用户) -h host(需要备份的数据库的ip) -p 密码(需要备份的数据库的密码) dbname(需要备份的库名) table(需要备份的表名) > 路径(备份到本机哪个目录下) 在本机备份则-h选项可以不加

(2) mysqldump比较重要的参数:

-?,–help: 显示帮助信息,英文的;
-u,–user: 指定连接的用户名;
-p,–password: 指定用户的密码,可以交互输入密码;
-S,–socket: 指定socket文件连接,本地登录才会使用。
-h,–host: 指定连接的服务器名称或者IP。
-P, –port=: 连接数据库监听的端口。
–default-character-set: 设置字符集,默认是UTF8。
-A, –all-databases: 导出所有数据库。不过默认情况下是不会导出information_schema库。
-B,–databases: 导出指定的某个/或者某几个数据库,参数后面所有名字参量都被看作数据库名,包含CREATEDATABASE创建库的语句。
–tables: 导出指定表对象,参数格式为“库名 表名”,默认该参数将覆盖-B/–databases参数。
-w,–where: 只导出符合条件的记录。
-l, –lock-tables: 默认参数,锁定读取的表对象,想导出一致性备份的话最后使用该参数,会导致无法对表执行写入操作。
–single-transaction:
该选项在导出数据之前提交一个BEGINSQL语句,BEGIN 不会阻塞任何应用程序且能保证导出时数据库的一致性状态。它只适用于多版本存储 引擎,仅InnoDB。本选项和–lock-tables 选项是互斥的,因为LOCKTABLES 会使任何挂起的事务隐含提交,使用参数–single-transaction会自动关闭该选项。
在InnoDB导出时会建立一致性快照,在保证导出数据的一致性前提下,又不会堵塞其他会话的读写操作,相比–lock-tables参数来说锁定粒度要低,造成的影响也要小很多。指定这个参数后,其他连接不能执行ALTERTABLE、DROPTABLE 、RENAMETABLE、TRUNCATETABLE这类语句,事务的隔离级别无法控制DDL语句。
-d, –no-data: 只导出表结构,不导出表数据。
-t, –no-create-info: 只导出数据,而不添加CREATETABLE 语句。
-f,–force: 即使遇到SQL错误,也继续执行,功能类似Oracle exp命令中的ignore参数。
-F, —flush-logs: 在执行导出前先刷新日志文件,视操作场景,有可能会触发多次刷新日志文件。一般来说,如果是全库导出,建议先刷新日志文件,否则就不用了,刷新日志的意思也就是新建一个binlog日志,后面的语句都从新的日志开始记录,方便恢复的时候寻找。
–master-data[=#]: 该选项将当前备份时候二进制日志的位置和文件名写入到输出中。该选项要求有RELOAD权限,并且必须启用二进制日志。如果该选项值等于1,位置和文件名被写入CHANGEMASTER语句形式的转储输出,如果你使用该SQL转储主服务器以设置从服务器,从服务器从主服务器二进制日志的正确位置开始。如果选项值等于2,CHANGEMASTER语句被写成SQL注释。如果value被省略,这是默认动作,也就是说-master-data=1会将CHANGEMASTER语句写入备份文件中,-master-data=2也会写入备份文件中,只不过会注释掉;
–master-data选项会启用–lock-all-tables,除非还指定–single-transaction(在这种情况下,只在刚开始转储时短时间获得全局读锁定。又见–single-transaction。在任何一种情况下,日志相关动作发生在转储时。该选项自动关闭–lock-tables。
所以,我在INNODB引擎的数据库备份时,我会同时使用–master-data=2 和 –single-transaction两个选项。
-n, –no-create-db: 不生成建库的语句CREATEDATABASE … IFEXISTS,即使指定–all-databases或–databases这类参数。
–triggers: 导出表的触发器脚本,默认就是启用状态。使用–skip-triggers禁用它。
-R,–routines: 导出存储过程以及自定义函数。
在转储的数据库中转储存储程序(函数和程序)。
-E,–events: 输出event。
–ignore-table: 指定的表对象不做导出,参数值的格式为[db_name,tblname],注意每次只能指定一个值,如果有多个表对象都不进行导出操作的话,那就需要指定多个–ignore-table参数,并为每个参数指定不同的参数值。
–add-drop-database: 在任何创建库语句前,附加DROPDATABASE 语句。
–add-drop-table: 在任何创建表语句前,附加DROPTABLE语句。这个参数是默认启用状态,可以使用– skip-add-drop-table参数禁用该参数。
–add-drop-trigger: 创建任何触发器前,附加DROPTRIGGER语句。
–add-locks: 在生成的INSERT语句前附加LOCK语句,该参数默认是启用状态。使用–skip-add-locks参数禁用。
-K, –disable-keys: 在导出的文件中输出 ‘/!40000ALTERTABLE tb_name DISABLEKEYS*/; 以及
‘/!40000ALTERTABLE tb_name ENABLEKEYS*/; ‘ 等信息。这两段信息会分别放在INSERT语句的前后,也就是说,在插入数据前先禁用索引,等完成数据插入后再启用索引,目的是为了加快导入的速度。该参数默认就是启用状态。可以通过–skip-disable-keys参数来禁用。
–opt: 功能等同于同时指定了 –add-drop-table, –add-locks, –create-options, –quick, –extended-insert, –lock-tables, –set-charset, 以及 –disable-keys这些参数。默认就是启用状态。使用–skip-opt来禁用该参数。
–skip-opt: 禁用–opt选项,相当于同时禁用 –add-drop-table, –add-locks, –create-options, –quick, –extended-insert, –lock-tables, –set-charset, 及 –disable-keys这些参数。
-q,–quick: 导出时不会将数据加载到缓存,而是直接输出。默认就是启用状态。可以使用–skip-quick 来禁用该参数。

五.使用示例:

(1) 远程备份单库例子(将远程192.168.1.1 的test库的数据备份到本机/usr/local/mysqlData目录下)

这里并不会备份建库的语句,只有建表还有表数据的语句。

mysqldump -uroot -proot -h192.168.1.1 test >/usr/local/mysqlData/test.sql

(2)远程备份单库例子并保留创建库语句(需要加上--databases属性):

mysqldump -uroot -proot -h192.168.1.1--databases test >/usr/local/mysqlData/test.sql

(3)远程备份单库单表的例子:备份test库的user表

mysqldump -uroot -proot -h192.168.1.1  test user >/usr/local/mysqlData/test_user.sql

(4)远程备份多库的例子:备份test1 和 test2 库

mysqldump -uroot -proot -h192.168.1.1--databases  test1 test2 >/usr/local/mysqlData/test1_test2.sql

(5)远程备份全库的例子:

​mysqldump -uroot -proot -h192.168.1.1--all-databases  >/usr/local/mysqlData/test_all.sql

(8)备份全库,并截断二进制日志,加上master-data参数

mysqldump -uroot -p'Qqmima917@'--all-databases --single-transaction --master-data=1--flush-logs > date +%F-mysql-all.sql;

(9)只导出test库的t_alarm表的deviceId为1的数据,并且只导出数据

mysqldump  -ucadmin -p1q2w3e -t test t_alarm --where="DeviceId=1"> alarm.sql

六.数据恢复

(1)远程恢复数据(备份的数据文件里有创建库的语句):

前面的-u,-p,-h都是需要恢复数据库到哪台数据库服务器的信息。

注意:必须在存放备份数据目录下执行命令,不然<后面就要加全路径

mysql -u root -p root -h 192.168.1.1< test.sql

(2)远程恢复数据(备份的数据文件里没有创建库的语句):

如果备份的时候没有写建库语句,并且数据库又被删了,这时候就可以使用这种方式进行数据恢复,只要在<前面加上库名就行

mysql -u root -p root -h 192.168.1.1 test < test.sql

注意事项

1.使用mysqldump备份最好不要把备份的数据放在与源mysql数据库同一台服务器上,之前备份的意义中有提到,当服务器的磁盘发生损坏的时候,整个服务器炸了的情况下,备份数据与源数据放在一台服务器上那么备份也就没有了意义,都是不可用的。

2.mysqldump是属于完全备份,是备份整个库或者整个表,不是增量备份,并且是逻辑备份

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/363022.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【音频处理和分析工具】上海道宁与NUGEN Audio助力您更轻松地提供高质量、合规的音频

NUGEN Audio的产品 可在任何情况下提供 先进的保真度和 不受限制的创造力 提供直接和直观的声音处理方式 NUGEN工具可以更轻松地 提供高质量、合规的音频 同时节省时间 降低成本并保留创作过程 开发商介绍 NUGEN Audio是后期制作、音乐和广播领域的知名品牌&#xff0c…

【Mysql】 锁

【Mysql】 锁 文章目录【Mysql】 锁1. 锁1.1 概述1.2 全局锁1.2.1 介绍1.2.2 语法1.2.2.1 加全局锁1.2.2.2 数据备份1.2.2.3 释放锁1.2.3 特点1.3 表级锁1.3.1 介绍1.3.2 表锁1.3.3 元数据锁1.3.4 意向锁1.4 行级锁1.4.1 介绍1.4.2 行锁1.4.3 间隙锁&临键锁1. 锁 1.1 概述…

一起学习用Verilog在FPGA上实现CNN----(八)integrationFC设计

1 integrationFC设计 LeNet-5网络结构全连接部分如图所示&#xff0c;该部分有2个全连接层&#xff0c;1个TanH激活层&#xff0c;1个SoftMax激活层&#xff1a; 图片来自附带的技术文档《Hardware Documentation》 integrationFC部分原理图&#xff0c;如图所示&#xff0c;…

python基于flask共享单车系统vue

可定制框架:ssm/Springboot/vue/python/PHP/小程序/安卓均可开发 目录 1 绪论 1 1.1课题背景 1 1.2课题研究现状 1 1.3初步设计方法与实施方案 2 1.4本文研究内容 2 2 系统开发环境 4 2. 3 系统分析 6 3.1系统可行性分析 6 3.1.1经济可行性 6 3.1.2技术可行性 6 3.1.3运行可行…

应用层协议

目录 应用层常见协议 DNS协议 前言 域名结构 DNS服务器分类 DNS的工作原理 DNS工作原理实例 DNS记录 DHCP协议 静态IP与动态IP DHCP协议好处 DHCP分配IP地址的4阶段 电子邮件 邮件的过程 电子邮件发送过程 pop协议特点 IMAP协议的特点 FTP协议 前言 FTP数据…

操作系统-初次理解

目录 1. 冯诺依曼体系 2. 操作系统 2.1 概念 2.2 解释 2.3 为什么管理 1. 冯诺依曼体系 我相信大家在学习计算机语言时一定听过这个体系结构的&#xff0c;那么这个结构到底是什么呢&#xff1f;上图&#xff1a; 该图是我对冯诺依曼体系结构简单构造&#xff0c;真实情况更…

Java实现多线程有几种方式(满分回答)

目录JDK8 创建的线程的两种方式orcle文档解释方式一&#xff1a;继承Thread类方式二&#xff1a;实现Runnable接口同时用两种的情况其他间接创建方式Callable接口线程池JDK8 创建的线程的两种方式 orcle文档解释 orcle文档&#xff1a;https://docs.oracle.com/javase/8/docs…

【项目精选】动漫论坛的设计与实现(论文+视频+源码)

点击下载源码 作为文化产业的一部分&#xff0c;动漫影响了我国一代又一代青少年&#xff0c;据钱江晚报调查显示&#xff0c;有超过七成的95后愿意从事与动漫相关的行业&#xff0c;可见其对青少年影响力之大。 动漫论坛作为最先开始热爱动漫人士进行交流的方式之一&#xff0…

让师生“不跑腿”,教育数据治理究竟有何魔力

当前&#xff0c;教育信息化新基础设施正在加紧建设&#xff0c;教育业务系统应用不断推进&#xff0c;各种软硬件平台源源不断地产生着教育数据。海量数据的汇聚和分析&#xff0c;能给教育系统带来什么&#xff1f;如何在教育数字化转型中&#xff0c;探索出基于数据驱动的新…

Linux 浅谈之性能分析工具 perf

Linux 浅谈之性能分析工具 perf HELLO&#xff0c;各位博友好&#xff0c;我是阿呆 &#x1f648;&#x1f648;&#x1f648; 这里是 Linux 浅谈系列&#xff0c;收录在操作系统专栏中 &#x1f61c;&#x1f61c;&#x1f61c; 本系列将记录一些阿呆个人整理的 OS 相关知识…

【数据结构入门】-链表之单链表(1)

个人主页&#xff1a;平行线也会相交 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 平行线也会相交 原创 收录于专栏【数据结构初阶&#xff08;C实现&#xff09;】 文章标题回顾链表链表的概念及结构各种节点打印链表尾插创建节点尾删头插头删查找在pos…

微信小程序 Vue+uniapp+nodejs早教育教幼教知识学习系统

目 录 1绪论 1 1.1项目研究的背景 1 1.2开发意义 1 1.3项目研究现状及内容 5 1.4论文结构 5 2开发技术介绍 7 2.5微信小程序技术 8 3系统分析 9 3.1可行性分析 9 3.1.1技术可行性 9 3.1.2经济可行性 9 3.1.3操作可行性 10 3.2网站性能需求分析 10 3.3网站功能分析 10 3.4系统…

PHP7.4 FFI 扩展安全问题

在前面 [极客大挑战 2020] 的Roamphp5-FighterFightsInvincibly 题&#xff0c;遇到了 FFI扩展 调用函数进行rce to bypass disable_function&#xff0c;之前没遇见过&#xff0c;刚好借此机会学一学 目录 <1> PHP 7.4 FFI简介 <2> FFI 配置信息 <3> FF…

数据库丨TiDB集群中高危Grafana权限漏洞如何快速修复?答案在这里→

文章目录前言一、现有TiDB信息二、下载解压Grafana组件1.下载2. 解压安装三、制作离线镜像源1.制作镜像2.离线镜像发布3.查看当前镜像源&#xff0c;设置镜像源境准备4.备份private.json5.publish镜像6.各个参数解释如下&#xff1a;7.清理老文件四、Grafana组件升级替换Grafan…

记数据血缘前端中panzoom初始化缩放比例的问题探索

0. 背景 有人问我 血缘前端vue版本能不能改初始缩放比例&#xff0c;节点太多的情况下初始缩放比例太大导致无法看清全图&#xff0c;需要渲染完之后手动缩放才能。 当时编写代码的时候使用 panzoom这个库来完成 血缘图的缩放工作。 使用的panzoom版本是&#xff1a; “panzoo…

nacos启动失败(解决方法汇总)

安装nacos 报错 org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name instanceOperatorClientImpl defined in URL [jar:file:/H:/nacos/nacos/target/nacos-server.jar!/BOOT-INF/lib/nacos-naming-2.0.3.jar!/com/alibaba/na…

【数据结构与算法】哈希表2:四数相加II 赎金信 三数之和 四数之和

文章目录今日任务1.Leetcode454.四数相加II&#xff08;1&#xff09;题目&#xff08;2&#xff09;思路&#xff08;3&#xff09;代码演示2.Leetcode383.赎金信&#xff08;1&#xff09;题目&#xff08;2&#xff09;思路&#xff08;3&#xff09;暴力解法&#xff08;4&…

算法刷题日志——移除元素,双指针

文章目录删除有序数组中的重复项[删除有序数组中的重复项 II](https://leetcode.cn/problems/remove-duplicates-from-sorted-array-ii/)移除元素[283. 移动零](https://leetcode.cn/problems/move-zeroes/description/)[844. 比较含退格的字符串](https://leetcode.cn/problem…

数仓、数据湖、湖仓一体、数据网格的探索与研究

第一代&#xff1a;数据仓库 定义 为解决数据库面对数据分析的不足&#xff0c;孕育出新一类产品数据仓库。数据仓库&#xff08;Data Warehouse&#xff09;是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合&#xff0c;用于支持管理决策和信息的全局共享。 数…

【Linux系统】认识操作系统和操作系统如何进行管理以及进程相关状态

进程概念1 认识冯诺依曼体系结构1.1 冯诺依曼体系结构存储器的作用2 操作系统(Operator System&#xff0c;OS)2.1 OS如何进行管理3 进程3.1 OS管理进程&#xff1a;先描述再组织3.2 描述进程-PCB3.3 查看进程3.4 通过系统调用获取进程标识符3.5 通过系统调用创建子进程——for…