什么包含用于恢复oracle数据库恢复的日志信息

您所在的位置: &
DB2数据库崩溃后用事务日志恢复操作的原理描述
DB2数据库崩溃后用事务日志恢复操作的原理描述
每日经济新闻
文章主要描述的是DB2数据库崩溃后用事务日志恢复操作原理,以下就是对DB2数据库崩溃后用事务日志恢复操作原理具体内容的描述,希望在你今后的学习中会有所帮助。
文章主要描述的是后用事务日志恢复操作原理,以下就是对DB2数据库崩溃后用事务日志恢复操作原理具体内容的描述,你如果对其有兴趣的话你就可以点击以下的文章进行观看了。
在系统DB2数据库崩溃之后,使用DB2的事务日志恢复数据库。 您曾多少次碰到过错误消息&SQL0946C The transaction log for the database is full?&
在尽力解决该问题时,您是否停下来思考如下两个问题:1. 为何存在事务日志;2. 事务日志记录服务的目的是什么呢?
若没有事务,多个用户和应用程序同时与一个数据库进行交互时就必然会破坏数据。而如果没有事务日志记录,DB2 UDB中的一些据库恢复方法就不会存在。
如果您还没有完全理解这些概念,也不必担忧。我将解释事务是什么以及事务日志记录背后的机制。然后,我将展示在系统DB2数据库崩溃或程序故障之后,如何使用数据库事务日志文件中所存储的信息来使数据库回归到一致、可用的状态。您还可以通过这些重要的日志做更多事情。
事务(也称作工作单元)是指一个或多个SQL操作的序列,这些操作组合成一个单元且通常位于一个应用程序进程内。该单元通常称作是&原子的&,因为它是不可分的&&它的所有工作要么全都执行,要么全都不执行。一个给定的事务可以执行任何数目的SQL操作(从一个到几千个,取决于业务逻辑里对于&一步&的定义)。
一个事务的开始和终止定义了数据库里数据一致性的点;要么将事务里所执行的所有操作的结果应用到数据库上,并使之成为永久的(已提交),要么将之都撤销(回滚),使数据库返回到启动该事务之前的状态。
事务是在建立到数据库的连接之后第一次执行SQL语句时或在现有事务终止时立即启动。一旦启动,就可以使用名为原子提交的功能隐式地终止该事务。通过原子提交,会将每条可执行的SQL语句当作一个事务。如果该语句执行成功,那它所做的任何修改都将应用到数据库上,但如果语句失败,那修改将被丢弃。
还可以通过执行COMMIT或ROLLBACK SQL语句显式地终止事务。
这些语句的基本语法是:
COMMIT&&ROLLBACK&&&
在COMMIT终止事务时,会将该事务从开始时对数据库所做的所有修改变成永久性的。使用ROLLBACK,所有修改都将撤销。
事务所做的未提交的修改对其他用户和应用程序来说是无法访问的,除非那些用户和应用程序使用的是未提交读(UR)隔离。然而,一旦提交了事务所做的修改,它们对于所有其他用户和应用程序来说就都是可以访问的了,并且只能通过执行新事务中的新SQL语句来删除。
事务日志记录
在向一个基表进行INSERT时,首先在缓冲池中创建一条记录,该缓冲池与指定该表的数据存储于何处的表空间相关联。每次更新或删除一条记录时,就从存储器中检索包含该记录的页面,并复制到适当的缓冲池中,然后由UPDATE/DELETE进行修改。
一旦进行了这一修改,就会向日志缓冲器写入一条反映该动作的记录,日志缓冲器是内存中的另一指定存储区(为日志缓冲器预留的真正存储大小是由logbufsiz数据库配置参数控制的)。
如果执行INSERT,就会写入一条包含了新行数据值的记录。当出现删除时,就写入一条包含了该行原始值的记录。如果执行UPDATE,就写入一条包含了该行原始值和新值的记录(在大多数情况下,通过用该行的更新值在原始值上执行EXCLUSIVE OR,为更新操作生成日志记录)。最终,当执行INSERT、UPDATE或DELETE的事务终止时,就将相应的COMMIT或ROLLBACK记录写入日志缓冲器。
每当激活缓冲池I/O页面清理器,日志缓冲器本身已满,或者提交或回滚事务时,就立即将日志缓冲器中存储的所有记录写入磁盘上所存储的一个或多个事务日志文件中。如果发生系统故障,日志缓冲器的不断刷新将最小化可能丢失的日志记录数目。
一旦将与特定事务相关联的所有日志记录(包括相应的COMMIT或ROLLBACK记录)成功具体化(externalize)为一个或多个日志文件,就会将事务本身的结果复制到适当的表空间容器以永久存储(已修改的数据页本身仍保留在内存中,在必要时可以快速进行访问;它们最终将被改写)。该过程称作写前日志记录(write-ahead logging),保证对数据所做的修改在记录到数据库之前,总是被具体化为日志文件。
因为多个事务可以在任何时候使用一个数据库,所以一个日志文件可能包含属于几个不同事务的日志记录。为了追踪一条日志记录属于哪个事务,要给每条日志记录分配一个特殊的事务ID,将之绑定到创建它的事务。
通过使用事务ID,可以随时将与特定事务相关联的日志记录写入一个或多个日志文件,而不影响数据一致性&&最终,对于终止该事务的操作的COMMIT或ROLLBACK记录也将进行日志记录,以上的相关内容就是对DB2数据库崩溃后用事务日志恢复的原理的介绍,望你能有所收获。
【编辑推荐】
【责任编辑: TEL:(010)】
关于的更多文章
经过长达 5 年的开发,IBM DB2 9 将传统的高性能、易用性与自描
数据库产品
数据库综合
数据库新闻
维基百科将切换到另外一款开源数据库MariaDB
DBA是数据库管理员,英文是Database Administrator。一
生活中,有各种点滴的时间值得我们去记录,这个专题主
这一专题主要是讨论关于数据库设计的内容,包含数据库
一个网站,无论视觉上多美观或者内容多丰富,如果它不能适应各种浏览情况并能面向尽可能广泛的用户群,那它就不算是真正成功的网
51CTO旗下网站作者:Christopher Negus
Francois Caen
本书出自多本Linux畅销书作者Negus之手,他以多年实践经验为基础,且从大多数系统管理员的日常工作需求出发,分门别类、细致入..归档数据库备份使用include logs,恢复时发现包含的日志并不完整是怎么回事?
[问题点数:100分,结帖人shenhai800]
归档数据库备份使用include logs,恢复时发现包含的日志并不完整是怎么回事?
[问题点数:100分,结帖人shenhai800]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关帖子推荐:
本帖子已过去太久远了,不再提供回复功能。扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
自修复数据库系统日志机制研究
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口保持登录。
单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.
在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。
所有提交的信息确保安全。
当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。
单击提交则表示您同意developerWorks
的条款和条件。 .
所有提交的信息确保安全。
developerWorks 社区:
我的概要信息
选择语言:
作为一名 DBA,在备份和恢复策略中安排定期的数据库系统备份非常重要。当应用程序或硬件出现故障时,就可以使用备份来恢复数据库。本文遵循在一家虚构公司担任 DBA 的 Erik 的日常工作场景进行论述。这一天,问题来了,Erik 发现错误的应用程序逻辑删除了公司的 GOSALES 数据库中多个表中的记录。但是,由于 Erik 之前使用
Data Studio Administrator 2.1 对数据库进行了备份,他可以将数据库恢复到初始的状态。
, 专职软件工程师, WSO2 Inc
TaWanna Harris 是堪萨斯州列涅萨市 Information Management Data Studio 小组的一名 QA 专职软件工程师。她从 2008 年开始从事 Data Studio Administrator 产品方面的工作。在此之前,她从事 IBM Migration Toolkit、合作伙伴和客户应用程序测试以及互操作性测试方面的工作。
, 专职软件工程师, WSO2 Inc
Sailaja Bandlamoori 是加利福尼亚州圣何塞市 IBM 硅谷实验室 Information Management Tools 小组的一名测试主管。她从 2006 年开始在 DB2 Change Management Expert 团队工作,此前在 DB2 for z/OS client/server System Test 工作。
几乎所有 DBA 都有过这样的经历:当意识到一些无法控制的状况已经毁坏或丢失了数据库中的数据时,一定会感到很沮丧。当务之急是从意外事故中恢复过来。一切可用于让恢复任务变得更简单的办法都有助于缩短停机时间。从长远来看,将恢复管理变成一种更自然的日常行为,这样可以减轻出现问题时的压力,并更快地进行恢复。
本文讲述一个名叫 Erik 的 DBA 的故事。
Erik 在 JK Enterprises Great Outdoors(一家虚构的公司)工作,他使用 IBM Data Studio Administrator 备份公司的关键销售数据库。在错误的应用程序逻辑意外地删除了多个表中的数据之后,Erik 开始挽救和恢复数据库。
他还可以将数据库前滚到应用程序破坏数据之前的一个时间点。
免费版的 Data Studio Administrator 提供了本文中描述的功能,可以通过下载 Data Studio Administrator 试用版并且禁用 Database Change Management 获得这些功能。
安装和购买 Database Change Management 特性可获得以下好处:它提供对扩展的变更的支持,包括数据保留和对依赖对象的管理,例如约束、视图、触发器和引用完整性。
下面概述了本文描述的备份和恢复步骤:
如果还没有建立连接,则建立与受影响的数据库的连接。
查看数据,看看表中有哪些行。
使用备份任务助手备份系统。
运行示例 delete 语句,模拟删除两个表中所有行的错误的应用程序逻辑。
使用恢复任务助手恢复数据库,并前滚到运行 delete 语句之前的时间点。
查看更新后的行数,验证执行恢复操作之后数据是否完整无缺。先决条件使用以下步骤安装和配置一个环境,以便遵循 Erik 的场景:该场景要求安装 Data Studio Administrator Version 2 Release 1 和 Fix Pack 1。
如果还没有安装 Data Studio Administrator Version 2 Release 1,那么请使用
小节中的链接下载该产品的试用版。
如果还没有将 Fix Pack 1 安装到 Data Studio Administrator
Version 2 Release 1 系统上,请使用
小节中的链接获得 Fix Pack 1
安装文件和说明。
另外还必须安装一个受支持的 DB2® 版本。如果还没有安装 DB2,请使用
小节中的链接下载
DB2 Express-C,这是免费版的 DB2 Express Edition。
遵循以下步骤创建一个名为 GSDB 的示例数据库:
从本文的 下载 小节获得 GSDB_Database.zip 文件,并从中提取 GSDB_Database.sql 文件。
打开一个 DB2 Command Window。
导航到保存 GSDB_Database.sql 文件的位置。
输入以下命令:db2 -td~ -f GSDB_Database.sql
将默认的循环日志记录(circular logging)改为使用归档日志记录。要使用归档日志记录,必须使用 UPDATE DATABASE CONFIGURATION 命令将 LOGARCHMETH1 设置为 OFF 以外的一个值,如下所示:
UPDATE DB CFG FOR GSDB USING logarchmeth1 "DISK:C:\GSDB_ARCHIVE" failarchpath \
"C:\GSDB_failure" logprimary 2 logsecond 0 logfilsiz 1024;注意:在以上显示的命令中,第一行末尾的反斜杠字符只是用于表明同一行的延续。因此不要在命令中输入反斜杠。在 DB2 Command
Window 中实际上只需输入一个连续的字符串作为命令。以上命令指定:
使用归档日志记录。
将归档日志保存到 GSDB_ARCHIVE 目录。
如果归档日志记录失败,那么写到临时目录 GSDB_failure。
有两个主日志,没有辅助日志。
主日志大小为 1024 个 4KB 的页面。在该场景的某一个步骤中,您在更改了日志记录选项后,对数据库执行完全离线备份。
本文接下来的小节描述 Erik 在一天中遇到的主要事件,并详细说明他采取的操作。细节采用逐步说明的形式,以便您可以遵循逐步说明,获得自己的实践经验。
连接到数据库所有 Data Studio 产品都使用一个相同的 Data Source Explorer 连接到数据库。在本场景中,Erik 执行的第一个任务是建立到 GSDB 数据库的连接,如下所示:
在 Data Source Explorer 中,右键单击 Database Connections,并选择 New…,如图 1 所示。
图 1. 从 Data Source Explorer 连接到数据库输入所需的连接参数,并单击 Test Connection 按钮,验证连接,如图 2 所示。
图 2. 验证连接如果连接成功,单击 Next 按钮。
在 Filter 屏幕中做出选择,以包括 GOSALES 和 GOSALESCT 模式,并单击 Finish 按钮,如图 3 所示。
图 3. 按模式过滤查看表中的行数连接到 GSDB 数据库后,Erik 想查看选中的表中的行数。
本场景使用行数作为表的当前状态的指示器。
在执行恢复操作后,可以使用这个数字来验证表是否回到相同的状态。
要查看所选择的表中的行数,执行以下步骤:
在 Data Source Explorer 中,双击 GSDB 数据库的 Tables 文件夹,如图 4 所示。
图 4. 双击 TablesObject List 窗口现在显示每个表的表模式、表名和行数,如图 5 所示。注意,GOSALES.PRODUCT 和 GOSALES.PRODUCT_FORECAST 表分别有
274 行和 2728 行。
图 5. Object List 窗口包含行数
还有一种方式可以查看实际的数据,即右键单击一个表,选择 Data & Return All Rows,如图 6 所示。
图 6. 返回单个表的所有行备份数据库Erik 现在执行以下步骤备份 GSDB 数据库:在 Data Source Explorer 中,右键单击 GSDB 数据库,选择 Backup…(如图 7 所示)启动 Backup 任务助手。
图 7. 从 Data Source Explorer 选择 Backup在 1. Type 选项卡上,选择 Back up the entire
database,如图 8 所示。
图 8. 从 Backup 任务助手中选择备份类型选择 2. Image 选项卡。从下拉菜单中选择 File System 作为媒介类型(图 9)。单击 Browse 按钮并选择 C:\GSDB_BACKUP 作为备份映像的位置(图 9)。图 9. 选择备份媒介类型和位置选择 3. Options 选项卡。选择 Full backup – Back up all data 作为 Backup type(图 10)。选择 Offline - Users cannot access the database during the backup 作为 Availability。这样选择后,quiesce 复选框选项被启用。选择该复选框(图 10)。您需要执行完全离线备份,因为在更改日志记录类型后,为了以后能执行时间点恢复,需要这种类型的备份。
图 10. 选择备份选项
单击 Preview Command 在 Command 窗口中生成并查看命令,如图 11 所示。
图 11. 预览 backup 命令单击 Run 按钮 。Data Studio Administrator 应该返回一条备份成功的消息,如图 12 所示。
图 12. 消息窗口显示成功发现错误!
这天晚一点的时候,Erik 查看应用程序,发现错误的应用程序逻辑删除了 GOSALES.PRODUCT 和 GOSALES.PRODUCT_FORECAST 表中所有的行。他进入 Object List 窗口,看到这两个表的行数都是 0,从而确认了这一点,如图 13 所示。他知道出了问题,因为这两个表在出现错误之前分别有 274 行和 2728 行(见 图 5)。
图 13. 两个表中所有的行都被删除为了跟随 Erik 恢复数据,您首先需要通过输入以下 DB2 命令模拟行的删除:delete from GOSALES.PRODUCT
delete from GOSALES.PRODUCT_FORECAST记下时间,以便能够恢复到执行删除命令之前的时间点。恢复到一个时间点Erik 现在急于使用 Data Studio Administrator 的功能将数据库恢复到适当的状态。为了使数据库回到发生错误的应用程序逻辑之前的初始状态,Erik 通过以下步骤执行数据库恢复,并前滚到一个时间点:
在 Data Source Explorer 中,右键单击 GSDB 数据库并选择 Restore…(如图 14 所示)启动 Restore 任务助手。
图 14. 从 Data Source
Explorer 中选择 Restore
在 1. Type 选项卡上,选择 Restore to an existing database 和
Restore the entire database,如图 15 和 16 所示。
图 15. 选择恢复到已有的数据库图 16. 选择恢复整个数据库选择 2. Available Images 选项卡。选择 Select the backup images from a list(图 17)。从备份映像列表中,选择运行错误的应用程序(即删除表中的行)之前的最新映像,并单击右箭头按钮
将备份映像移到右边的框中(图 17)。
图 17. 选择运行错误的应用程序之前的最新映像选择 4. Roll forward 选项卡。选择 Restore the database and roll forward as follows(图 18)。选择 Roll forward to a point in time – Local(图 18)。为 Roll forward to transaction 日期和时间输入适当的值。
日期和时间应该早于运行错误的应用程序(即删除表中的行)的时间。
图 18. 选择回滚到执行错误的命令之前的时间选择 5. Final State 选项卡。选择 Complete the restore and return the database to the active state,如图 19 所示。
图 19. 选择在前滚完成后使数据库返回到活动状态
单击 Preview Command 在 Command 窗口中生成并查看命令,如图 20 所示。
图 20. 预览 Restore 命令
单击 Run 按钮 ,观察 Messages 和 SQL Results 窗口中出现的结果,如图 21 所示。
图 21. 恢复的进度和状态验证恢复Erik 松了一口气!他已经将数据库恢复到发生错误的应用程序逻辑之前的状态。
Erik 使用 Data Studio Administrator 检查表中的行数,从而确认这一点:
在 Data Source Explorer 中,双击 Tables 文件夹。Object List 窗口现在显示 GSDB 数据库表。右键单击 GOSALES.PRODUCT 表,选择 Update statistics,如图 22 所示。
图 22. 选择 Update Statistics 刷新行数在 SQL Results 窗口中单击鼠标。这样会刷新 Object List 窗口,显示当前行数。
通过同样的过程刷新 GOSALES.PRODUCT_FORECAST 表的当前行数(右键单击该表,选择 Update statistics,在 SQL Results 窗口中单击鼠标)。如图 23 所示,GOSALES.PRODUCT 和 GOSALES.PRODUCT_FORECAST 表现在恢复到发生错误的应用程序逻辑之前的行数(分别为 274 行和 2728 行)。
图 23. 行数已经恢复结束语Data Studio Administrator 为数据库管理员提供了一个有用的工具,以便他们执行备份和恢复策略中的定期备份。当发生数据毁坏事故,例如软件故障、硬件故障、错误的应用程序逻辑和用户错误后,可以使用这些备份将数据库恢复到适当的状态。Erik 已经验证,数据库被成功恢复。避免了危机后,他决定犒劳一下自己,散步到街边的咖啡店,享受一杯美味的咖啡。
参考资料 通过
,查看与 Data Studio 应用开发和数据管理相关的更多资源。
通过这篇文章理解 Data Studio Administrator 如何与 Data Studio
产品组合中的其他产品一起使用:“”。
通过阅读这篇文章理解 Data Studio 打包方式,包括 Data Studio Administrator 下载中提供的免费的管理功能:“”。
发现 Data Studio Administrator 中所有的新功能:“”。
下载免费版的
下载并安装 Data Studio Administrator 2.1 的 。要使用本文描述的功能,需要用到这个补丁包。
下载 ,这是为社区提供的 DB2 Express Edition 的免费版本,它具有与 DB2 Express Edtion 相同的核心数据特性,并为构建和部署应用程序提供了坚实的基础。
developerWorks: 登录
标有星(*)号的字段是必填字段。
保持登录。
单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件。
在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。
所有提交的信息确保安全。
选择您的昵称
当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。昵称长度在 3 至 31 个字符之间。
您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。
标有星(*)号的字段是必填字段。
(昵称长度在 3 至 31 个字符之间)
单击提交则表示您同意developerWorks 的条款和条件。 .
所有提交的信息确保安全。
IBM PureSystems(TM) 系列解决方案是一个专家集成系统
通过学习路线图系统掌握软件开发技能
软件下载、试用版及云计算
static.content.url=/developerworks/js/artrating/SITE_ID=10Zone=Information ManagementArticleID=392738ArticleTitle=用 Data Studio Administrator 恢复数据库publish-date=}

我要回帖

更多关于 oracle数据库恢复 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信