MySQL数据库备份和还原

news2025/2/12 17:38:21

237d054f8f19428d8155ef28e2c8b398.gif备份对于数据库而言是至关重要的。当数据文件发生损坏、MySQL服务出现错误、系统内核崩溃、计算机硬件损坏或者数据被误删等事件时,使用一种有效的数据备份方案,就可以快速解决以上所有的问题。MySQL提供了多种备份方案,包括:逻辑备份、物理备份、全备份以及增量备份,你可以选择最适合自己使用的方式备份数据。

 

 

物理备份通过直接复制包含有数据库内容的目录与文件实现,这种备份方式适用于对重要的大规模数据进行备份,并且要求实现快速还原的生产环境。典型的物理备份就是复制 MySQL数据库的部分或全部目录,物理备份还可以备份相关的配置文件。但采用物理备份需要MySQL处于关闭状态或者对数据库进行锁操作,防止在备份的过程中改变发送数据。物理备份可以使用mysqlbackup对InnoDB数据进行备份,使用mysqlhotcopy对MyISAM数据进行备份。另外,也可以使用文件系统级别的cp、scp、tar、rsync等命令。

 

逻辑备份通过保存代表数据库结构及数据内容的描述信息实现,如,保存创建数据结构以及添加数据内容的SQL语句,这种备份方式适用于少量数据的备份与还原。逻辑备份需要查询MySQL服务器获得数据结构及内容信息,因为需要查询数据库信息并将这些信息转换为逻辑格式,所以相对于物理备份而言比较慢。逻辑备份不会备份日志、配置文件等不属于数据库内容的资料。逻辑备份的优势在于不管是服务层面、数据库层面还是数据表层面的备份都可以实现,由于是以逻辑格式存储的,所以这种备份与系统、硬件无关。

 

全备份将备份某一时刻所有的数据,增量备份仅备份某一段时间内发生过改变的数据。通过物理或逻辑备份工具就可以完成完全备份,而增量备份需要开启MySQL二进制日志,通过日志记录数据的改变,从而实现增量差异备份。

 

下面将通过一些案例介绍如何使用MySQL提供的工具命令进行逻辑备份。使用 mysqldump 备份数据库,默认该工具会将SQL语句信息导出至标准输出,可以通过重定向将输出保存至文件:

 

(1)备份所有的数据库

 

 mysqldump -u username -ppassword --all-databases > bak.sql

 

(2)备份指定的数据库db1、db2和db3

 

mysqldump -u username -ppassword --databases db1 db2 db3 > bak.sql

 

(3)备份db数据库,当仅备份一个数据库时,--databases可以省略

 

mysqldump --u username -ppassword db4 > bak.sql

 

mysqldump -u username -ppassword --databases db4 > bak.sql

 

两者之间的差别在于不使用 --databases 选项,则备份输出信息中不会包含CREATE DATABASE或USE语句。不使用 --databases 选项备份的数据文件,在后期进行数据还原操作时,如果该数据库不存在,必须先创建该数据库。

 

(4)备份db数据库指定的表tb_name1、tb_name2和tb_name3

 

mysqldump -u username -ppassword -t db --tables tb_name1 tb_name2 tb_name3 > bak.sql

 

注意:mysqldump默认会将多条插入语句导出成一条insert语句格式,不方便查看,如:

 

insert into t values(1),(2),(3);

 

如果想导出多条insert语句,如:

 

insert into t values(1);

insert into t values(2);

insert into t values(3);

 

加上参数 --skip-extended-insert 即可。

 

mysqldump -u username -ppassword --skip-extended-insert --databases db_name --tables tb_name > tb_name.sql

 

 

 

使用mysql命令读取备份文件,实现数据还原功能:

 

mysql -u username -ppassword < bak.sql

 

mysql -u username -ppassword db4 < bak.sq1

 

 

 

案例:下面将 testDB 数据库中的内容导出成一个文件,并保存到 /home/目录下

 

[root@192 home]# mysqldump -u username -ppassword testDB > /home/bak.sql

然后进入MySQL数据库,彻底删除 testDB 数据库,然后重新创建 testDB 数据库

 

复制代码

mysql> select * from testDB.mybook;

+--------+-------+-------+

| name | price | pages |

+--------+-------+-------+

| Linux2 | 40 | 200 |

| Linux4 | 60 | 400 |

+--------+-------+-------+

2 rows in set (0.00 sec)

 

mysql> drop database testDB;

Query OK, 1 row affected (0.00 sec)

 

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| sys |

