DB2 - a generall overview

advertisement
Department of Computer and System Science, Stockholm University
Tommi Teofilovski
Foreword ................................................................................................................................................ 2
The Database Environment at Stockholm University................................................................. 2
Server.............................................................................................................................................. 2
Client ............................................................................................................................................... 2
DB2 - A General Overview ................................................................................................................. 3
Using DB2 .............................................................................................................................................. 4
GUI ................................................................................................................................................... 4
Command Window ...................................................................................................................... 6
Configuring your Database and Database Manager ................................................................... 8
Database Manager (Instance) Configuration ........................................................................ 8
Database Configuration for Database .................................................................................... 8
How to Access and Manage the Configuration Parameters ..................................................... 9
GUI ................................................................................................................................................... 9
Command Window ...................................................................................................................... 9
Performance and Monitoring Your System ................................................................................. 10
Optimizer and Explain .............................................................................................................. 10
Snapshots.................................................................................................................................... 11
DB2batch ..................................................................................................................................... 13
How to Save Your Database ........................................................................................................... 14
Finding Documentation.................................................................................................................... 14
Locally .......................................................................................................................................... 14
Internet ......................................................................................................................................... 15
Db2diag.log and Db2trace ....................................................................................................... 15
Dictionary............................................................................................................................................. 16
References........................................................................................................................................... 16
Department of Computer and System Science, Stockholm University
Tommi Teofilovski
Foreword
The purpose of this paper is to give an introduction and general overview of the
database DB2 UDB (will be referred to as DB2), how to use DB2 and the
environment at the Institution of Computer and System Science at Stockholm
University (DSV). The paper also gives an introduction on how to monitor
performance and different aspects of it. This paper is intended to be used by teachers
and students at the DSV. Where and how to find this documentation is specified in
section “Finding documentation”
The Database Environment at Stockholm University
DB2 is running under Windows NT, and is integrated in the Local Area Network at
DSV. There is one Server machine, only to be used by the DB2 UDB Database
Administrator, and 189 Client machines distributed along fifth and seventh floor to
be used by the students. These Client machines can be found in DSV datorsalar
Server
Server name: DB-SRV-1
Level of DB2: Universal Database Enterprise Edition 6.1 and UDB SDK 6.1.
CPU: uniprocessor, Pentium 400 Mhz
RAM: 512 MB
OS: Windows NT 4.0 Server, Service Pack 9
Database Storage: System Managed Storage (SMS), unless something else is
specified.
Client
Level of DB2: Universal Database Personal Edition 6.1, (it not possible to access a
database residing on Personal Edition remotely)
CPU: Pentium 400 Mhz
RAM: 128 MB
OS: Windows NT 4.0 Workstation, service pack 9
Database Storage: System Managed Storage (SMS), by default.
To be able to use DB2 as a student at DSV you have to have a special DB2 user
account issued by DMC. This account gives you System Administration Authority
(SYSADM) which is the highest level of authentication in DB2. As such you can do
more or less everything with DB2, that is create, administer and work with databases
on your local machine.
Once you have a DB2 user account, you will be able to access databases residing on
the Server. But you cannot do any operations on these databases unless you have
DBADM authority for the database you are interested in. This authority will only be
given to you if you are registered on a course. This means that you will get your own
database on the Server that only you as a student (or group) can access.
2
Department of Computer and System Science, Stockholm University
Tommi Teofilovski
As a DB2 user registered on a course there will be space allocated on the server for
you to save your data on, like back-ups, scripts and other matters.
The environment at DSV is special because the client users are able to use different
client machines every time they use DB2.
DB2 - A General Overview
This part will introduce general components of the Database environment and briefly
describe them.
System is the machine where you are using DB2. In the system you can see your own
machine called LOCAL or other machines that you have a connection to, like for
instance the Server.
Database manager (also referred to as the instance) is part of DB2 that manages data.
It controls what can be done with the data, and manages system resources assigned to
it. Each instance is a complete environment. An instance has its own databases (which
other instances cannot access), and all its database partitions share the same system
directories. It also has separate security from other instances on the same machine.
A database is organized into parts called table spaces. A table space's definition and
attributes are recorded in the database system catalog. Once a table space is created,
you can then create tables within this table space. A container is assigned to a table
space. A container is an allocation of physical storage (such as a file or device). Table
spaces reside in nodegroups.
A table consists of data logically arranged in columns and rows. The data in the table
is logically related, and relationships can be defined between tables. Data can be
viewed and manipulated based on mathematical principles and operations called
relations. Table data is accessed via SQL, a standardized language for defining and
manipulating data in a relational database. All database and table data is assigned to
table spaces.
3
Department of Computer and System Science, Stockholm University
Tommi Teofilovski
figure 1.1
Using DB2
DB2 commands and SQL statements in DB2 for NT can be done through the
Graphical User Interface (GUI) or through the Command Window. In most of the
examples below it will be assumed that the Command Window will be used.
Although, the GUI part will be briefly described.
The purpose is to make you aware of all the different ways DB2 can be used. It is up
to you as a user to decide what you prefer.
GUI
There are a number of GUI tools in DB2, but this paper will only describe and
mention some of them. The GUI tools can normally be found under
StartProgramsDB2 for Windows NTsee figure 1.2
4
Department of Computer and System Science, Stockholm University
Tommi Teofilovski
figure 1.2 Where to find the GUI tools for DB2 UDB
Control Center
This tool is pretty intuitive and easy to use, see figure 1.3. It shows you all the objects
relevant for DB2 in your system. Under Systems the different machines in the network
can be found. Each machine has one or more Instances, under which you can find a
folder with all the databases for that instance. Under all the databases you can find the
content of them. By clicking on any of these objects with the right mouse button, a list
of options will appear.
figure 1.3 Control Center
Command Center
From the Command Center you can issue DB2 commands and SQL statements.
5
Department of Computer and System Science, Stockholm University
Tommi Teofilovski
figure 1.3 Command Center
Command Window
The special DB2 “Command Window” has to be opened from
StartProgramsDB2 for Windows NT or by typing “db2cmd.exe” at any MSDOS Command Prompt. If the special DB2 Command Window is to be used, it is
advised to change the color properties for this Command Window by right clicking on
the Command Window titlebar, this is to distinguish it from the MS-DOS Command
Prompt. Notice that when issuing DB2 commands or SQL statements from the
Command Window the command has to be preceded by “db2”. If you want to avoid
this type “db2”, hit Enter and then issue your commands or statements. Alternatively
the “Command Line Processor” can be called from StartProgramsDB2 for
Windows NT
figure 1.4 Command Window opened by typing “db2cmd” from a MS-DOS prompt or by calling “Command
Window” from Windows NT’s Start menu.
6
Department of Computer and System Science, Stockholm University
Tommi Teofilovski
figure 1.5 Command Line Processor, can be created by typing “db2” + Enter or by calling ”Command Line
Processor” from Windows NT’s Start menu.
Below follows some simple examples that gives you an idea of how DB2 can be used.
There are of course a lot more to it, more options and more commands.
Create a Database
To initializes a new database just type:
DB2 CREATE DATABASE SU on d
in the Command Window.
SU is the name of the database that you want to create and d is the drive where you
want to create the database on.
Observe that the CREATE DATABASE statement is considered as a command in
DB2, thus the information on this command can be found in the Command Reference.
Create Tables
The CREATE TABLE statement defines a table. The definition must include its name
and the names and attributes of its columns.
CREATE TABLE DSV
(STUDNO CHAR(3) NOT NULL,
STUDNAME VARCHAR(36) NOT NULL,
PROGRAM CHAR(6),
PRIMARY KEY(STUDNO))
A database connection (DB2 CONNECT TO SU) has to exists in order for this
statement to work. If this SQL statement is entered in the Command Window it has to
be proceeded by DB2 and submitted as one line. The CREATE TABLE statement is
considered as a SQL statement and is documented in the SQL reference.
Insert
The INSERT statement inserts rows into a table or view.
INSERT INTO DSV (STUDNO, STUDNAME, PROGRAM )
VALUES ('123', 'TOMMI', 'DSVL4')
7
Department of Computer and System Science, Stockholm University
Tommi Teofilovski
As before this command can be issued from the Command Center or a Command
Window. The INSERT statement is a SQL statement.
Configuring your Database and Database Manager
There are more than hundred configuration parameters in DB2, which are used to
control your system. These parameters fall into two general categories:
-
Database Manager Configuration
Database Configuration
Some parameters are more important than others. In the Administration Guide chapter
19, you can find all the parameters available in DB2, a detailed description and
recommendations. To give you an idea of these parameters some of them are shown
below.
Database Manager (Instance) Configuration
Parameter
Aslheapsz
Performance Impact Additional Information
High
"Application Support Layer Heap Size (aslheapsz)"
Authentication
Low
"Authentication Type (authentication)"
Cpuspeed
Low
"CPU Speed (cpuspeed)"
Dftdbpath
None
"Default Database Path (dftdbpath)"
java_heap_sz
High
"Maximum Java Interpreter Heap Size (java_heap_sz)"
Maxcagents
High
"Maximum Number of Concurrent Agents (maxcagents)"
intra_parallel
High
"Enable Intra-Partition Parallelism (intra_parallel)"
Sheapthres
High
"Sort Heap Threshold (sheapthres)"
Svcename
None
"TCP/IP Service Name (svcename)"
Sysadm_group
None
"System Administration Authority Group Name
(sysadm_group)"
Table 1, example of Database Manager configuration parameters
Database Configuration for Database
Parameter
Applheapsz
Performance Impact
Medium
Additional Information
"Application Heap Size (applheapsz)"
Buffpage
High
"Buffer Pool Size (buffpage)"
dft_degree
High
"Default Degree (dft_degree)"
dft_queryopt
Medium
"Default Query Optimization Class (dft_queryopt)"
8
Department of Computer and System Science, Stockholm University
Tommi Teofilovski
Logbufsz
High
"Log Buffer Size (logbufsz)"
Maxlocks
High
Sortheap
High
"Maximum Percent of Lock List Before Escalation
(maxlocks)"
"Sort Heap Size (sortheap)"
util_heap_sz
Low
"Utility Heap Size (util_heap_sz)"
Table 2, example of database configuration parameters
How to Access and Manage the Configuration Parameters
GUI
The configuration parameters can be accessed through the Control Center by rightclicking on the Instance (Database Manager) or Database and choosing “Configure…”
from the menu. In the GUI version the parameters are nicely categorized by
functionality.
Command Window
Open a Command Window as previously described and issue,
DB2 GET DBM CONFIGURATION
to get the configuration parameters for your Database Manager (DBM) and
DB2 GET DB CONFIGURATION FOR <DATABASENAME>
to get the configuration parameters for your database.
To modify a Database Manager configuration parameter type:
DB2 UPDATE DBM CONFIGURATION USING <PARAMETER> <VALUE>
To modify a Database configuration parameter type:
DB2 UPDATE DB CONFIGURATION FOR <DATABASE> USING <PARAMETER> <VALUE>
Example: DB2 UPDATE DBM CONFIGURATION USING UTIL_HEAP_SZ 100000
Notice, because the environment at DSV is set up so that users can sit at different
machines every time they logon DB2 there is a big probability that someone has
changed the Database Manager Configuration parameters so they are not compliant
with your wishes. Therefore it is recommended that you run fixDBenv.exe every time
you start using DB2 from your “new” client machine. This program will set all the
Database Manager configuration parameters to the default settings. This program also
UNCATALOG’s all the remote connections to the server.
If you have made changes to the configuration parameters and want to save them so
you can use them on a new client machine you can do it by redirecting the “DB2 GET
DBM CFG” output to a file and saving this file. To redirect it to a file just type “DB2
GET DBM CFG > dbm.out” in a Command Window, where dbm.out is the file where
9
Department of Computer and System Science, Stockholm University
Tommi Teofilovski
the output is saved. To make things easier it might be desirable to create a little batch
file dbm.bat that sets your parameters automatically. This dbm.bat file has to be run
from the Command Window and should contain for example,
Performance and Monitoring Your System
When it comes to performance there are many aspects that has to be considered, for
example: applications, use of utilities, caching, environmental considerations,
operational considerations, programming considerations and how the database is set
up. Some of these aspects can be controlled by changing the configuration parameters
described in the previous section. This paper will only give an overview of how the
performance can be controlled and how you can monitor the affect of changed
parameters.
Optimizer and Explain
The optimizer is the component within DB2 that determines the access path to be
used, that is how the SQL statement should be executed. Before execution of the
actual SQL statement a executable access plan is generated. The access plan contains
information on how the SQL statement will be executed. It tells you what index will
be used, sort methods, locking semantics and join methods. There are different tools
in DB2 to generate explain data, which is the access plan visualized.
DB2vexp.exe or better known as Visual Explain is a GUI tool and is by far the easiest
tool to use. To use Visual Explain go to the Control Center as described in the
previous section, right click on a database you want to get the explain for and select
“Explain SQL…”, and type the SQL statement and submit. This will result in a graph
10
Department of Computer and System Science, Stockholm University
Tommi Teofilovski
Figure xx, this is the Visual Explain output for “select * from dsv”.
The other tools that can be used to generate the access plan are db2expln, dynexpln
and db2exfmt. The output and purpose of these other tools can differ. For more
information on the other tools see Administration guide or Command Reference.
How to interpret the explain plan? There is good documentation in the Administration
guide that describes and explains all the different parts. But the fastest and easiest way
is to right click on the object and select “Help on Operator”.
It is possible to control the optimizer by changing the Optimization class either
through Visual Explain or by setting the database configuration parameter
DFT_QUERYOPT.
Snapshots
Snapshots tells you what state or what is happening in your environment and system at
a given time after a given operation. This can be very useful when tuning your system
and finding bottlenecks.
In DB2 there are different kind of monitor switches, Buffer pool, Lock, Sort,
Statement, Table and Unit of work. (see dbm configurations).
By default the snapshot monitor switches in the Database Manager Configuration is
set to OFF. Before you get snapshots you have to turn the parameter ON, by issuing
for example:
DB2 UPDATE DBM CONFIGURATION USING DFT_MON_BUFPOOL ON
11
Department of Computer and System Science, Stockholm University
Tommi Teofilovski
from the Command Window.
After this is done, do some operation for example “DB2 SELECT * FROM DSV”. DB2 will
now monitor and get snapshot of the bufferpool (DB2’s cache). To view the snapshot
information issue:
DB2 GET SNAPSHOT FOR ALL BUFFERPOOLS
This will give you an output something like this:
Bufferpool Snapshot
Bufferpool name
Database name
Database path
Input database alias
Buffer pool data logical reads
Buffer pool data physical reads
Buffer pool data writes
Buffer pool index logical reads
Buffer pool index physical reads
Total buffer pool read time (ms)
= IBMDEFAULTBP
= SU
= D:\DB2\NODE0000\SQL00001\
=
= 27
= 12
=0
= 60
= 27
=2
How to interpret this information? In the “System Monitor Guide and Reference” you
can find a description off all the snapshots, their meaning and recommendations, what
configuration parameter that affect respective snapshot and so on.
As an example, Buffer pool data logical reads, indicates the number of logical read
requests for data pages that have gone through the buffer pool, while “Buffer pool
data physical reads” indicates the number of read requests that required I/O to get
data pages into the buffer pool.
It is desirable to do little I/O operations and more buffer pool operations because
reading from a physical disk takes more time than reading from memory. Changing
the buffer pool size (see CREATE BUFFERPOOL in SQL Reference) will affect
these snapshots.
Working with snapshots,
Resetting the monitor switches effectively starts all of the counters at zero and further
snapshots are based on the new counter values. This should be done every time you
want to conduct new fresh snapshots with the following command,
DB2 RESET MONITOR ALL
Notice, after you are finished working with the snapshots, make sure that you turn
them OFF, since having them turned can affect the performance.
DB2 UPDATE DBM CONFIGURATION USING DFT_MON_BUFPOOL OFF
Snapshots can also be made by choosing “Snapshot Monitoring” from the menu that
appears when right clicking on the database in the Control Center.
12
Department of Computer and System Science, Stockholm University
Tommi Teofilovski
DB2batch
Db2batch is a command-only benchmark tool that reads SQL statements from either a
flat file or standard input, dynamically prepares and describes the statements, and
returns an answer set. This tool gives you the elapsed time of the SQL statement in
seconds. DB2batch is very useful when you want to see what affect your changes had
on performance. There is also an option in DB2batch that enables snapshots to be
generated.
Example:
Create an input file infile.sql for db2batch containing your SQL Statement,
From the Command Window issue:
DB2BATCH –d SU –f infile.sql
This will give you an output looking something like this:
Running in Embedded Dynamic mode.
--------------------------------------------Statement number: 1
select * from dsv
STUDNO STUDNAME
PROGRAM
------------------------------------------------------123 TOMMI
DSVL4
Number of rows retrieved is:
1
Number of rows sent to output is: 1
Elapsed Time is:
0.040
seconds
Summary of Results
==================
Elapsed
Agent CPU
Statement # Time (s)
Time (s)
1
0.040
Not Collected
Arith. mean
Geom. mean
Rows
Rows
Fetched Printed
1
1
0.040
0.040
For more information on how to use this tool, see “Command Reference”,
“Administration Guide” or type “db2batch –h” from the Command Window.
13
Department of Computer and System Science, Stockholm University
Tommi Teofilovski
How to Save Your Database
In a normal environment a backup is simply enough. But in our environment we
recommend a simpler way of saving your database, using db2move. To move (save)
your database, create a special directory where you want to save your database. From
that directory issue,
DB2MOVE <DATABASE> EXPORT
This will EXPORT and copy the specified database to the current directory. To restore
the database you have to create a database to which you want to import the exported
files and then import your data to that database,
DB2 CREATE DATABASE SU2 ON <DRIVE>
DB2MOVE SU2 IMPORT
The DB2move command has to be issued from the directory where the database has
been saved. DB2move is only command based.
Finding Documentation
There is a lot of information available on DB2 that can be found either on your system
or on the Internet. Below is explained how and where this information can be found.
Locally
The best place to find information on DB2 is through Information Center that can be
found under the “DB2 for Windows NT” folder or be accessed by typing db2ic from
the command line.
Here you can find most of the documentation available on the product, like the
Administration Guide, SQL Reference, Command Reference, Message Reference and
so on.
A lot of information on usage can also be found in the programs, for example to find
information on how to use db2move, just type “db2move –h”. More detailed
information on the tools can also be found in the on-line documentation. To list all the
commands available type “db2 ?” in the Command Window. To find information
about a particular DB2 command type DB2 ? <command>, for example “DB2 ?
CREATE” and information on the command will be listed on the screen. For more
detailed information on the command see the Command Reference.
If you get an SQL error message in the Command Window for example after issuing
DB2 LIST TABLES FOR ALL
SQL1024N A database connection does not exist. SQLSTATE=08003
you can find out what this error message means by looking in the Message Reference
or the easiest way just to type
DB2 ? SQL1024
in the DB2 Command Window. This will generate
SQL1024N A database connection does not exist.
14
Department of Computer and System Science, Stockholm University
Tommi Teofilovski
Cause: There is no connection to a database. Other SQL
statements cannot be processed unless an SQL CONNECT was
previously executed.
The command cannot be processed.
Action: If the error occurred when disconnecting from the
database, continue processing. If the error occurred on
another SQL statement, issue an SQL CONNECT statement and
resubmit the command or statement.
sqlcode: -1024
sqlstate: 08003
and says that it cannot process the previous command unless the CONNECT
statement is executed. For information on the CONNECT statement see the SQL
Reference.
To get an introduction to DB2 UDB v5.2, run the UDBDEMO program found under
“DB2 for Windows NT”.
Under C:\SQLLIB\SAMPLES you can find example files on how to do embedded
programming, stored procedures, calling API’s and much more.
Internet
On IBM’s homepage you can find the latest information and documentation on DB2,
“http://www.software.ibm.com/data/db2/library/”. Two links that are recommended
here are “DB2 Publications” (contains links to all the documentation) and “DB2
Universal Database” (contains a tool for searching all the documentation)
TPC organizations homepage http://www.tpc.org is worth a visit. This is a non
profitable organization that has all the major computer and database vendors as
members. These vendors measure their performance by running benchmarks put
together by the TPC organization. The result is then put in relation to each other.
Db2diag.log and Db2trace
In DB2 there is a log file, db2diag.log , that keeps track of everything that is going on
within DB2. If a problem occurs that you cannot find a explanation for the
db2diag.log file is a good place to start looking for what can be causing the problem.
The log file can be found under “C:\SQLLIB\<INSTANCE>”. You can control the
level of information in this file by setting the Database Manager Configuration
parameter DIAGLEVEL (described later in this paper). Using the db2diag.log file as a
source of information is normally a job for the Administartor.
It might turn out that the information in the db2diag.log file is not sufficient, and you
might do a trace. To do a trace you have to use the db2trc tool. DB2 uses its trace
facility to trace events, dump trace data to a file, and format trace data into a readable
form. Normally the trace facility is only used when directed by DB2 Customer Service
or by a technical support representative.
For more information on this see “Troubleshooting Guide”.
15
Department of Computer and System Science, Stockholm University
Tommi Teofilovski
Dictionary
References
16
Download