DB2 Basic Commands

7
http://www.db2commands.com/ Basic Commands Size of your database: =>db2 'call get_dbsize_info(?,?,?,0)' Version of DB2 you are running: =>db2level Stop the db2 instance =>db2stop Stop an instance that has current connections =>db2 force applications all =>db2 deactivate db <dbname> =>db2 terminate =>db2stop force =>ipclean Start the db2 instance =>db2start Kill a hung instance (last resort) =>db2_kill -all List the databases in an instance =>db2 list db directory List the cataloged nodes =>db2 list node directory Show the database manager configuration settings =>db2 get dbm cfg Show the database level configuration settings =>db2 get db cfg for <dbname> Activate a database =>db2 activate db <dbname>

description

dfd

Transcript of DB2 Basic Commands

Page 1: DB2 Basic Commands

http://www.db2commands.com/

Basic Commands

Size of your database:

=>db2 'call get_dbsize_info(?,?,?,0)'

Version of DB2 you are running:

=>db2level

Stop the db2 instance =>db2stop

Stop an instance that has current connections =>db2 force applications all

=>db2 deactivate db <dbname>

=>db2 terminate

=>db2stop force

=>ipclean

Start the db2 instance

=>db2start

Kill a hung instance (last resort)

=>db2_kill -all

List the databases in an instance

=>db2 list db directory

List the cataloged nodes

=>db2 list node directory

Show the database manager configuration settings

=>db2 get dbm cfg

Show the database level configuration settings

=>db2 get db cfg for <dbname>

Activate a database

=>db2 activate db <dbname>

Deactivate a database

Page 2: DB2 Basic Commands

=>db2 deactivate db <dbname>

View the DB2 License

=>db2licm -l

To switch between partitions

=>db2 terminate; export DB2NODE=<new-node-num>

DB2 Backup and Restore Commands IBM DB2 UDB for Linux, Unix and Windows Command Examples

 

Email the DBA about a DB2 problem! Take an OFFLINE backup 

db2 connect to <dbname>

db2 quiesce database immediate force connections

db2 connect reset

db2 backup database <dbname> to <path> compress without prompting

after backup completes:

db2 connect to <dbname>

db2 unquiesce database

db2 connect reset

Take an ONLINE Backup db2 backup db <dbname> to <path> online compress or use a background process on a linux/unix machine

nohup db2 backup db <dbname> to <path> online compress &

List recent backups and where they are stored =>db2 list history backup all for <dbname>

Check the integrity of a backup image

=>db2ckbkp <image name>

Restore from Incremental Backup Automatic

=>db2 restore db <dbname> incremental automatic taken at <timestamp>

If you need to restore an incremental backup manually this command will give you the required previous

backups.

=>db2ckrst -d <dbname> -t <timestamp of image

DB2 Tuning Commands

Quickly look at some basic tuning measurements:

db2 "select db_name,  rows_read, rows_selected, lock_waits, lock_wait_time, deadlocks, lock_escals, total_sorts,

total_sort_time from table (snapshot_database (' ', -1) ) as snapshot_database"

Page 3: DB2 Basic Commands

DB2 Utility CommandsList the running utilities and their progress

=>db2 list utilities show detail

Throttle a running utility.

First find the Utility ID.

=>db2 list utilities show detail

Throttle the utility to a value of 1 to 10. 10 being the most throttled.

=>db2 set UTIL_IMPACT_PRIORITY for <util_id> TO 5

DB2 Tablespace and Bufferpool Commands

View the names, pagesize, and number of pages of the bufferpools in your database:

=>db2 "select bpname,pagesize,npages from syscat.bufferpools"

Make a bufferpool resize automatically.  You must have STMM turned on at the database configuration level

=>db2 alter bufferpool bp1 size AUTOMATIC 

Alter a bufferpool size that is a fixed size

=>db2 ALTER BUFFERPOOL IBMDEFAULTBP SIZE 15000;

Add space to a DMS tablespace:

=>db2 "alter tablespace <tblspace> extend (all 8000)"

DB2 Table and Index CommandsLook at columns and data types of a table

=>db2 describe table schema.tabelename

Look at one column's data type.

Page 4: DB2 Basic Commands

=>db2 "describe select <colname> from schema.tablename"

Look at indexes on a table:

=>db2 describe indexes for table schema.tablename

Export data to a file in ixf format:

=>db2 export to tablename.ixf of ixf messages tablename.txt select * from SCHEMA.TABNAME

Import data from an ixf file:

=>db2 import from filename.ixf of ixf messages tablename.txt insert into SCHEMA.TABNAME

