db2 - Binus Repository
Download
Report
Transcript db2 - Binus Repository
Matakuliah
Tahun
: T0413
: 2009
Trouble Shooting and Maintenance
Pertemuan 13
Problem Diagnosis
db2 ? <code>
Review the DB2
online manuals
(Information Center)
Problem!
Review
Admin notification log
or
the db2diag.log
Check the
DB2 Express-C forum
Review system with
Operating System
commands
Search for APARs, or
known problems
Bina Nusantara University
3
db2 help: ?
db2
db2
db2
db2
db2
Bina Nusantara University
?
?
?
?
?
SQL0104N
SQL104N
SQL-0104
SQL-104
SQL-104N
4
Finding More Information About Error Codes
• To find out more information about an error code received, in the
Command Editor input area, enter the code prefixed by a question
mark and click the Execute button
Prefix error code by
a question mark in
the Input area
More information
about the error
code appears in
the Output area
Bina Nusantara University
5
The DB2 Information Center
•
The DB2 Information Center contains the DB2 online manuals. It also includes the
manuals of products related to DB2.
•
It has a search field
•
It can be installed locally, or accessed through the internet
•
The internet version is the most up-to-date one. The URLs are:
– V9: http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp
– V9.5: http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/index.jsp
•
Most of the answers to your questions can be found from the DB2 Information
Center!
Bina Nusantara University
6
DB2 Administration Notification Log
Log with diagnosis information at the point failure
On Linux/UNIX platforms, the administration notification log is a text
file called instance.nfy
On Windows, all administration notification messages are written to
the Event Log, or you can see in in the DB2 Journal
The DBM configuration parameter notifylevel specifies the level of
information to be recorded:
ƒ
ƒ
ƒ
ƒ
ƒ
0 -- No administration notification messages captured (not recommended)
1 -- Fatal or unrecoverable errors
2 -- Immediate action required
3 -- Important information, no immediate action required (default)
4 -- Informational messages
Bina Nusantara University
7
db2diag.log
Information included in the db2diag.log
The timestamp when the error occurred. Use it to find the error quickly
The application name and DB2 function involved in the problem.
A diagnostic message explaining the reason for the error.
Any available supporting data, such as SQLCA data structures and
pointers to the location of any extra dump or trap files.
If you can recreate the problem:
Remove/rename the db2diag.log
Recreate the problem. A new db2diag.log file will be generated
Bina Nusantara University
8
Example of a db2diag.log entry
Timestamp when the problem occurred
Level: Be concerned when you see
“Severe” or “Error” here.
Application name
Error message information. Use any of these for searching in “Google”
Bina Nusantara University
9
Locating the db2diag.log
WIN XP/2003 (default)
C:\Documents and Settings\All Users\Application Data\IBM\DB2\DB2COPY1\<instance name>
ƒWIN VISTA
ƒ ProgramData\IBM\DB2\
Linux/UNIX (default)
INSTHOME/sqllib/db2dump (INSTHOME is the home directory of the instance owner)
You can change the location of the db2diag.log using diagpath in the dbm cfg
ƒ db2 update dbm cfg using diagpath <path>
The verbosity of diagnostic text is determined by diaglevel in the dbm cfg
ƒ range is 0 to 4 (default is 3)
ƒ most verbose is 4
Bina Nusantara University
10
The DB2 Express-C Forum
Free community assistance
www.ibm.com/developerworks/forums/dw_forum.jsp?forum=805&cat=19
Mainly in English
The IBM DB2 Express-C team monitors the forum, though it is
the community who assists the most
You can also access it from the DB2 Express-C web site:
www.ibm.com/db2/express
(and click the button to go to the forum)
Bina Nusantara University
11
Maintenance Utilities
REORG, RUNSTATS, REBIND
REORG
RUNSTATS
REBIND
Bina Nusantara University
12
Database Operational View in Control Center
Bina Nusantara University
13
Table Reorganization (REORG)
•
•
•
•
Over time, tables and indexes get fragmented (much like a file system)
A REORG reclaims wasted space and re-organizes data to make
retrieval more efficient
Tables that are modified the most will benefit the most from REORGs
REORG has an Online and Offline option
– Offline REORG is faster and more efficient, but does not permit
access to the table
– Online REORG allows access to the table, but can consume a lot
of system resources; it works best for small tables
REORG TABLE <tablename>
Bina Nusantara University
Example:
REORG TABLE employee
14
Statistics (RUNSTATS)
• Keeps database statistics up-to-date
– e.g. number of rows in a table, index size, data value ranges,
etc.
• Statistics are used by DB2 whenever queries are executed
– DB2 Query Optimizer is a cost-based optimizer
– Analyzes these statistics to produce data access plan
• The frequency of statistics gathering should be determined by how
often the data in the table changes
RUNSTATS ON TABLE <schema.tablename>
Example:
RUNSTATS ON TABLE myschema.employee
Bina Nusantara University
15
RUNSTATS and REORG from the Control
Center
Bina Nusantara University
16
Control Center > (expand) All Databases folder > (expand) Database > (select) Tables Folder > (right-click)
Table > Reorganize/Run Statistics
Bind/Rebind Packages
Applies to embedded SQL applications, SQL stored procedures
Static SQL application depicted
embedded
C program
(.sqc)
Access plans for
static SQL are
determined at
BIND time
Bina Nusantara University
C file
(.c)
library
.exe
bind file
(.bnd)
package
17
REBIND
db2rbind database_alias -l <logfile>
Example:
db2rbind sample -l mylog.txt
Bina Nusantara University
18
Maintenance Choices
• Automated Maintenance
– Have DB2 automatically look after maintenance for you
(REORG, RUNSTATS, BACKUP)
• Manual Maintenance
– You perform maintenance activities when the need arises
• Create Scripts to Perform Maintenance
– Schedule regular execution of scripts
Bina Nusantara University
19
Automated Maintenance
•
Based on a user-defined maintenance window
– DB2 will perform maintenance on this window ONLY if needed.
– Two maintenance windows:
• ONLINE: For online maintenance activities such as
RUNSTATS and online BACKUP. These can be defined at
any time because the database remains fully accessible
• OFFLINE: For offline maintenance activities such as offline
BACKUP and REORG. Database may become inaccessible
and any connected applications may be affected.
– Database keeps track of operations performed and schedules
any needed maintenance in the next appropriate maintenance
window
Bina Nusantara University
20
Scheduled Maintenance Using Task Center
• More time-consuming than automatic
maintenance, but more customization possibilities
– E.g. different tables might have different backup
needs
• Task Center is the central location for all
scheduled activities for the DB2 administration
tools
– It is the main interface where all tasks can be
created, edited, and scheduled
Bina Nusantara University
21
Performance
• Configure parameters
– Use the Configuration Advisor
– The bufferpool is the most important parameter to configure
• This is like cache for databases
• Do not over allocate physical memory to the bufferpool
• Design good indexes
– Use the Design Advisor
– Indexes can reduce sorts
Bina Nusantara University
22
Performance
• Choose the right locking strategy
– Depending on your application logic choose the appropriate
isolation level. UR provides the most concurrency.
• Reduce deadlocks by minimizing:
– Repeatable Read isolation
– Lock Escalation
– Lock Conversion
– Bad Access plans (table scans)
– Catalog Modification
– Referential Constraint Enforcement
Bina Nusantara University
23
Performance
• Minimize network traffic
– Use stored procedures
– Limit the fetch size using clauses like:
• Optimize for X rows: Use this clause to determine the
best communications buffer size.
• fetch first x rows only: Limit on the number of rows
retrieved
Eg:
SELECT EMPNAME, SALARY FROM
EMPLOYEE
ORDER BY SALARY DESC
FETCH FIRST 100 ROWS ONLY
OPTIMIZE FOR 20 ROWS
Bina Nusantara University
24
Performance
• Dynamic vs. Static SQL
– Static SQL performs better than dynamic SQL
– If must use dynamic SQL, ensure to use parameter markers
• Code your SQL appropriately
– Don’t ask for more than you need
• For example, asking for all the columns is not good, like
in: Select * from …
– Analyze bad performing SQL with Visual Explain
Bina Nusantara University
25
Visual ExplainAccess Plan
Execute &
Access Plan
Statement to
analyze
Bina Nusantara University
26
Visual Explain
Bina Nusantara University
27