数据库学习之(8)数据库恢复的实现--各种数据转储方法

数据转储:是数据库恢复中采用的基本技术。所谓转储即DBA 定期地将数据库复制到磁带或另一个磁盘上保存起来的过程。当数据库遭到破坏后可以将后备副本重新装入,将数据库恢复到转储时的状态。

静态转储:在系统中无运行事务时进行的转储操作。静态转储简单,但必须等待正运行的用户事务结束才能进行。同样,新的事务必须等待转储结束才能执行。这会降低数据库的可用性。

动态转储:指转储期间允许对数据库进行存取或修改。动态转储可克服静态转储的缺点,它不用等待正在运行的用户事务结束,也不会影响新事务的运行。但是,转储结束时后援副本上的数据并不能保证正确有效。因为转储期间运行的事务可能修改了某些数据,使得后援副本上的数据不是数据库的一致版本。为此,必须把转储期间各事务对数据库的修改活动登记下来,建立日志文件( 109 file )。这样,后援副本加上日志文件就能得到数据库某一时刻的正确状态。转储还可以分为海量转储和增量转储两种方式。

海量转储:指每次转储全部数据库。

增量转储:指每次只转储上一次转储后更新过的数据。从恢复角度看,使用海量转储得到的后备副本进行恢复一般说来更简单些。但如果数据库很大,事务处理又十分频繁,则增量转储方式更实用更有效。

日志文件
日志文件的作用:

  1. 日志文件是用来记录事务对数据库的更新操作的文件
  2. 事务故障恢复和系统故障必须使用日志文件
  3. 在动态转储方式中必须建立日志文件,后援副本和日志文件综合起来才能有效的恢复数据库,静态转储方式中,也可以建立日志文件

日志文件主要又两种格式:以记录为单位的日志文件和以数据块为单位的日志文件。
登记日志文件时必须遵循两条原则:

  1. 登记的次序严格按并发事务执行的时间次序
  2. 必须先写日志文件,后写数据块。

  对数据库的修改写到数据库中和把表示这个修改的日志记录写到日志文件中是两个不同的操作。有可能在这两个操作之间发生故障,即这两个写操作只完成一个。如果先写了数据库修改,而在运行记录中没有登记这个修改,则以后就无法恢复这个修改了。如果先写日志,但没有修改数据库,按日志恢复数据库时只不过是多执行一次不必要的UNDO操作,并不会影响数据库的正确性。所以为了安全,一定要先写日志文件,即首先把日志记录写到日志文件中,然后写数据库的修改。这就是“先写日志文件”的原则。

参考:https://blog.csdn.net/zanshiyonghuming/article/details/50751129

https://www.cnblogs.com/gxcstyle/p/6881361.html

原文地址:https://www.cnblogs.com/Harriett-Lin/p/10857052.html

时间: 2024-10-08 05:33:47

数据库学习之(8)数据库恢复的实现--各种数据转储方法的相关文章

数据库学习之mysql数据库

参考链接网站: http://c.biancheng.net/view/2361.html Mysql的版本以及版本号 MySQL Community Server(社区版):该版本完全免费,但是官方不提供技术支持. MySQL Enterprise Server(企业版):该版本能够以很高的性价比为企业提供数据仓库应用,支持 ACID 事物处理,提供完整的提交.回滚.崩溃恢复和行级锁定功能,但是该版本需要付费使用,官方提供电话技术支持. Mysql服务器端实用工具: http://c.bian

数据库学习 day1 认识数据库

从SQL的角度而言,数据库是一个以某种有组织的方式储存的数据集合. 我们可以把它比作一个"文件柜",这个"文件柜"是一个存放数据的物理位置,不管数据是什么,也不管数据是如何组织的. 下面介绍几个术语 数据库(database) 保存有组织的数据容器 注意:数据库和实际使用的软件无关,数据库软件应称为数据库管理系统(DBMS). 表(table) 某种特定类型数据的结构清单. 储存在表中的数据硬是同一种类型的数据或清单.绝不应该将用户的清单和订单的清单放在一个表中,否

MySQL数据库学习三 MySQL数据库基本操作