Import using Load which is faster (doesn't check constraints) and NONRECOVERABLE doesn't log anything.

=>db2 load from filename.ixf of ixf insert into SCHEMA.TABNAME nonrecoverable;

Build a file to set integrity on all tables that are in set integrity pending state.

=>db2 "select 'set integrity for '||tabschema||'.'||tabname ||' immediate checked;' from syscat.tables

where type = 'T' and status = 'C'" > file.out

DB2 Security CommandsBuild a script to grant user execute privilege on all packages.

=>db2 "select 'db2 grant execute on package '||pkgschema||'.'||pkgname||' to user <user>;' from syscat.packages

where pkgschema = 'NULLID'" > output.file

Security Notes

dbadm auth must be revoked before any other database privlege.

create_not_fenced_routine must be revoked before create_external_routine

DB2 HADR and HACMP Commands

Example script for setting up HADR

Update configuration parameters on primary database -

UPDATE DB CFG FOR DB SAMPLE USING LOGINDEXBUILD ON

UPDATE DB CFG FOR DB SAMPLE USING INDEXREC RESTART

Page 5: DB2 Basic Commands

Copy backup image from primary to standby system.

Restore database on standby system 

RESTORE DATABASE SAMPLE REPLACE HISTORY FILE WITHOUT PROMPTING

Configure databases for client reroute - Primary

UPDATE ALTERNATE SERVER FOR DATABASE SAMPLE USING HOSTNAME <Standby ip address> PORT <inst

port>

Configure databases for client reroute -Standby

UPDATE ALTERNATE SERVER FOR DATABASE SAMPLE USING HOSTNAME <prim ip address> PORT <inst

port>

Edit /etc/services file and create an HADR port on both systems.   On Windows:

notepad %SystemRoot%\system32\drivers\etc\services

Add HADR line on both primary and standby system.  Same port number. ie.   DB2_HADR1     55005

Update HADR configuration parameters on primary database - 

UPDATE DB CFG FOR SAMPLE USING HADR_LOCAL_HOST <prim ip>

UPDATE DB CFG FOR SAMPLE USING HADR_LOCAL_SVC DB2_HADR1

UPDATE DB CFG FOR SAMPLE USING HADR_REMOTE_HOST <sb ip>

UPDATE DB CFG FOR SAMPLE USING HADR_REMOTE_SVC DB2_HADR1

UPDATE DB CFG FOR SAMPLE USING HADR_REMOTE_INST DB2

UPDATE DB CFG FOR SAMPLE USING HADR_SYNCMODE NEARSYNC

UPDATE DB CFG FOR SAMPLE USING HADR_TIMEOUT 120

Enable cfg changes by forcing off all connections

CONNECT TO SAMPLE

QUIESCE DATABASE IMMEDIATE FORCE CONNECTIONS

UNQUIESCE DATABASE

CONNECT RESET

Update HADR configuration parameters on standby database - -- 

UPDATE DB CFG FOR SAMPLE USING HADR_LOCAL_HOST <sb ip>

UPDATE DB CFG FOR SAMPLE USING HADR_LOCAL_SVC DB2_HADR_14

UPDATE DB CFG FOR SAMPLE USING HADR_REMOTE_HOST COL27VM

UPDATE DB CFG FOR SAMPLE USING HADR_REMOTE_SVC DB2_HADR_13

UPDATE DB CFG FOR SAMPLE USING HADR_REMOTE_INST DB2

UPDATE DB CFG FOR SAMPLE USING HADR_SYNCMODE NEARSYNC

UPDATE DB CFG FOR SAMPLE USING HADR_TIMEOUT 120

Start HADR on standby database 

Page 6: DB2 Basic Commands

DEACTIVATE DATABASE SAMPLE

START HADR ON DATABASE SAMPLE AS STANDBY

Start HADR on primary database 

DEACTIVATE DATABASE SAMPLE

START HADR ON DATABASE SAMPLE AS PRIMARY

View status of HADR

=>db2pd -db <dbname> -hadr

Swap roles of Primary and Standby

=>db2 takeover hadr on db <dbname>

Takeover Primary operation on the standby db when the original primary is down

=>db2 takeover hadr on db <dbname> by force

Steps for setting up HACMP active/passive

HACMP Active server

1. First create the file <instname>.db2nodes.cfg. in the /etc directory which is local to each server and will NOT

be failed over to another server, on both servers.

2. Use the local hostname in the /etc/<instname>.db2nodes.cfg files on both servers.

3. Make sure permissions for file /etc/<instname>.db2nodes.cfg are set to 444 on both servers.  

4. As Instance owner, create a link named db2nodes.cfg from the instance sqllib to this new

/etc/<instname>.db2nodes.cfg file.

=>ln -fs /etc/<instname>.db2nodes.cfg /db2home/<instname>/sqllib/db2nodes.cfg

5. Make sure you create the <instname>.db2nodes.cfg on the same path on both servers, so that link will still

work after failover.

6. Also make sure same TCP port is being used/reserved on both servers for the instance service port.

7. Remove db2 startup line from inittabs and provide your own db2 startup and stop scripts.......as root =>rmitab

db2start

HACMP Standby server

1.  as root.  vi /etc/<instname>.db2nodes.cfg .    chmod 444 

permissions on /db2home directory should be 775 and owned by db2as:db2asgrp

Copy /etc/services db2 ports from Active server to /etc/services in Standby server.

Make a file called /var/db2/v81/profiles.reg and add instance names on seperate lines

Copy instance id's .profiles over to standby server.

 

Page 7: DB2 Basic Commands