+--------------------+

4 rows in set (0.00 sec)

 

mysql> exit

复制代码

创建数据库

 

mysql> create database testDB;

Query OK, 1 row affected (0.00 sec)

 

mysql> exit

Bye

将备份的数据导入到刚新建的 testDB 数据库中

 

[root@192 home]# mysql -u username -ppassword testDB < /home/bak.sql

 查看数据是否恢复成功

 

复制代码

[root@192 home]# mysql -u root -p

Enter password:

 

mysql> select * from testDB.mybook;

+--------+-------+-------+

| name | price | pages |

+--------+-------+-------+

| Linux2 | 40 | 200 |

| Linux4 | 60 | 400 |

+--------+-------+-------+

2 rows in set (0.00 sec)

复制代码

 

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

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

相关文章

机器学习—逻辑回归

练习2&#xff1a;逻辑回归 介绍 在本练习中&#xff0c;您将实现逻辑回归并将其应用于两个不同的数据集。还将通过将正则化加入训练算法&#xff0c;来提高算法的鲁棒性&#xff0c;并用更复杂的情形来测试模型算法。 在开始练习前&#xff0c;需要下载如下的文件进行数据上…

自学黑客【网络安全】,一般人我还是劝你算了吧

十多年前还是高中生的时候开始搞安全的&#xff0c;刚开始是看大佬们在群里发黑页觉得很牛逼。然后慢慢开始学&#xff0c;当时还在网上问过IP和ID有什么区别&#xff0c;&#xff0c;&#xff0c; 后来慢慢开始学注入&#xff0c;日到了第一个站&#xff0c;是家卖钢琴的。放…

Linux 一“文”搞定Shell编程

又到了毕业季&#xff0c;又得去找实习工作。。。 最近在某直聘软件上找实习工作&#xff0c;看到有许多工作都需要会Shell编程的&#xff0c;然后自己对Shell编程也是一知半解&#xff0c;所以趁着最后还有半个月在校时间&#xff0c;索性学习一下&#xff01; Shell是一个命…

Apache Hadoop概述

Hadoop是一个开源的分布式计算框架&#xff0c;它可以处理大规模的数据集。Hadoop的核心是HDFS(Hadoop Distributed File System)和MapReduce编程模型。HDFS是一个高度容错性的系统&#xff0c;可以在数百台服务器上存储PB级别的数据。MapReduce是一种编程模型&#xff0c;它可…

css基础知识二:CSS选择器有哪些?优先级?哪些属性可以继承?

一、选择器 CSS选择器是CSS规则的第一部分 它是元素和其他部分组合起来告诉浏览器哪个HTML元素应当是被选为应用规则中的CSS属性值的方式 选择器所选择的元素&#xff0c;叫做“选择器的对象” 我们从一个Html结构开始 <div id"box"><div class"o…

k8s 探针

1.前言 Kubernetes探针(Probe)是用于检查容器运行状况的一种机制。探针可以检查容器是否正在运行&#xff0c;容器是否能够正常响应请求&#xff0c;以及容器内部的应用程序是否正常运行等。在Kubernetes中&#xff0c;探针可以用于确定容器的健康状态&#xff0c;如果容器的健…

Prometheus+Grafana安装极简教程

目录 初始化监控主机 安装go环境 安装Prometheus 安装Grafana 初始化被监控主机 监控主机配置监控被监控主机 课后 初始化监控主机 安装go环境 下载对应的go版本&#xff0c;解压&#xff0c;设置环境变量 export GOROOT/usr/local/go export PATH$PATH:$GOROOT/bin 执…

alist与Raidrive配置开机自动启动,开机就可以拥有网盘硬盘!

目录 1. alist配置为开机自动启动服务1.1 制作一个alist启动命令行1.2 将VBS添加到开机启动项 2. Raidrive设置开机启动2.1 进入设置2.2 添加到启动项 总结 欢迎关注 『发现你走远了』 博客&#xff0c;持续更新中 欢迎关注 『发现你走远了』 博客&#xff0c;持续更新中 1. al…

大数据治理入门系列:数据质量

无论您是数据领域的专业人员&#xff0c;还是其他领域的非专业人士&#xff0c;也许都曾遇到过数据不完整、数据过时、数据不一致、数据不准确等问题。这些低质量的数据不仅没能解决最初的疑问&#xff0c;甚至还可能衍生出了其他问题。质量低劣的数据会影响数据分析结果&#…

