A DB2 Performance Tuning Roadmap --LOG INTRODUCTION
A DB2 Performance Tuning Roadmap --LOG INTRODUCTION
本文的内容是在整理报表时,对DB2 STAT LOG AVITIVITY部分的一个补充,主要介绍了DB2 LOG作用,overhead,涉及的部件以及部件之间的工作机制如何利用DB2 log,现有的IBM 提供的 DB2 Log utilities。最后对DB2 log的逻辑给出一个感性的认识。- 1 LOG OVERVIEW
- DB2 LOG FUNDAMENTALS
- LOG AIM:
- WHY NEED LOGGING
- IN PERFECT WORLD
- OVERVIEW OF LOG WORK MECHANISM
- DB2 LOG FUNDAMENTALS
- 2 UNDERSTANDING OF LOG
- LOG IMPLEMENTATION
- 1 LOG RBA
- 2 WHEN DATA SHARING INVOLED-LRSN
- 3 LOG PAGE DATA SETS
- FACTORS OF ACTIVE LOG DATA SETS:
- BSDS – Boot Strap Data Set
- SYSLGRNX-DLD
- FACTORS OF ARCHIVE LOG DATASETS
- LOG STRUCTURE
- WHAT IS BEING LOGGED?
- INFORMATION OF UR
- PAGE SET INFORMATION
- RECOVERY INFOMATION FOR
- SYSTEM CHECKPOINTS
- UNDO/REDO LOG EXMPLAE
- COMPENSATION OF LOG EXMPLE
- RECOVERY INFORMATION EXAMPLE
- SYSTEM CHECKPOINTS DETAIL
- WHEN IS LOGGING
- WHAT IS BEING LOGGED?
- LOG USAGE
- Start DB2
- Recovery of objects
- REPLICATION
- SOX Compliance
- HEALTH CHECKS
- LOG UTILITES,WORKING WITH THE LOG
- DSN1LOGP
- DSNJU004、DSNJU003
- DSNJU004
- DSNJU003 (a.k.a Change Log Inventory)
- DSNJLOGF
- RECOVER BSDS
- #RECOVER BSDS
- LOG IMPLEMENTATION
- LOG RELATED DATASET
- LOG PAGE FORMAT
1 LOG OVERVIEW
DB2 LOG FUNDAMENTALS
LOG AIM:The DB2 log has two main functions: to reapply or back out units of recovery, and to rebuild DB2 back to a consistent state in the event of a failure
WHY NEED LOGGING- overhead
- it costs in ters of performance,dasd,dministration,cleanup
- it's assurance-just in case of an accidentIN PERFECT WORLD
- no need to rollback
- no need to recover
- no program errors
- no hardware errors
- no power failtures
- no hurricances,terror attacks,fraud....
Let’s get the MOST out of the LOG since it’s here
OVERVIEW OF LOG WORK MECHANISM
USAGE OF EACH COMPONENTS
- Active logs
Where DB2 puts the current log information - Log Buffers
Where log information is held BEFORE externalisation to DASD - Bootstrap Datasets
These hold information about the current active and archive log datasets - Archive logs
These are copies of ‘old’ active log datasets - SYSLGRNX
DB2 keeps track of WHEN objects are (possibly) being updated
2 UNDERSTANDING OF LOG
LOG IMPLEMENTATION
1 LOG RBABYTE ADDRESSABLE(RBA=RELATIVE BYTE ADDRESS)
RBA START=0X00000000000
RBA END=0XFFFFFFFFFFF
RBA UNIQUELY DEFINE A LOG RECORD
LRSN=LOG SEQUENCE RANGE NUMBER,WHICH IS A MODIFIED TIMESTAMP BASE ON SYSPLEX STORCE CLOCK
LOG OUTPUTBUFFER
ACTIVE LOG
ARCHIVE LOG
WHEN DB2 GO TO THE LAST ACTIVE DATA SETS ,WRAP ROUND TO FIRST ACTIVE LOG DATA SETS
- ACTIVE LOG DATA SETS NUMBER
- ACTIVE LOG DATA SETS SIZE
- SINGLE OR DUAL ACTIVE LOG
- PERFORMANCE CONSIDERATION:
- FAST DASD
- CONSIDER STRIPPING
- DB2 ZPARM OUTBUFFER+ LOGAPSTG
? Name: catalog.BSDS01 and catalog.BSDS02
? Must be two identical datasets
? Contains highest RBA logged
? Contains active log description (begin – end RBA and status)
? Contains archive log description
? Dataset name
? Volume name
? RBA range
? Contains other necessary system information
? System checkpoint history, BP-description, CCSID info etc
? Table in Directory so no user access available
? Contains the RBA when any tablespace or
partition is opened or closed for update
? Note this information is also in DB2 log
? SYSLGRNGX is used by DB2 to speed up
recovery by limiting the amount of log data which needs to be scanned
? MODIFY utility removes this information along with SYSCOPY rows
SYSLGRNGX is key to speeding up log processing during recovery Contains RBAs when tablespaces are open for update. Log ranges out ranges cannot contain updates for this tablespace and therefore we needed during the recovery process.SYSLGRNGX is also updated by running the Modify Recovery utility
- ALWAYS PRODUCE TWO FILES FOR ONE ACTIVE LOGS
IT IS AN ASYNCHRONOUS PROCESS
VCAT.ARCHLOGN.BNNNNNNVCAT.ARCHIVEN.ANNNNNNCONTAINDS THE BSDS INFORMATION BEFORE ARCHIVE IS WRITTEN FIRST LOG BEING ARCHIVED,IS STILL KNOWN AS ACTIVE LOG IN BSDS
로그인 후 복사CONTAINS THE ACTUAL LOG FOR LOG RBA RANGE OF THAN LOG DATA SETSUPDATES BSDS WHEN COMPLETE
로그인 후 복사 - DB2 ZPARMS ARCHPFX1+ARCHPFX2+TSTAMP=YES|NO|EXT
VCAT.ARCHIVEN.DXXXXX.TXXXXX.BNNNNNNNN - WHEN ARCHIVE:
ACTIVE LOG FULL
TRUNCATED:ARCHIVE LOG COMAMND OR ERROR
LOG STRUCTURE
WHAT IS BEING LOGGED?INFORMATION OF UR- BEGIN/END UR INFORMATION
- UNDO/REDO STATEMENTS and compensation log rec
- commit rollback processing
- OPEN/CLOSE PAGE SET
- PENDING STATUS INFORMATION(COPY,CHECK,REORG)
- START/STOP INFORMATION(include which mode ut)
- DBD INFORECOVERY INFOMATION FORINVOLED TABLES:SYSTEM CHECKPOINTSUNDO/REDO LOG EXMPLAE
SYSIBM.SYSUTILX SYSIBM.DBD01 SYSIBM.SYSCOPY
로그인 후 복사
UPDATE T
SET COL='BBB'
WHERE ID=1
LRH004A002F 06000001 0E800006 CEA48CC9 0006CEA4 8D590526 0006CEA4 8D59C7C0
AF504B23 0000
*LG** 80010C00 02000000 02000006 CEA4049E 2B02 0000 00120101 00030900 000600C2 C2C200C1 C1C1
C2C2C2='BBB'
C1C1C1='AAA'
URID(0006CEA48CC9)RBA OF UR STARTED IN LOG
010C=DBID
0002==PAGE SET OBID
000000 02=PAGE ID
In case of the example the current value is BBB and after the update it should become AAA, but for some reason a ROLLBACK occurs, in that
case DB2 needs to undo this update. This undo by itself is also being logged. These log records are called compensation log records.
SUBTYPE(UPDATE IN-PLACE IN A DATA PAGE) CLR(YES)*LG** 80010C00 02000000 02000006 CEA550BF AB00 0000 00120101 00030900 000600C2 C2C200C1 C1C1
CLR(YES) which indicates it is a compensation log record
RECOVERY INFORMATION EXAMPLEDB2 writes “syscopy” information for certain system tables to the log instead of writing it to syscopy. The reason is simple. In case of a
disaster recovery, we need to recover the system in precise steps.Meaning that certain system tables have to be recovered before we can recover sysibm.syscopy. Therefore the backup information of those objects is written to the log.
SYSTEM CHECKPOINT (snapshot of activity on system)
- WHAT IS IN SYSTEM CHECKPOINT
- Entry per active thread (amongst other status inflight/in commit etc)
- Entry per open page set (including exception status)
- Page externalization
- How often should one be taken ?
- Every 3-5 minutes (many sites are at 15-20 minutes)
- CHKFREQ : V9 : # LOG records or # seconds
V10: Minimum of # LOG records and # seconds
로그인 후 복사
- Important for (re)start up performance
? Start up ALWAYS from LAST CHECKPOINT
As the work is being done
? In Log output buffer (OUTBUFF)
? Regularly flushed to Active Log Dataset
Sequentially first active copy1 then active copy2 (DB2 V10 应该是双写)
? At Commit
? At Rollback
? Log Write threshold (WRTHRSH 20 pages without commit)
? Archive log command
? System Checkpoint
? Log Write Ahead Force
LOG USAGE
Start DB24 phases :
- Log initialization
Read/compare BSDS
Find current active log dataset and end of log - Current status rebuild
Read last system checpoint - Forward log recovery
Do all work for INCOMMIT and INDOUBT threads - Backward log recovery
Do all work for INABORT and INFLIGHT threads - ALWAYS start from LAST SYSTEM CHECKPOINT
Amount of work varies (ab)normal shutdowN
DB2 新增了一个参数BACKOUT(YES),这个参数应该不是太常用,更多的情况应该是使用imgcopy+log的方式去追,即point-in-time,这里不进行介绍。
REPLICATION现在IDC内相当火的一个topic,它是实现双活或是多活的基础,平台版本的DBMS也有实现,比如mysql的mater-slave方式,即mysql本身就支持,不需要新增软件,但是是单线程进行处理,为此很多vendors提供了增强版的版本使slave上支持并发。zos 上使用QREP+MQ实现,支持异构数据库,延迟可以控制在分钟以内。RPT=2MIN,RTO=2HOUR,
SOX Compliance这个更多是的是内审,外审的用途。相对来说使用审计LOG的方式,成本还是比较高的,有alternative software。
HEALTH CHECKSBEST PRACTICE,根据系统现在的运行情况,查看时候ACTIVE LOG,ACHIVE LOG是否运行异常。
LOG UTILITES,WORKING WITH THE LOG
多少一句,这个应该是目前平台比较欠缺的,可能目前也存在,只是我孤陋寡闻了。
DSN1LOGP? Formats DB2 log in a readable output
? Detailed or summarized (SUMMARY(YES/NO/ONLY)
? Include page set status (DATAONLY(YES/NO)
? Include SYSCOPY info (SYSCOPY(YES/NO)
? Limit range (from – to)
? Limit scope (e.g. URID,DBID,)
? Cannot read current active log
? Cannot read compressed logs by DFSMS
Will list certain parts of the BSDS information
? Log data set name(s), log ranges, volume(s) etc
? Active log status
? Conditional restart history
? System checkpoint history
? Backup system history
? Archive log history
? CCSID information
? Does not show Buffer pool configuration
? Be careful time values are in GMT except LTIME column
? Only runs when DB2 is down
? Allows to change BSDS content, USE WITH CARE!
? Add/Delete active and archive Logs
? Add/Delete system checkpoints
? Create conditional restart record (CRESTART)
? STARTRBA
? ENDRBA
? COLD START ? STARTRBA=ENDRBA
? Causes most of the time DATA LOSS
DSNJLOGF
? Pre-formats new active log dataset
? Avoids delay at first use !!
? MUST have TWO identical BSDS to start up
? What if one BSDS is broken ?
? DSNJ126I I/O ERROR FORCED SINGLE BSDS
? Do NOT stop DB2
? Issue command –RECOVER BSDS ? automate this!
? What if one BSDS is broken at start up?
? DB2 does not start
? IDCAMS rename/define, REPRO
LOG RELATED DATASET
LOG PAGE FORMAT
对LOG PAGE 有一个感性认识,LOG 的逻辑结构复杂了,后续如果有需要在补充上吧。
1 BYTE=8BITS
1 NIBBLE=4BITS
LOG PAGE SIZE=4KB
LOG PAGE AVAIABLE SPACE=4075
LOG PAGE CONTROL INTERVAL
SIZE: LAST 21/X'15' BYTE OF PAGE
USAGE:CI DESCRIBE THE LOG PAGE
START RAB OF THE PAGE
LOG RBA DO NOT HAVE RBA-----IT'S START RBA of the page plus offset into page of the record
1 log rec maybe span may log pages
本文所有的内容均整理自互联网,仅供参考学习,如有涉及版权问题,请自行删除本文,谢谢。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











최근 아이스 유니버스는 삼성의 차기 플래그십 스마트폰으로 널리 알려진 갤럭시 S25 울트라에 대한 세부 정보를 꾸준히 공개해 왔습니다. 무엇보다도 유출자는 삼성이 카메라 업그레이드를 하나만 가져올 계획이라고 주장했습니다.

OnLeaks는 이제 Android Headlines와 제휴하여 X(이전 Twitter) 팔로어로부터 4,000달러 이상의 수익을 창출하려는 시도가 실패한 지 며칠 후 Galaxy S25 Ultra에 대한 첫 번째 모습을 제공합니다. 맥락에 따라 h 아래에 포함된 렌더링 이미지

TCL은 두 가지 새로운 스마트폰을 발표하는 것과 함께 NXTPAPER 14라는 새로운 Android 태블릿도 발표했는데, TCL의 거대한 화면 크기는 판매 포인트 중 하나입니다. NXTPAPER 14는 TCL의 시그니처 브랜드인 무광택 LCD 패널 버전 3.0을 갖추고 있습니다.

최근 아이스 유니버스는 삼성의 차기 플래그십 스마트폰으로 널리 알려진 갤럭시 S25 울트라에 대한 세부 정보를 꾸준히 공개해 왔습니다. 무엇보다도 유출자는 삼성이 카메라 업그레이드를 하나만 가져올 계획이라고 주장했습니다.

Vivo Y300 Pro는 방금 완전히 공개되었으며 대용량 배터리를 갖춘 가장 얇은 중급 Android 휴대폰 중 하나입니다. 정확히 말하면 스마트폰의 두께는 7.69mm에 불과하지만 배터리 용량은 6,500mAh입니다. 최근 출시된 것과 동일한 용량이다.

삼성전자는 팬에디션(FE) 스마트폰 시리즈를 언제 업데이트할지 아직 힌트를 주지 않았다. 현재 상태로 Galaxy S23 FE는 2023년 10월 초에 출시된 회사의 최신 버전으로 남아 있습니다.

Redmi Note 14 Pro Plus는 이제 작년 Redmi Note 13 Pro Plus(Amazon에서 현재 $375)의 직접적인 후속 제품으로 공식화되었습니다. 예상대로 Redmi Note 14 Pro Plus는 Redmi Note 14 및 Redmi Note 14 Pro와 함께 Redmi Note 14 시리즈를 주도합니다. 리

OnePlus의 자매 브랜드 iQOO는 2023-4년 제품 주기가 거의 끝날 수 있습니다. 그럼에도 불구하고 브랜드는 Z9 시리즈가 아직 끝나지 않았다고 선언했습니다. 최종이자 아마도 최고급인 Turbo+ 변형이 예상대로 발표되었습니다. 티
