搜索
首页数据库mysql教程数据库恢复技术有哪些

数据库恢复技术有哪些

Jul 27, 2021 am 11:17 AM
mysql恢复技术数据库

数据库恢复技术有:1、数据转储,即DBA定期将整个数据库复制到磁带或另一个磁盘上保存起来的过程。2、登记日志文件,日志文件是用来记录事务对数据库的更新操作的文件,设立日志文件可以进行事务故障恢复、系统故障恢复、协助后备副本进行介质故障恢复。

数据库恢复技术有哪些

本教程操作环境:windows7系统、mysql8版本、Dell G3电脑。

数据库恢复概述

  数据库管理系统必须具有把数据库从某一错误状态恢复到某一已知的正确状态的功能,这就是数据库的恢复。恢复子系统是数据库管理系统的一个重要组成部分,而且还相当庞大,常常占整个系统代码的百分之十以上。数据库系统采用的恢复技术是否行之有效,不仅对系统的可靠程度起着决定性作用,而且对系统的运行效率也有很大影响,是衡量系统性能优劣的重要指标。

  系统故障称为软故障,介质故障称为硬故障。硬故障指外存故障,如磁盘损坏、磁头碰撞、瞬时强磁场干扰等。这类故障将破坏数据库或部分数据库,并影响正在存取这部分数据的所有事务。

计算机病毒

  总结各类故障,对数据库的影响有两种可能性。一是数据库本身被破坏。二是数据库没有被破坏,但数据可能不正确,这时由于事务的运行被非正常终止造成的。

恢复的实现技术

恢复机制涉及两个关键问题:

1、如何建立冗余数据;

2、如何利用这些冗余数据实施数据库恢复。 

建立冗余数据最常用的技术是数据转储和登记日志文件。通常在一个数据库系统中,这两种方法是一起使用的。

数据转储

数据转储是数据库恢复中采用的基本技术。所谓转储即DBA定期将整个数据库复制到磁带或另一个磁盘上保存起来的过程。这些备用的数据成为后备副本或后援副本。 

转储可以分为静态转储和动态转储。 

  • 静态转储是在系统中无运行事务时进行的转储操作。即转储操作开始的时刻,数据库处于一致性状态,而转储期间不允许对数据库的任何存取、 修改活动。显然,静态转储得到的一定是一个数据一致性的副本。 

  • 动态转储是指转储期间允许对数据库进行存取或修改。但是,转储结束时后援副本上的数据并不能保证正确有效。为此,必须把转储期间各事务对数据库的修改活动登记下来,建立日志文件,这样,后援副本加上日志文件就能把数据库恢复到某一时刻的正确状态。 

转储可以分为海量转储和增量转储两种方式。海量转储是指每次转储全部数据库。增量转储则指每次只转储上一次转储后更新过的数据。从恢复角度看,使用海量转储得到的后备副本进行恢复一般来说更方便一些。
数据转储方法可以分为四类:动态增量转储、动态海量转储、静态增量转储、静态海量转储。

登记日志文件

日志文件的格式和内容

日志文件是用来记录事务对数据库的更新操作的文件。日志文件主要有两种格式:以记录为单位的日志文件和以数据块为单位的日志文件。 

以记录为单位的日志文件,需要登记的内容包括: 

1、各个事务的开始标记
2、各个事务的结束标记
3、各个事务的所有更新操作 

每个日志记录的内容包括: 

1、事务标识(标明是哪个事务)
2、操作的类型(插入、删除或修改)
3、操作对象(记录内部标识)
4、更新前数据的旧值
5、更新后数据的新值

日志文件的作用

日志文件在数据恢复中起着非常重要的作用。可以用来进行事务故障恢复和系统故障恢复,并协助后备副本进行介质故障恢复。

具体作用是: 

1、事务故障恢复和系统故障恢复必须用日志文件

2、在动态转储方式必须建立日志文件,后备副本和日志文件结合起来才能有效地恢复数据库。 

3、在静态转储方式中,也可以建立日志文件。

登记日志文件

为保证数据库是可恢复的,登记日志文件时必须遵循两条原则:
1.登记的次序严格按并发事务执行的时间次序
2.必须先些日志文件,后写数据库。

恢复策略

事务故障的恢复

事务故障的恢复是由系统自动完成的,对用户是透明的。系统的恢复步骤是: 

1、反向扫描日志文件(即从最后向前扫描日志文件),查找该事务的更新操作。 

2、对该事务的更新操作执行逆操作。即将日志记录中“更新前的值”写入数据库。这样如果记录中是插入操作,则相当于做删除操作;若记录中是删除操作,则做插入操作;若是修改操作,则相当于修改求前值代替修改后值。 

3、继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理。 

4、如此处理下去,直至读到此事务的开始标记,事务故障恢复就完成了。

系统故障的恢复

事务故障的恢复是由系统自动完成的,对用户是透明的。系统的恢复步骤是: 

1、正向扫描日志文件,找出在故障发生前已经提交的事务,将其事务标识记入重做队列。同时找出故障发生时尚未完成的事务,将其事务表示计入撤销队列。

2、对撤销(UNDO)队列中的各个事务进行撤销处理。 

进行UNDO处理的方法是,反向扫描日志文件,对每个UNDO事务的更新操作执行逆操作,即将日志记录中“更新前的值”写入数据库。 

3、对重做队列中的各个事务进行重做REDO处理 