代码随想录刷题第52天|LeetCode300最长递增子序列、 LeetCode674最长连续递增序列、LeetCode718最长重复子数组

1、LeetCode300最长递增子序列 题目链接&#xff1a;300最长递增子序列 1、dp[i]表示i之前包括i的以nums[i]结尾的最长递增子序列的长度。 2、递推公式&#xff1a; if (nums[i] > nums[j]) dp[i] max(dp[i], dp[j] 1); 注意这里不是要dp[i] 与 dp[j] 1进行比较&…

Rust X DatenLord l Rust China Conf 2023 倒计时!

Rust语言作为一种强调性能、安全和并发性的新的编程语言&#xff0c;吸引了越来越多的程序员想要尝试学习和使用Rust。达坦科技&#xff08;DatenLord&#xff09;旗下的开源项目Xline &#xff08;用于元数据管理的分布式KV存储&#xff09;就是用Rust写就的&#xff0c;我们也…

android remount 工作原理简介

android remount 在调试android 系统的时候是个非常有用的调试手段&#xff0c; 有remount 的帮助&#xff0c; 可以轻松的修改系统分区的某些文件&#xff0c;或者在系统分区添加删除文件。但有时候remount 也会因为一些verity&#xff0c; checkpoint &#xff0c;和remount …

【python数据可视化】Matplotlib绘图练习(一)

目录 Matplotlib &#x1f947;Summary 获取源码&#xff1f;私信&#xff1f;关注&#xff1f;点赞&#xff1f;收藏&#xff1f; Python数据可视化的由来主要是因为数据可视化在数据分析领域扮演了至关重要的角色。这是因为&#xff0c;数据可视化能够更好地向人们展示大量…

电脑老是自动更新怎么办?教你一招彻底解决

前言 这两天有粉丝留言问我&#xff1a;电脑老是提示自动更新&#xff0c;而且关也关不掉&#xff0c;这该怎么办&#xff1f; 今天就教大家如何彻底关掉电脑的系统自动更新功能&#xff0c;以后永远不再自动更新。 一、关闭更新服务 1. 同时按下键盘winR键&#xff0c;打开运…

SQL 知识你知道吗:公共表表达式(CTE)

一、概念 公共表表达式&#xff08;CTE&#xff09;是一种临时命名查询结果集的方式&#xff0c;可以在一个查询语句中多次引用。CTE在查询语句中定义&#xff0c;可以在查询语句中的任何位置使用&#xff0c;并且只在查询语句执行期间存在。CTE通常用于简化复杂的查询&#x…

1个暑假能学会多少网络安全技能?

现在可以看到很多标题都声称三个月内就可以转行网络安全领域&#xff0c;并且成为月入15K的网络工程师。那么&#xff0c;这个暑假的时间能学多少网络安全知识&#xff1f;是否能入门网络安全工程师呢&#xff1f; 答案是肯定的。 虽然网络完全知识是一门广泛的学科&#xff…

微信授权登录

网站应用微信登录是基于OAuth2.0协议标准构建的微信OAuth2.0授权登录系统。 在进行微信OAuth2.0授权登录接入之前&#xff0c;在微信开放平台注册开发者帐号&#xff0c;并拥有一个已审核通过的网站应用&#xff0c;并获得相应的AppID和AppSecret&#xff0c;申请微信登录且通过…

ConcurrentHashMap简单了解

早期ConcurrentHashMap&#xff1a; 通过分段锁Segment实现&#xff0c;将锁一段一段存储&#xff0c;默认会分配16个segment&#xff0c;当一个线程占用一把锁segment访问其中一段数据的时候&#xff0c;位于其它segment的数据也能被其它线程同时访问&#xff0c;每个segment分…

面板安全能力持续增强,新增日志审计功能,1Panel开源面板v1.3.0发布

2023年6月12日&#xff0c;现代化、开源的Linux服务器运维管理面板1Panel正式发布v1.3.0版本。 在这一版本中&#xff0c;1Panel进一步增强了安全方面的能力&#xff0c;包括新增SSH配置管理、域名绑定和IP授权支持&#xff0c;以及启用网站防盗链功能。此外&#xff0c;该版本…

【C#】并行编程实战:序章

前言 本文主要是基于这本书学习的&#xff1a; 《并行编程实战&#xff1a;基于C#8和.NET Core 3》&#xff0c;我当时买的实体书&#xff0c;长下面这个样子。我买了大概浏览了一下&#xff0c;感觉内容还行&#xff08;基本都是没见过的新东西&#xff09;&#xff0c;所以打…