DB2 数据库支持两种不同的日志模式:循环(Circular)和归档(Archival)。当新数据库创建时,系统默认的日志模式为循环。如果业务需求要求更高级的功能,您可以将日志模式从循环修改为归档。
DB2 将一直尝试将日志条目写入主要日志文件集,也就是数据库活动时间自动分配的日志文件。如果某个事务将所有主要日志文件消耗怠尽(所有主要日志文件都被标记为 unavailable),则数据库管理员将分配一个次要日志文件。当这个文件变满时,数据库管理员将再次检查主要日志文件的状态是否为 unavailable。如果是,则再分配一个次要日志文件并继续在其中写入条目。该过程将不断重复,直到所有次要日志文件都分配并写满。如果没有主要日志文件可供写入 Redo 条目,并且已经分配最大数量的次要日志文件,则应用程序将收到以下错误消息:
SQL0964C The transaction log for the database is full.
希望您曾经遇到过这种错误。但是,如果遇到此错误,则应该根据需要增加主要和次要日志文件(或者它们的大小)的数量。在理想情况下,主要日志文件的数量或大小应该足够保存最大的事务。分配次要日志文件相当消耗资源,因为它将在运行时执行。因此,我们应该将需要在高峰工作负荷期间分配的次要日志文件数量降到最低。要更新主要或次要日志文件的数量,可以发起以下命令:
UPDATE DB CFG FOR db_name USING LOGPRIMARY value
UPDATE DB CFG FOR db_name USING LOGSECOND value
注意:如果出现此问题,则应该分析造成整个日志文件空间变满的原因是什么。它可能是由失控查询或用户错误造成的,因此增加日志文件的数量或大小只能在表面上解决问题。比如说,假设某个用户发起了一个 DELETE FROM tab1 语句,且 TAB1 是一个相当大的表。虽然这一语句看上去没什么问题,每行生成一条删除日记记录,但是如果未经过配置处理它可以轻易地将日志空间填满。
循环日志
当循环日志生效时,事务数据将通过循环的方式写入主要日志文件。当存储于某个日志文件中的所有记录都不再需要用于恢复时,该日志文件将被重用,并且可以在以后再次成为活动日志文件。这意味着在循环日志模式中,日志文件的内容最终将被新日志条目重写。由于日志文件的内容被重写覆盖了,因此我们只能将数据库恢复到最后一次完整的数据库备份。不能使用循环日志执行时间点(point-in-time)恢复。
归档日志
在归档日志模式中,redo log 条目将写入主要日志文件。但是,与循环日志不同,这些日志文件永远都不可重用。当存储于某个日志文件中的所有记录都不再需要用于恢复时,该日志文件将被标记为非活动 而不是可重用。这意味着它的内容永远都不会被覆盖。当第一个主要日志文件变满时,系统将分配一个新的日志文件,这样主要日志文件的配置数量(LOGPRIMARY 数据库参数)将一直可用。
与单个事务相关的所有条目必须在活动日志空间中保持一致。如果长时间运行的事务所需要的日志空间大于主要日志文件可以提供的空间,则可能会分配并使用次要日志文件。在归档日志模式中,通过结合使用数据库备份映像和日志文件,我们可以将数据库恢复到具体的时间点。有关此流程的详细描述请参见下文。
何修改日志模式
创建新的 DB2 数据库时,默认的日志模式为循环日志 。如果希望将日志模式从循环修改为归档,可以执行以下步骤:
在磁盘上创建一个文件夹(比如说 e:\db_name\archive),磁盘上必须有足够的空间存储归档日志文件。保证归档文件目标文件夹与活动日志文件目标文件夹分开。
终止与数据库的连接:
TERMINATE
更新归档日志文件目标文件夹(为归档日志文件指定路径可以将归档日志模式打开)。
UPDATE DB CFG FOR db_name USING LOGARCHMETH1 "Disk:e:\db_name\archive"
重新连接到数据库:
CONNECT TO db_name
连接失败并显示以下错误消息:
SQL1116N A connection to or activation of database db_name cannot be made because of backup pending: SQLSTATE=57019
出现错误消息的原因是,日志模式已经从循环更改为归档,并且需要执行完全数据库备份。数据库处于循环日志模式时执行的备份并不充分,因此当切换模式后需要执行新备份。
使用以下命令执行完全数据库备份:
BACKUP DATABASE db_name TO d:\db_name\backup
尝试再次连接到数据库。这次应该能够成功。
CONNECT TO db_name
事务是逻辑工作单元。每一个事务在事务日记文件中都存储有相应的日志记录。每个事务都有一个相应的 Redo Log 条目。Redo Log 条目将写入当前的活动日志文件。当活动日志文件变满时,它将被标记为 unavailable。此时,DB2 将接着此活动日志文件另外创建一个日志文件,并继续在其中写入日志条目。当前活动日志文件变满时,DB2 将重复这一循环过程。当事务完成后(发起 COMMIT 或 ROLLBACK 语句),相应的日志条目将被释放,因为不再需要将它们用于恢复数据库。
分享到:
相关推荐
办公软件安装包(如果要安装 visio 软件的话注意先后次序)
双拼是一种将汉语拼音转换为两个字母的输入方式,旨在通过减少按键次数来提高打字效率与准确性。相较于传统的全拼输入法,双拼在减少键盘敲击的同时保持了较高的输入精度,因此被广泛认为是一种更加高效且专业的打字...
Kernel32.dll是Windows操作系统的核心动态链接库之一,它包含了许多与进程、线程、内存管理和文件操作相关的函数。AddDllDirectory函数是Windows Vista之后引入的,用于添加额外的目录到动态链接搜索路径,这样程序...
这是VC11运行库(微软官方版)32位,一些软件安装需要
sdfsdfasdfdsfsadfsadfsdfsdfsdddd
文本转语音技术(Text-to-Speech,简称TTS)是一种计算机技术,允许程序将文本转换成可听见的语音输出。在Windows 7操作系统中,微软提供了内置的TTS引擎,它能够为用户阅读屏幕上的文字,这对于视力障碍者或者在...
标题 "12345ruan.zip" 暗示我们关注的是一个包含与计算几何相关的数据或程序的压缩文件。描述中提到“支持点绕特定坐标轴的多次旋转和平移后点的坐标”,这表明文件可能包含了实现二维或三维空间中点的几何变换的...
由于具体的文件内容无法直接查看,我们可推测"weiruan.netgaoji"可能是一个压缩文件,其中包含了各种高级.NET开发的资源,如PDF文档、代码示例、视频教程等。这个名字可能是指“微软.NET高级”,暗示了文件内容的...
标题“save_job.rar”暗示了这是一个压缩文件,很可能包含了与数据保存或工作流程相关的文件。在IT领域,"save"通常指的是数据存储或备份的过程,而"job"可能指的是一个项目、任务或者工作流程的一部分。"Genesis...
2010年6月2日 - 13- 1 第 13 章:FBs-PLC 之 NC 定位控制 早期使用一般馬達來作定位控制,由於速度不快、或者精度要求不高,所以足以應付所需;當機械運轉為了求取效率而
IAI安装软件,好像是日文版。安装时可以选择语言! 内有日文,英文和中文!
硬件修改,很好的资源哦,不要错过.系统硬件修改.
ruan_阮工的单片机编程经验集:如何做稳定单片机程序与上位机程序防卡顿,js等经验,
这是个关于制作铃声的软件,非常好玩,信不信有你!
【标题】"ruan-almeida-c.github.io:RelógioAcessível" 提供的信息表明,这可能是一个GitHub项目,由用户ruan-almeida-c创建,专注于开发一个名为"RelógioAcessível"(无障碍时钟)的软件或应用。无障碍技术通常...
#### 一、智能系统与数据挖掘 **智能数据挖掘**是一项结合了人工智能技术和统计方法的技术,旨在从大量数据中发现有价值的信息和模式。本书《Intelligent Data Mining》(智能数据挖掘)由D. Ruan等编著,Springer...
ruan 我的软件3课设 ##二手物品信息展示平台(小水小水,轮子完全自己造,造的有点粗糙) 此设计在windows10系统下编写完成,使用Java EE版本的Eclipse开发, 网页代码使用html结合JavaScript实现。后端使用Struts2...
你好呀, 我是阮维特。 :man: :waving_hand: 我住在巴西 :Brazil: ,东南地区,圣保罗。 我一直在学习编程和技术,主要是自己学习:课程,训练营和书籍。 我有技术水平的毕业证书。 :memo: 我目前正在学习 :...
标题中的“ruan zhu_dbn时间序列_DBN实例_test_example_DBN.m_序列数据_DBN预测.zip”表明这是一个关于深度玻尔兹曼机(Deep Belief Network, DBN)在时间序列预测上的实例代码。DBN是一种无监督学习的神经网络模型...