当前位置: 首页 > news >正文

数据库备份与恢复

数据库备份的重要性

在生产环境中,数据的安全性至关重要,任何数据的丢失都可能产生严重的后果。

造成数据丢失的原因有:程序错误、人为操作错误、运算错误、磁盘故障、灾难(如火灾、地震)和盗窃。

数据库备份的分类

从物理与逻辑的角度,备份可分为:

物理备份

对数据库操作系统的物理文件 (如数据文件,日志文件等)的备份。

物理备份方法

冷备份 (脱机备份):是在关闭数据库的时候进行的。

热备份(联机备份):数据库处于运行状态,依赖于数据库的日志文件。

温备份:数据库锁定表格(不可写入但可读)的状态下进行备份操作。

逻辑备份

对数据库逻辑组件 (如:表等数据库对象)的备份。

从数据库的备份策略角度,备份可分为:

完全备份:每次对数据库进行完整的备份。

差异备份:备份自从上次完全备份之后被修改过的文件。

增量备份:只有在上次完全备份或者增量备份后被修改的文件才会被备份。

MySQL完全备份与恢复

每次进行完全备份,这样会导致备份文件占用空间巨大并且会有大量的重复数据。

恢复的时候,直接使用备份的文件即可。

MySQL差异备份与恢复

差异备份,都会备份上一次完全备份之后的数据,可能会出现备份重复的数据,也会导致占用额外的磁盘空间。

恢复时,先恢复完全备份的数据,再恢复差异备份的数据。

MySQL增量备份与恢复

每次增量备份都是上一次完全备份数据增量之后的数据 不会出现备份重复数据的情况,也不会占用额外的磁盘空间。

恢复时,需要按次序 完全备份 第一次增量 第二次增量。

MySQL备份恢复命令

全量备份

1、完全备份一个或多个完整的库 (包括这个库下的所有表 )
mysqldump -u root -p[密码] --databases 库名1 [库名2] ... > /备份路径/备份文件名.sql2、完全备份中 备份mysq1所有的库
mysqldump -u root -p[密码] --all-databases > /备份路径/备份文件名.sql3、完全备份 指定库中的某张表
mysqldump -u root -p[密码] 库名 [表名1] [表名2] ... > /备份路径/备份文件名.sql
例:mysqldump -u root -p -d kgc info1 info2 > /opt/kgc_info1.sql使用“-d”选项,说明只保存数据库的表结构 
不使用“-d"选项,说明表数据也进行备份,只做为一个表结构模板4、查看备份文件
grep -v "^--" /opt/kgc_info1.sql | grep -v "^/" | grep -v "^$"

恢复

1、使用source恢复数据库
source /opt/info.sql
show tables2、 mysql -uroot -p123 数据库 < /文件目录/备份文件.sql
mysql -uroot -p123 -e 'show tables from 数据库;' 注:mysqldump 严格来说属于温备份,会需要对表进行写入的锁定。
当备份时加 --databases ,表示包含ky13库。
当备份时不加 --databases,表示不包含ky13库,只备份数据库下的所有表。

http://www.lryc.cn/news/149596.html

相关文章:

  • ssm+vue高校实验室管理系统源码和论文
  • npm报错sass
  • [系统安全] 五十三.DataCon竞赛 (2)2022年DataCon涉网分析之恶意样本IOC自动化提取数据集详解
  • 【Cadence】Calculator计算sp的3dB带宽
  • 浅谈监听单选框radio改变事件(和layui中单选按钮改变事件)_javascript技巧
  • SourceTree安装教程
  • 渗透测试漏洞原理之---【任意文件上传漏洞】
  • Rust多线程编程
  • 什么是 TF-IDF 算法?
  • 干货!耽误你1分钟,教你怎么查自己的流量卡是什么卡?
  • Spring Boot + Vue的网上商城实战入门
  • 云上办公系统项目
  • three.js(九):内置的路径合成几何体
  • 【MySQL系列】索引的学习及理解
  • GPT-4.0技术大比拼:New Bing与ChatGPT,哪个更适合你
  • vnc与windows之间的复制粘贴
  • windows下如何搭建属于自己的git服务器
  • D360周赛复盘:模拟(思维题目)⭐⭐+贪心解决可能的最小和(类似上次)
  • 【C++学习】函数指针
  • A. Copil Copac Draws Trees
  • D359周赛复盘:贪心解决求最小和问题⭐⭐+较为复杂的双层线性DP⭐⭐
  • python基础之miniConda管理器
  • C++算法 —— 分治(1)快排
  • 接口用例设计
  • Selenium超级详细的教程
  • 服务报network error错误
  • 【ES6】利用 Proxy实现函数名链式效果
  • hive部署
  • ip白名单之网段
  • PMP项目管理主要学习内容是什么?