DB2_数据库日志管理.doc_第1页
DB2_数据库日志管理.doc_第2页
DB2_数据库日志管理.doc_第3页
DB2_数据库日志管理.doc_第4页
DB2_数据库日志管理.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、load 方法装入数据:export to tempfile of del select * from tablename where not 清理条件;load from tempfile of del modified by delprioritychar replace into tablename nonrecoverable;说明: 在不相关的数据表export数据时,可以采取并发的形式,以提高效率;tablename指待清理table的名称;modified by delprioritychar防止数据库记录中存在换行符,导致数据无法装入的情况;replace into对现数据库中的内容进行替换,即将现行的数据记录清理,替换为数据文件内容;nonrecoverable无日志方式装入;2、查找当前的应用:db2 list application grep btpdbs;3、删除当前正在使用的application:db2 force application (id1,id2,id3)id1,id2,id3 是list显示的应用号;4、查看当前应用号的执行状态:db2 get snapshot for application agentid 299 grep row5、查看数据库参数:db2 get db cfg for /当前数据库可以省略6、修改数据库的log数据:db2 update db cfg using 7、db2stop force的用法:在进行bind的时候出现如下错误:sql0082can error has occurred which has terminated processing.sql0092nno package was created because of previous errors.sql0091nbinding was ended with 3 errors and 0 warnings.主要是表文件被加锁,不能继续使用;在进行stop的时候报错:db2stop8/03/2005 21:46:530 0 sql1025nthe database manager was not stopped because databases are still active.sql1025nthe database manager was not stopped because databases are still active.需要使用如下命令可以解决这个问题: db2stop force08/03/2005 21:47:49 0 0 sql1064ndb2stop processing was successful.sql1064ndb2stop processing was successful.然后启动数据库db2start,连接数据库db2s后,重新进行bind即可。8、缓冲池参数修改:db2 alter bufferpool ibmdefaultbp size 10240查看本表的数据内容如下:db2 select * from syscat.bufferpools;9、db2 日志处理:db2日志是以文件的形式存放在文件系统中,分为两种模式:循环日志和归档日志。当创建新数据库时,日志的缺省模式是循环日志。在这种模式下,只能实现数据库的脱机备份和恢复。如果要实现联机备份和恢复,必须设为归档日志模式。目前在综合业务系统中,设置的均是归档日志模式;其它系统(如事后监督、经营决策、中间业务等)一般都设置为循环日志模式。至于采用何种模式,可以通过修改数据库配置参数(logretain)来实现: 归档日志模式:db2 update db cfg for using logretain on 注:改为on后,查看数据库配置参数logretain的值时,实际显示的是recovery。改变此参数后,再次连接数据库会显示数据库处于备份暂挂(backup pending)状态。这时,需要做一次对数据库的脱机备份(db2 backup db ),才能使数据库状态变为正常。循环日志模式:db2 update db cfg for using logretain off10、db2 日志处理必须按照以下正确的步骤进行操作:要求必须使用db2命令prune进行清理,不建议使用rm命令删除。删除前应保证应用已停止(即联机已下来)。查看当前使用的日志文件目录及第一活动日志文件用 “db2 get db cfg for ”命令查看日志文件目录(path to log files)参数,确定数据库当前使用的日志文件目录。 例如:path to log files = /db2log/,说明db2日志存放目录是/db2log 用 “db2 get db cfg for ”命令查看第一活动日志文件(first active log file)参数,该参数对应的日志文件之前的日志文件均为归档日志文件,如果确认没有用,可以删除。 例如:first active log file = s0015913.log,说明当前第一活动日志文件是s0015913.log。 备份好要删除的归档日志删除归档日志 以应用用户(如btp)登录,执行: db2 connect to db2 prune logfile prior to s?.log注:s?.log为查看到的第一活动日志文件。此命令可以将当前第一活动日志文件之前的归档日志文件全部删除。11、如何清理db2diag.log文件db2diag.log,是用来记录db2数据库运行中的信息的文件。可以通过此文件,查看记录的有关db2数据库详细的错误信息。此文件也是不断增大的,需要定期进行清理。可以通过查看实例的配置参数diagpath,来确定db2diag.log文件是放在哪个目录下:db2 get dbm cfg 如果diagnostic data directory path(diagpath) = /home/db2inst1/sqllib/db2dump,则此文件是放在/home/db2inst1/sqllib/db2dump目录下。当文件系统/home的使用率达到80%90%左右时,应及时删除db2diag.log文件。 请按以下正确步骤操作:确认应用(如btp)、db2已经停止。 将原db2diag.log文件备份到其它文件系统下。删除db2diag.log文件。删除后,db2会自动创建一个新的文件。12、load 操作在进行load的时候db2 load from acmmst.txt of del modified by coldel replace into acmmst nonrecoverable ”由于数据不规范出现错误,强行中断以后,进行操作的时候出现如下错误:sql0668noperation not allowed for reason code 3 on table btp.acmmst.sqlstate=57016此时,进行反方向操作即可:db2 load from /dev/null of del terminate into acmmst nonrecoverable。如果没有使用参数nonrecoverable,则会出现数据库状态不正确的情况,使用:db2 list tablesapces show detail 查看状态,如果不是正常状态,则脱机状态进行备份即可。两个表文件之间update的方法:db2 update cdmcrd set offset = (select cdmlsl.offset from cdmlsl where cdmlsl.crdno=cdmcrd.crdno) where cdmcrd.crdno in (select cdmlsl.crdno from cdmlsl) 13、多字段条件查询和修改表a中的字段有actno, cnlno,bal,pwd;表b中的字段为actno,cnlno,txnamt;目的是将a表中的bal修改为b表中的txnamt,命令:db2 update a set bal=(select txnamt from b where actno=a.actno and cnlno=lno) where lno in (select actnocnlno from b );14、多条件匹配查询查询某个表中条件是b?aaa的记录:db2 select * from a where actno like b_aaa%.查询数据中存在某些字符的记录:db2 select * from a where actno like %-aaa%.15、数据库恢复的处理进行数据库恢复的时候使用以下的命令: restore db db1 to /tstdb2/catalog into db newlogpath /tstdb2/db2log buffer 2048replace existing redirect parallelism 16;set tablespace containers for 1 using (path /tstdb2/db2tmp);set tablespace containers for 2 using(device /dev/rtstcontlv00 2621440, device /dev/rtstcontlv01 2621440,device /dev/rtstcontlv02 2621440, device /dev/rtstcontlv03 2621440 ) ;restore db db1 continue; 恢复完成以后执行命令db2s时报如下的错误:p570:db2ssql1117n a connection to or activation of database db cannot be madebecause of roll-forward pending. sqlstate=57019db21034e the command was processed as an sql statement because it was not avalid command line processor command. during sql processing it returned:sql1024n a database connection does not exist. sqlstate=08003 解决办法如下:p570:db2 rollforward db db to end of logs and completerollforward statusinput database alias = dbnumber of nodes have returned status = 1node number = 0rollforward status = not pendingnext log file to be read =log files processed = -last committed transaction = 2005-11-20-00000db20000i the rollforward command completed successfully. db2日志管理(完成)-归档日志db2 update db cfg for dbtest using logretain recovery userexit ondb2 update db cfg for dbtest using logarchmeth1 DISK:D:/DB2/Arch_logdb2 update db cfg for dbtest using logarchmeth2 DISK:D:/DB2/Arch_log2db2 update db cfg for dbtest using LOGPRIMARY 100 LOGSECOND 50 LOGFILSZ 65535 ;(此时单个日志文件的大小为:65535 *4K ,可用日志的个数为: 100+50 )-循环日志/*Logretaim=Recovery -(Logretaim/userexit两个值任选一个)userexit=Yes*/db2 update db cfg for edw using logarchmeth1 off logarchmeth2 offdb2 update db cfg for edw using logretain NO userexit NOdb2 update db cfg for edw using LOGPRIMARY 100 LOGSECOND 50 LOGFILSIZ 65535 ;(此时单个日志文件的大小为:65535 *4K ,可用日志的个数为: 100+50 )-重启数据库才生效 (或者断开所有链接)set instance=db2inst4db2stop forcedb2startdb2 activate db edw-更改联机日志的路径(更改后logpath的值发生改变)db2 update db cfg for edw using newlogpath /dw/edwdata/db2log一.日志概述任何数据库管理系统都必须拥有确保数据一致性和可恢复性的机制。关系数据库系统为确保那些非常重要的特性所使用的众多机制之一是事务性日志记录。在本文中,我们将定义和讨论事务性日志记录的类型,及如何分配日志文件、如何存储它们。数据库存储了供应用程序访问和处理的数据。那些应用程序会插入、读取、更新或删除数据。每一个这样的活动都是在一个事务中执行的,该事务被 定义成“应用程序过程中一个可恢复的操作序列”。除非已经提交了事务(也称作“工作单元”),否则它不会影响数据库。 将数据库操作组合到事务中只是确保数据一致性解决方案的一半。另一半是称作预写式日志记录(write-ahead logging)的数据库管理器实现。不管事务是否被提交,只要它们发生,就会记录这些事务。在将任何数据从缓冲池写到数据库结构之前,事务会从日志缓冲区(log buffer)写到 日志文件(事务性日志记录)。用于记录事务的文件叫做 事务日志 。二.日志分类DB2 UDB 有两种可用的日志记录类型 循环(circular)日志记录和 归档(archive)日志记录。其中归档日志又分为联机归档日志和脱机归档日志。 2.1循环日志记录循环日志记录是数据库使用的缺省日志记录策略。在此策略中,一旦日志目录中最后一个主日志文件被写满了,就会将新的事务写到第一个日志文件中,从而覆盖现有的日志数据。这些新事务会继续依次覆盖每个旧日志文件。这种日志记录方法确保了所有已提交事务的数据一致性,这样就可以执行应急恢复。循环日志记录通常在数据仓库环境中使用,在该环境中,恢复数据库需要的只是恢复数据库映象的问题。该策略不应该用在线事务处理(on-line transaction processing,OLTP)环境,因为它不可能进行前滚恢复。2.2归档日志记录与循环日志记录相比,当最后一个日志文件写满时,归档日志记录过程会创建一个新的日志文件,这样将来的事务就不会覆盖现有的日志文件。当初始化数据库时,系统会在活动日志目录中分配一定数量、指定大小的主日志文件。这个数量由数据库配置参数控制。当主日志文件都写满时,就会“根据需要”创建辅助日志文件,直到创建了最大数量的辅助日志文件为止。一旦达到了这个数量,如果需要附加的日志空间,就会发出一个错误,指出没有更多的可用日志文件,所有数据库活动停止。 利用归档日志记录,就可能采取联机(在线)数据库备份,在执行这一操作期间,会继续记录数据库活动。如果数据库崩溃或发生故障,就会使用全备份映象,然后执行使用归档日志的前滚操作,通过前滚到日志结尾,将数据库恢复到时间点状态或最近的一致状态,从而恢复数据库。有两种归档日志:联机归档日志: 活动日志中所有改动对正常处理已不需要,即该日志中所记录的事务都已提交并写入数据库文件时,该活动日志转换为联机归档日志。称之为联机,是由于它们与活动日志存放在同一个目录下。 脱机归档日志: 将联机归档日志从活动日志目录下Copy到另外的地方存档,就称为脱机归档日志。这些日志可能在数据库前滚恢复的时候仍然需要。三日志相关参数我们只有弄清楚了日志相关的参数之后,才能正确修改配置参数,得到我们想要的日志管理模式,现对各参数介绍如下:3.1 LOGRETAIN缺省情况下,logretaim的值为OFF,此时采用循环日志记录方式,将期修改为ON/ RECOVERY时,采用归档日志记录方式,从而允许数据库管理器使用前滚恢复方法,可以进行在线备份。该参数使归档日志保留在数据库日志路径目录中。当启用了 logretain配置参数时,就不需要启用 userexit 。这两个参数中的任何一个都足以允许前滚恢复方法。 以下是 logretain的有效值: No(缺省值) 表示不保留日志。 Recovery 表示保留日志,且可以用于前滚恢复。此外,如果您使用数据复制,CAPTURE 程序可以将日志中所记录的更新写到更改表。 Capture 表示只保留日志,这样 Capture 程序可以将更新写到更改表。如果没有裁剪这些日志,那么它们可以用于正向恢复。注:通常仅当为了数据复制而设置数据库时,才使用 Capture 设置。 如果 logretain设置成“Recovery”或者 userexit设置成“Yes”,将保留活动日志文件,而且这些文件将变成联机归档日志文件,以便在前滚恢复中使用。这称为日志保留记录。 在将 logretain设置成“Recovery”和或将 userexit设置成“Yes”之后,必须对数据库进行完全备份。这一状态由 backup_pending标志参数表示。 如果 再logretain设置成“No”并且 userexit也设置成“No”,就不能对数据库执行前滚恢复,而且可恢复性仅限于最新的数据库备份。在这种情况下,数据库管理器会删除 logpath目录中的所有日志文件(包括联机归档日志文件),分配新的活动日志文件,并且回复到循环日志记录。 当 logretain设置成“Capture”时,在 Capture 程序完成时,它会调用 PRUNE LOGFILE 命令来删除日志文件。虽然如果不裁剪日志,这些日志就可以用于正向恢复,但如果您想要确保可以对数据库执行前滚恢复,就不应该将 logretain设置成“Capture”。 当 logretain配置参数设置成“RECOVERY”时,日志文件将保留在活动日志路径中。活动日志路径由数据库配置文件中的“日志文件路径(Path to Log Files)( logpath)”或“更改的日志文件路径(Changed Path to Log Files)( newlogpath)”值确定。3.2 USEREXIT该参数使数据库管理器调用用户出口程序来归档和检索日志。启用了用户出口之后,就允许前滚恢复。当启用了 userexit配置参数时,就不需要启用 logretain。这两个参数中的任何一个都足以允许前滚恢复方法。 使用该参数表示覆盖了循环日志记录(缺省值)。 userexit包含有 logretain的功能,反之却不成立。 当使用 userexit 配置参数或 logretain配置参数以允许前滚恢复时,活动日志路径非常重要。当启用了 userexit配置参数时,会调用用户出口来归档日志文件,并将它们移到活动日志路径以外的位置。 以下是该参数的有效值:No(缺省值) Yes 如果启用了该参数,无论 logretain参数如何设置,都会执行日志保留记录。该参数还表示用户出口程序应该用于归档和检索日志文件。当数据库管理器关闭日志文件时,会归档日志文件。当 ROLLFORWARD 实用程序需要使用日志文件来恢复数据库时,就会检索它们。 在启用了参数 logretain和或 userexit时,必须对数据库进行完全备份。这一状态由 backup_pending标志参数表示。 如果取消选择这两个参数,就不能对数据库进行前滚恢复,因为将不再保留日志。在这种情况下,数据库管理器会删除 logpath目录中的所有日志文件(包括联机归档日志文件),分配新的活动日志文件,并且回复到循环日志记录。3.3 LOGPRIMARY 该参数指定要创建的主日志的数量。无论主日志是空的还是满的,所需的磁盘空间量都是相同的。因此,如果您配置的日志数量比需要的多,那么您就不必要地多使用了磁盘空间。如果您配置的日志太少了,就会遇到“日志满”情况。当选择要配置的日志数量时,必须考虑您生成的每个日志的大小,以及您的应用程序是否能处理“日志满”情况。对于 V8.1,这个限制是 256 GB。即,日志文件的数量(LOGPRIMARY LOGSECOND)乘以以字节为单位的每个日志文件的大小(LOGFILSIZ * 4096)必须小于256 GB。3.4 LOGSECOND该参数指定为恢复日志文件(仅当需要时)而创建和使用的辅助日志文件的数量。请注意,日志文件的总数由以下等式限制:logprimary logsecond= LOGFILSIZ * LOGPRIMARY * 4096 字节 = LOGFILSIZ * (LOGPRIMARY + LOGSECOND) * 4096 字节 = 32 GB(对于 V7.2)或 = 256 GB(对于 V8.1) 3.9 日志存储位置 缺省情况下,日志文件存储在以下目录中:在 Windows 上:/NODE0000/SQL000/SQLOGDIR 在 UNIX 上:/NODE0000/SQL000/SQLOGDIR 在上述目录路径中,对于所创建的每个数据库,会有一个 SQLxxxxx(“xxxxx”是以 0 开头的数字)目录。如果在 DB2 实例中有多个物理数据库,就很难知道哪个 SQLxxxxx 目录属于哪个数据库。要解决这个问题,只要输入以下 DB2 命令:db2 list db directory on c/d就可以看出数据库对应的编号,eg:db2 list db directory on d可以看到dbtest数据库的一些信息如下:数据库别名 = DBTEST数据库名称 = DBTEST数据库目录 = SQL00002数据库发行版级别 = a.00注释 =目录条目类型 = 本地目录数据库分区号 = 0数据库分区号 = 0或者用命令db2 get db cfg for dbtest日志文件路径 = D:/DB2/NODE0000/SQL00002/SQLOGDIR/四.归档日志的设置在DB2版本8.2以前,采用用户出口程序的方式进行日志归档操作,从DB2版本8.2开始,DB2集成了日志管理功能,目前支持采用如下三种方式归档日志: DISK:将归档日志存放到磁盘上 TSM:将归档日志存放到TSM服务器 BAR APIs:第三方厂商提供的产品 DB2在版本8.2中增加了如下配置参数: 第一个日志归档方法 (LOGARCHMETH1) = LOGRETAIN logarchmeth1 的选项 (LOGARCHOPT1) = 第二个日志归档方法 (LOGARCHMETH2) = OFF logarchmeth2 的选项 (LOGARCHOPT2) = 故障转移日志归档路径 (FAILARCHPATH) = 错误时重试日志归档次数 (NUMARCHRETRY) = 5 日志归档重试延迟(秒) (ARCHRETRYDELAY) = 20 供应商选项 (VENDOROPT) = 下面是关于这些参数的说明:日志归档方法 1(logarchmeth1)和日志归档方法 2(logarchmeth2)这些参数使数据库管理器将日志文件归档至活动日志路径之外的位置。如果指定这两个参数,每个日志文件均归档两次。这意味着您将拥有两个位于不同位置的归档日志文件副本。这些参数的有效值包括介质类型,且在某些情况下,包括目标字段。 使用冒号(:)来分隔值。有效的值为:OFF 指定不使用日志归档方法。如果 logarchmeth1 和logarchmeth2 都设置为 OFF,则认为数据库正在使用循环日志记录,且不可前滚恢复。这是缺省值。LOGRETAIN 此值仅可用于 logarchmeth1,且等价于将 logretain配置参数设置为 RECOVERY。如果指定此值,将自动更新logretain 配置参数。USEREXIT 此值仅对 logarchmeth1 有效,且等价于将userexit 配置参数设置为 ON。如果指定此值,将自动更新userexit 配置参数。DISK 此值后必须紧跟冒号(:),然后是全限定现有路径名,日志文件将在其中归档。例如,如果将 logarchmeth1 设置为 DISK: D:/DB2/Arch_log,则将归档日志文件放入名为 D:/DB2/Arch_log 的目录。注意: 如果正在归档至磁带,可以使用 db2tapemgr 实用程序来存储和检索日志文件。TSM(Tivoli storage management) 如果指定不带任何附加配置参数,此值指示应该使用缺省管理类,将日志文件归档在本地 TSM 服务器上。如果此值后紧跟冒号(:)和 TSM 管理类,则使用指定的管理类来归档日志文件。VENDOR 指定将使用供应商库来归档日志文件。此值后必须紧跟冒号(:)和库的名称。库中提供的 API 必须使用备份并复原供应商产品的 API。 注意:如果将 logarchmeth1 或 logarchmeth2 设置为 OFF 以外的值,则必须配置数据库以进行前滚恢复。 如果更新 userexit或 logretain 配置参数,将自动更新 logarchmeth1,反之亦然。然而,如果您正在使用 userexit 或 logretain,必须将 logarchmeth2 设置为 OFF。日志归档选项 1(logarchopt1)、日志归档选项 2(logarchopt2):指定传递至 TSM 服务器或供应商 API 的字符串。对于 TSM,此字段用于允许数据库检索在不同 TSM 节点或通过不同 TSM用户生成的日志。字符串必须以如下格式提供: -fromnode=nodename -fromowner=ownername其中 nodename 是最初归档日志文件的 TSM 节点的名称,ownername 是最初归档日志文件的 TSM 用户的名称。每个日志归档选项字段对应于一个日志归档方法:logarchopt1与 logarchmeth1 配合使用,logarchopt2 与 logarchmeth2 配合使用。故障转移归档路径(failarchpath)如果指定的日志归档方法失败,则为归档日志文件指定备用目录。在失败的日志归档方法再次可用之前,此目录是日志文件的临时存储区,此时日志文件将从此目录中移至日志归档方法。通过将日志文件移动至该临时位置,可以避免日志目录发生已满情况。此参数必须是一个全限定现有目录。出错时的归档重试次数(numarchretry)指定在日志文件归档到 failarchpath 配置参数指定的路径之前,使用指定的归档方法归档日志文件的尝试次数。如果设置了 failarchpath 配置参数,则只能使用该参数。缺省值为 5。归档重试延迟(archretrydelay) 指定在上一次尝试失败之后,归档日志文件尝试之间等待的时间量(以秒计)。缺省值为 20。 供应商选项(VENDOROPT) 指定使用第三方厂商进行备份、恢复、归档日志时需要的额外参数配置。参考第三方厂商存储软件的说明配置。 下面我们以一个简单的例子配置来说明如何将日志归档到磁盘。 1、修改数据库dbtest的配置参数(请在更新之前确保使用的目录已经建立,而且DB2实例用户有合适的权限):db2 update db cfg for dbtest using logarchmeth1 DISK:D:/DB2/Arch_log注意:如果先前你没有设置为归档日志模式,需要先修改默认参数,设置完参数后需要先做一个数据库的脱机备份。再修改logarchmeth1的路径,脚本如下:db2 update db cfg for dbtest using logretain on userexit ondb2 backup db dbtest TO E:/DB2/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论