3.1 数据库和数据对象 1. 系统数据库 information_schema:主要存储系统中的一些数据库对象信息,如用户列表信息.列信息.权限信息.字符集信息和分区信息等. performance_schema:主要存储数据库服务器性能参数. mysql:主要存储系统的用户权限信息. test:测试数据库,任何用户都可以使用. 2. 用户数据库 数据库对象,是指存储.管理和使用数据的不同结构形式,主要包含表.视图.存储过程.函数.触发器和事件等. 3.2 数据库相关操作 1. 创建数据库 c

oracle 数据库学习3 --oracle 数据库中常使用的函数

1.字符函数: ASCII(X) -->返回X字符的ASCII码 concat(x,y)-->将y连接到X上输出 select concat(first_name,last_name) from customers; INITCAP(x) 将x中每个单词的首字母大写 INSTR('namename','e',1,2)  -->从'namename'开始的第一个字母开始找'e'第二次出现的位置; LENGTH(x) 获取X字符串的长度: LOWER(x) 将x中的字母转换为小写: UPPE

恢复希捷硬盘丢失数据的方法

希捷硬盘数据恢复软件在今天的软件市场中,有许多硬盘恢复工具,但是它们的质量差异很大.一旦您选择了劣质的希捷硬盘恢复软件,您不仅会以失败告终,还会对硬盘造成二次伤害.鉴于此,我们想向您介绍迷你兔数据恢复软件(minitool).对于希捷磁盘恢复来说,迷你兔数据恢复软件是一个专业而安全的选择.但值得注意的是,使用迷你兔数据恢复软件从希捷硬盘恢复数据仅在数据由于逻辑错误(软故障)而丢失时才有用.相反,如果您的希捷硬盘在物理上受损,您最好选择迷你兔人工恢复.考虑到大多数用户是Windows用户,我们将以

MYSQL数据库学习笔记1

MYSQL数据库学习笔记1 数据库概念 关系数据库 常见数据库软件 SQL SQL的概念 SQL语言分类 数据库操作 创建数据库 查看数据库的定义 删除数据库 修改数据库 创建表 数据类型 约束 修改表 表的增删查改 查询 数据库概念 数据库是一种对大量信息进行管理的一种方法. 数据库系统从结构上看,也是可以分为三层的: 物理层:数据实际如何存储 逻辑层:存储的是什么数据,以及数据间是什么关系 试图层:提供给用户的部分数据 关系数据库 目前关于数据库模型最主流的有两种, 一种叫做关系型数据库,这

数据库学习网站和linux学习网站

Oracle ITPub论坛 http://www.itpub.net 著名IT技术论坛.尤以数据库技术闻名. ITPUB论坛的前身应该是建立在 smiling 的 oracle小组,他们搬家前的主页应该是在下面的这个地址吧! http://oracle.myrice.com/ CNOUG论坛 http://www.cnoug.org/ oracle中国用户组,高手云集,讨论Oracle数据库安装.管理.备份.恢复.性能优化: Oracle数据库高级技术HA.VLDB.ORACLE INTERN

SQL Server数据库学习总结

经过一段时间的学习,也对数据库有了一些认识,数据库基本是由表,关系,操作组成:对于初学者首先要学的 一图胜"十"言:SQL Server 数据库总结 一个大概的总结 经过一段时间的学习,也对数据库有了一些认识.  数据库基本是由表,关系,操作组成:对于初学者首先要学的:  1.数据库是如何存储数据的  表,约束,触发器  2.数据库是如何操作数据的  insert,update,delete T-sql 函数 存储过程 触发器  3.数据库是如何显示数据的  select SQLSer

数据库学习之--Oracle 架构与MySQL架构对比

数据库学习之--Oracle 架构与MySQL架构对比 一.Oracle .MySQL应用对比 如果要说明三者的区别,首先就要从历史入手. Oracle:中文译作甲骨文,这是一家传奇的公司,有一个传奇的大老板Larry Ellision. Ellision 32岁还一事无成,读了三个大学,没得到一个学位文凭,换了十几家公司,老婆也离他而去.开始创业时只有1200美元,却使得Oracle公司连续12年销售额每年翻一番. Oracle成立于1977年,早期的理论基础,反而来自于一篇IBM的论文<A