- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6、数据库恢复
上一章:数据移动
第六章 数据库恢复
第六章 数据库恢复 1
6.1 工作单元 1
6.2事务 1
6.3日志文件的使用 2
6.4日志管理配置参数 3
6.4.1日志的类型 4
6.4.2循环日志 5
6.4.3归档日志 5
6.4.4.1事故恢复 6
6.4.4.2前滚恢复 7
6.5后备的恢复 7
6.5.1执行数据库级别的后备 8
6.5.2 后备文件 9
6.6执行数据库级别上的恢复 9
6.7 执行表空间级别上的后备或恢复 12
6.8有关后备/恢复策略讨论的总结 12
6.9恢复历史文件 13
6.10 图形管理工具 15
6.10.1 Recovery Jobs Tool (恢复作业工具) 16
6.10.2 Database Director (数据库指导器) 16
6.10.3配置DB2实例 18
6.10.3.1配置DB2数据库 18
6.10.3.2对数据库编目/ 撤消编目 18
6.10.3.3创建/修改 DB2对象 19
在防止关键数据的丢失当中,恢复用户自己的环境十分重要。有一些工具可以帮助用户管理自己的环境和保证用户可以对自己的数据实施充分的恢复措施。
我们将讨论在关系数据库系统中的日志存档概念,因为它属于数据库的恢复功能的组成部分。日志文件是由DB2用来确保数据库完整性,即使当出现某些不可预见的问题引起用户系统瘫痪时,比如发生断电故障,也能做到这一点。要充分理解日志工作的目的,首先解释清楚工作单元(unit of work)和事务或交易(transaction)这两个概念。
6.1 工作单元
为了确保数据库中数据的一致性,应用程序经常必须立即实施一些变更。类似,它必须禁止所有的变更。这就叫做工作单元(unit of work)。工作单元是应用程序进程内可恢复的操作序列。工作单元是应用程序用来确保在数据库中不引入不一致数据的基本机制。在任何时刻,应用程序进程都有一个工作单元,而应用程序进程的生存期可能涉及许多工作单元。
6.2事务
在象DB2这样的关系数据库中,工作单元被称为事务或交易(transaction)。事务是应用程序进程内的一个可恢复的SQL操作序列。对数据库的任何一次读或写都是在某次事务内完成的。
任何一个成功地与数据库相连接的应用程序都自动地启动一个事务。应用程序必须通过发出一条 SQL COMMIT(委托确认)或SQL ROLLBACK(退回)语句去结束该事务。 SQL的 COMMIT语句告诉数据库管理员立即对数据库实施事务中的所有数据库变动(插入、更新、删除)。SQL的 ROLLBACK语句告诉数据库管理器不实施这些变动,但将受到影响的行返回到开始该事务之前的原有状态。
6.3日志文件的使用
为了确保用户数据的完整性,DB2已经实施提前写日志存档模式。提前写日志存档的基础是指:当发出删除、插入或更新数据库中某一数据的 SQL调用时,所做出数据变更首先要写到日志文件中去。当发出一条 SQL委托确认命令时 DB2要保证把为了重新运作(replay)所需要的日志文件都写入磁盘中。在发生断电之类的不幸事故时,日志文件可以用来把数据库退回到原来的某个一致性状态。所有被委托确认的事务都将重新再做一遍,所有非委托确认的事务都将回退到原有起点。
所有数据库都有与它们相关联的日志文件。日志文件有预先定义的长度。因此,当日志文件被填满时,日志存档过程就要在另一个日志文件中继续进行。
图6.1说明了怎样使用多个日志文件去管理若干并行事务。图的顶部表示访问同一个数据库的三个用户进程(1-3)在时间上的进展。方框表示数据库的变更比如插入或更新。用户可以看到每个事务(A-F)的生存期。图的中下方表示数据库的变更怎样被同步地记录到日志文件(x, y)中。每个小方格中的字母表示该数据库变更属于哪个事务。
当发出一条SQL COMMIT命令时,包含该事务的日志缓冲区便被写入到磁盘。这一动作通过箭头线和波浪线来表示。事务E任何时候都不被写入磁盘,因为它用 SQL ROLLBACK命令来终止。当日志文件 x因存放事务 D的第一个数据库变更而用完了空间时,日志存档进程将转向日志文件y继续进行。日志文件 x仍然保持活动状态,直到把事务 C的所有变更都写入到磁盘中为止。在将日志存档工作转向日志文件 y的瞬间,日志文件 x仍然保持处于活动状态的时间周期用一个小时的六边形来表示。
时光
事务A 事务D
文档评论(0)