进行REDO处理的方法是:正向扫描日志文件,对每个REDO事务重新执行日志文件登记的操作。即将日志记录中“更新后的值”写入数据库。

介质故障的恢复

恢复故障的方法是重装数据库,然后重做已完成的事务。 

1、装入最新的数据库后备副本,是数据库恢复到最近一次转储时的一致性状态。 

2、装入相应的日志文件副本,重做已完成的事务。即首先扫描日志文件,找出故障发生时已提交的事务的标识,将其计入重做队列。然后正向扫描日志文件,对重做队列中的所有事务进行重做处理。即将日志记录中“更新后的值”写入数据库。 

介质故障的恢复需要DBA介入。但DBA只需要重装最近转储的数据库副本和有关的各日志文件副本,然后秩序系统提供的恢复命令即可,具体的恢复操作仍有DBMS完成。

数据库镜像

  随着磁盘容量越来越大,价格越来越便宜,为避免磁盘介质出现故障影响数据库的可用性,许多数据库管理系统提供了数据经销功能用于数据库恢复。根据DBA的要求,自动把整个数据库或其中 的关键数据复制到另一个磁盘上。 

  由于数据库镜像是通过复制数据实现的,频繁地复制数据自然会降低系统运行效率,因此在时间应用中用户往往只选择对关键数据和日志文件镜像,而不是对整个数据库进行镜像。

(推荐教程:mysql视频教程

以上是数据库恢复技术有哪些的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
如何向新的MySQL用户授予权限如何向新的MySQL用户授予权限May 09, 2025 am 12:16 AM

TograntpermissionstonewMySQLusers,followthesesteps:1)AccessMySQLasauserwithsufficientprivileges,2)CreateanewuserwiththeCREATEUSERcommand,3)UsetheGRANTcommandtospecifypermissionslikeSELECT,INSERT,UPDATE,orALLPRIVILEGESonspecificdatabasesortables,and4)

如何在MySQL中添加用户:逐步指南如何在MySQL中添加用户:逐步指南May 09, 2025 am 12:14 AM

toadduserInmysqleffectection andsecrely,theTheSepsps:1)USEtheCreateuserStattoDaneWuser,指定thehostandastrongpassword.2)GrantNectalRevileSaryPrivilegesSustate,usiveleanttatement,AdheringTotheTeprinciplelastPrevilegege.3)

mysql:添加具有复杂权限的新用户mysql:添加具有复杂权限的新用户May 09, 2025 am 12:09 AM

toaddanewuserwithcomplexpermissionsinmysql,loldtheSesteps:1)创建eTheEserWithCreateuser'newuser'newuser'@''localhost'Indedify'pa ssword';。2)GrantreadAccesstoalltablesin'mydatabase'withGrantSelectOnMyDatabase.to'newuser'@'localhost';。3)GrantWriteAccessto'

mysql:字符串数据类型和coltrationsmysql:字符串数据类型和coltrationsMay 09, 2025 am 12:08 AM

MySQL中的字符串数据类型包括CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT,排序规则(Collations)决定了字符串的比较和排序方式。1.CHAR适合固定长度字符串,VARCHAR适合可变长度字符串。2.BINARY和VARBINARY用于二进制数据,BLOB和TEXT用于大对象数据。3.排序规则如utf8mb4_unicode_ci忽略大小写,适合用户名;utf8mb4_bin区分大小写,适合需要精确比较的字段。

MySQL:我应该在Varchars上使用什么长度?MySQL:我应该在Varchars上使用什么长度?May 09, 2025 am 12:06 AM

最佳的MySQLVARCHAR列长度选择应基于数据分析、考虑未来增长、评估性能影响及字符集需求。1)分析数据以确定典型长度;2)预留未来扩展空间;3)注意大长度对性能的影响;4)考虑字符集对存储的影响。通过这些步骤,可以优化数据库的效率和扩展性。

mysql blob:有什么限制吗?mysql blob:有什么限制吗?May 08, 2025 am 12:22 AM

mysqlblobshavelimits:tinyblob(255bytes),blob(65,535 bytes),中间布洛布(16,777,215个比例),andlongblob(4,294,967,967,295 bytes).tousebl观察性:1)考虑performance impactsandSandStorelargeblobsextern; 2)管理backbackupsandreplication carecration; 3)usepathsinst

MySQL:自动化用户创建的最佳工具是什么?MySQL:自动化用户创建的最佳工具是什么?May 08, 2025 am 12:22 AM

自动化在MySQL中创建用户的最佳工具和技术包括:1.MySQLWorkbench,适用于小型到中型环境,易于使用但资源消耗大;2.Ansible,适用于多服务器环境,简单但学习曲线陡峭;3.自定义Python脚本,灵活但需确保脚本安全性;4.Puppet和Chef,适用于大规模环境,复杂但可扩展。选择时需考虑规模、学习曲线和集成需求。

mysql:我可以在斑点内搜索吗?mysql:我可以在斑点内搜索吗?May 08, 2025 am 12:20 AM

是的,YouCansearchInIdeAblobInMysqlusingsPecificteChniques.1)转换theblobtoautf-8StringWithConvertFunctionWithConvertFunctionandSearchusiseLike.2)forCompresseBlyblobs,useuncompresseblobs,useuncompressbeforeconversion.3)acpperformance impperformance imperformance imptactsanddataEccoding.4)

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境