mysql数据库的备份和还原的总结
mysql数据库的备份和还原的总结
(来自一运维同事的总结)
1. 备份方式:
- 热备:数据库在线进行备份,不影响读和写的在线备份方式!
- 温备:数据库在线进行备份,对表备份时先锁定写操作,仅可以执行读操作的备份方式!
- 冷备:离线备份,也就是关闭mysql后备份数据库。
2. 备份策略:
- 完全备份:备份全部数据。(可能备份某一个库的数据,也可能备份N个库的数据)。
- 增量备份:仅备份上次完全备份或增量备份以后发生了变化的数据。
- 差异备份:第一次完全备份后,将后续发生变化的数据进行备份,时间长了,会很占磁盘空间。
3. 物理备份和逻辑备份及区别:
- 物理:直接复制数据文件,备份和恢复操作都比较简单,能k够跨mysql的版本,恢复速度快,属于文件系统级别。
- 逻辑:备份表中的数据和代码,将数据导出至文本文件中,必要时还原。# 备份或恢复都需要mysql服务器进程参与,速度慢,数据转换成文本字符时,丢失浮点数在精度方面使用文本处理工具直接对其处理,可移植性强,恢复简单、备份的结果为ASCII文件,可以编辑,与存储引擎无关,可以通过网络备份和恢复。
一、备份/还原表 # 语法:mysqldump [options] [db_name [tbl_name ...]]
a) 备份单个表:
Mysqldump -uroot -p db_1 tb_1 >/xxx/xxxtb.sql
#备份db_1库的tb_1表到/xx/目录下,并命名为xxtb.sql文件。
b) 备份多个表
Mysqldump -uroot -p db_1 tb_1 tb_2 tb_3 >/xxx/xxxtb.sql
#备份db_1库中的tb_1,tb_2,tb_3表。
c) 恢复表: # mysql [OPTIONS] [database]
1. mysql -p yq_1 < /xxtb.sql #此时,备份xxtb.sql中的语句将被执行,开始使用xxtb.sql恢复yq_1库中的表。
二、备份/还原数据库
mysqldump [options] [db_name [tbl_name ...]]
1. 备份单个数据库: 示例:mysqldump -uusername -p yq_1 > /xxx/xxxdb.sql
2. 备份多个数据库: 示例:mysqldump -uusername -p --databases db_1 db_2 > db.sql
3. 备份整个数据库: 示例:mysqldump -uusername -p --all-databases > /root/db.sql
还原数据库
mysql -u root -p [dbname] < backup.sq
1. 还原单个数据库: 示例:mysql -uusername -p yq_1 < /db.sql
# 还原时必须要指定要还原的数据库yq_1且须存在(因为单个库备份不备份数据库信息,只备 份数据库中表的信息。),不存在则须手动创建后,才可进行还原。
2. 还原多个数据库: 示例:mysql -uusername -p < db.sql
#还原多个数据库时,无需指定要还原哪些数据库,因为备份中备份了数据库信息,有数据库不存在的话会自动创建,存在则将其覆盖。
3. 还原整个数据库: 示例:mysql -uusername -p < /db.sql
三、单表恢复
有时候会面临这样一些情况,备份了整个数据库,却只需要恢复其中的某个table或某几个tables。
1.备份整个数据库,恢复单张表。
比如备份一个库test,相当于将test库中的所有表备份。mysql也是这样做的,在查看整个sp2p库的备份时,可以发现,整个备份中全部为创建表结构和插入表数据的sql语句,其中对每个表的备份分为2部分,如下
#备份表结构
--
-- Table structure for table `t_banks`
--
......创建表结构语句........
#备份表数据
--
-- Dumping data for table `t_banks`
--
四、使用source命令恢复数据库和表
1. 恢复备份单个表的备份: mysql>source /tb.sql
注意:使用source恢复单个表,则需要进入所在数据库中,且如果表不存在需手动创建。
使用source恢复单个库,同理。
使用source恢复多个库,也无需手动创建数据库。
注意:
1. mysqldump命令备份单个库时(也就是不使用--databases/--all-databases等系列的参数时),只备份单个库下的所有表,注意其备份不包括备份(创建/删除)数据库的操作。
例如:
备份好单个库后,还原时,如mysqldump -p db1 > /xxx/db.sql,备份单个库,msyqldump命令只备份db1数据库下的所有表,而不包括创建数据库的CREATE DATABASE语句,因此如果把db1删了使用db.sql还原时会出现:“No database selected”的错误信息,因此在还原前必须先创建db1(也可以自定义数据库名为db2、db3等)数据库,或者可以直接用mysqldump -u root -p --databases db_1>db.sql,这样不仅备份了所有数据库下的表结构,而且包括了创建数据库的语句。
mysql数据库的备份和还原的总结的更多相关文章
- 如何用SQL语句实现Mysql数据库的备份与还原
以前一直做android客户端的项目,根本没有开发asp.net mvc的开发,现阶段做了一个模块,参数设置,以及数据库的备份与还原.其需求如下: 参数设置 本项参数设置为对自动数据备份进行设置,管理 ...
- mysql数据库的备份和还原
mysql数据库的备份命令:mysqldump -u root -p 要备份的现有数据库名 > 备份后的sql文件名.sql,例如: mysqldump -u root -p heal ...
- MySQL数据库的备份、还原、迁移
一.单库备份与还原 1.远程连接MySQL数据库 D:\mysql-5.7.14-winx64\bin>mysql -h192.168.2.201 -uroot -pcnbi2018 参数说明: ...
- [知了堂学习笔记]_Java代码实现MySQL数据库的备份与还原
通常在MySQL数据库的备份和恢复的时候,多是采用在cmd中执行mysql命令来实现. 例如: mysqldump -h127.0.0.1 -uroot -ppass test > d:/tes ...
- Java代码实现MySQL数据库的备份与还原
通常在MySQL数据库的备份和恢复的时候,多是采用在cmd中执行mysql命令来实现. 例如: mysqldump -h127.0.0.1 -uroot -ppass test > d:/tes ...
- 关于mysql数据库的备份和还原
在搭建网站的过程中常遇到文件的备份与还原,以备下次再使用 备份: 图中蓝色画线处为备份命令,wordpress为要备份的数据库名,.">"可将结果输出到文件中,/opt/wo ...
- mysql 数据库的备份和还原
1. 逻辑备份 (和存储引擎无关) mysqldump -uroot -p schoolDB TSubject > /mysqlbackup/schoolDB.TSubject.sql (备份 ...
- Linux下MySQL数据库的备份与还原
昨天对公司数据库进行备份.用了以下的方法一. 导出1.导出数据和表结构: mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql 如果要导出数据库全部: mysqldump - ...
- mysql 数据库的备份与还原 at winows
把cmd的当前目录切换到mysql安装目录; 备份数据库world mysqldump -u root -p world < c:\all.sql 导入数据库 新建schema world 常 ...
随机推荐
- [Git] Git操作命令
基础操作 git配置 git config --global user.name "Your Name" git config --global user.email " ...
- python入门学习:9.文件和异常
python入门学习:9.文件和异常 关键点:文件.异常 9.1 从文件中读取数据9.2 写入文件9.3 异常9.4 存储数据 9.1 从文件中读取数据 9.1.1 读取整个文件 首先创建一个pi_ ...
- 谈谈ISCSI\NAS\SAN及SAS之间的区别及优缺点--待补充
在中国市场,中小企业存储的需求主要有以下三点:软件及硬件设备简便易用,使非IT专业人士也能进行部署和管理:满足基本业务的存储需求,并可进行灵活扩展:价格合理,不会使企业由于成本问题而耽误关键业务数据的 ...
- HashMap 1.7
1.关键属性与内部类 1.1属性 使用拉链法解决hash冲突的hash表,hash表里存了多少个元素.数组有多长以及当什么情况下需要扩容是重要的参数. transient Entry<K,V&g ...
- 微信硬件平台(七) 设备控制控制面板-网页sokect-mqtt长连接
给微信硬件设备添加我们自己的控制面板. 主要问题: 1 要保证长连接,这样面板可以实时交互阴间设备,http一次性的连接模式通信不行. 面板必须是网页化的,网页就可以操作交互.不用APP和小程序. 2 ...
- argparse模块
argparse模块是的编写用户友好的命令行接口非常容易.程序只需定义好它要求的参数,然后argparse将负责如何从sys.argv中解析出这些参数.argparse模块还会自动生成帮助和使用信息并 ...
- 通过buildroot+qemu搭建ARM-Linux虚拟开发环境
1. 配置工作环境 sudo apt install gcc build-essential bison flex gettext tcl sharutils libncurses-dev zlib1 ...
- 浅谈文件断点续传和WebUploader的基本结合
0.写在前面的话 上篇博客已经是在8月了,期间到底发生了什么,只有我自己知道,反正就是心情特别糟糕,生活状态工作状态学习状态都十分不好,还有心思进取吗,No!现在状态好起来了,生活又充满了希望 :D ...
- 使用sql语句比较excel中数据的不同
使用sql语句比较excel中数据的不同 我所在的项目组是一套物流系统,负责与公司的电商系统进行对接.但是公司的电商系统的省市区的配置和物流系统的省市区的配置有差异,所以需要找到这些差异. 首先找到我 ...
- Kano模型告诉你“是不是只要企业努力的提高产品或服务质量,顾客满意度就一定会提高吗?”
在 PO在敏捷需求下要遵守哪6条重要原则? 中讲到探索和交付两大阶段的6个原则 其中在原则[做有价值的需求]中讲了两个方法:BSA分析和产品Backlog 其中BSA分析是我在产品规划阶段常使用的 ...