DB2常用命令(一)

大版本升级命令:

db2iupgrade
$DB2DIR/instance/db2iupgrade InstName

安装:

tar -xzvf file.tar.gz
cd server_t
./db2_inistall
SERVER
purescale选NO

添加用户:

groupadd -g 10000 db2igrp
grouped -g 10001 db2fgrp

useradd -u 10000 -g db2igrp -m -d /home/db2inst1 db2inst1
useradd -u 10001 -g db2fgrp -m -d /home/db2fenc1 db2fenc1
./db2icrt -s ese -p 60000 -u db2fenc1 db2inst1

groupadd -g 20000 db2igrp2
groupadd -g 20001 db2fgrp2

useradd -u 20000 -g db2igrp -m -d /home/db2inst2 db2inst2
useradd -u 20001 -g db2fgrp -m -d /home/db2fenc2 db2fenc2

创建fence user是为了防止用户写的存储过程中包含非sql的可能会破坏db2数据结构,使db2引擎崩溃的代码,让这些存储过程在单独的进程下运行,起到隔离和保护作用

实例

创建实例:

创建失败时查看是否ping通127.0.0.1,如果不行,在/etc/hosts文件里增加127.0.0.1 主机名。

cd /opt/IBM/db2/V10.5/instance
./db2icrt -s ese -p 50000 -u db2fenc2 db2inst2

查看db2所有实例:

db2ilist

查看机器上的实例

db2greg -dump

查看实例参数

db2 get dbm cfg show detail
对于那些无法立即生效的参数,Show detail可以用来显示它们的deferred value。

更改实例参数

db2 update dbm cfg using mon_heap_sz 1024 automatic

更改数据库参数

db2 update db cfg  for sample using sortheap 1024

db2diag.log路径

/home/db2inst1/sqllib/db2dump/DIAG0000

重要参数

diagpath: Location of the log files
diaglevel: Types of errors to be written to log

删除实例

db2stop force
Db2idrop 实例名

实例启停

db2start
db2stop

创建数据库:

db2 create database sample using codeset utf-8 territory CN
或者
db2sampl

列出所有表:

db2 list tables for all

db2同一主机下一个实例连接另一个实例

db2 catalog tcpip node N1 remote 127.0.0.1 server 60000(要连接的实例端口)
db2 catalog database sample as sinst1 at node N1 (别名尽量不要超过8位)

db2 connect to sample user db2inst1 using 登录密码

表空间:

表空间是逻辑上的概念,物理存储是容器。
容器可以是裸设备(比如没有格式化的磁盘),也可以是文件、目录。

创建表空间

  • sms
    使用 CREATE TABLESPACE 语句的 MANAGED BY SYSTEM 子句创建 (重要) sms
    要求将容器定义为目录名。
    性能差一点,一般用作临时表空间

  • dms
    使用 CREATE TABLESPACE 语句的 MANAGED BY DATABASE 子句创建 dms
    要求将容器定义为文件或设备。(重要)
    dms性能通常高于sms

    自动存储管理表空间不需要指定容器,对于数据表空间会自动选择dms,对临时表空间会选择sms,创建自动存储管理表空间时必须要先开启自动存储管理。

创建buffer pools

db2 CREATE BUFFERPOOL bp8k size 1000 PAGESIZE 8192
db2 "create tablespace mytbs 
       pagesize 8192
       managed by database
       using  (file  '/home/db2inst2/tablespace/aa' 10000 )  
       bufferpool bp8k"

用来查看表空间的大小页数等重要信息

db2 "LIST TABLESPACES SHOW DETAIL"

能够自动增加表空间大小

CREATE TABLESPACE mytabs MANAGED BY DATABASE USING (FILE '/db2files/DMS1' 10 M) AUTORESIZE YES 
db2 ALTER TABLESPACE mytbs AUTORESIZE YES

权限控制

db2 "grant select on db2inst1.x1 to user test" #将对表db2inst1.t的select权限赋予testusr (重要)

db2 "revoke select on db2inst1.x1 from user test" #将对表db2inst1.t的select权限从dbuser收回

Db级权限示例:
GRANT DBADM ON DATABASE TO USER "asd"
GRANT CONNECT ON DATABASE TO USER "asd"

强制断开所有应用连接

db2 force applications all

脱机备份

db2 BACKUP DATABASE sample TO /home/db2inst2/backup

退出实例

db2 terminate

删除数据库

db2 drop db sample

恢复

db2 RESTORE DATABASE sample FROM /home/db2inst2/backup TAKEN AT 20180816232659 WITHOUT ROLLING FORWARD WITHOUT PROMPTING 

重定向恢复

db2 list tablespaces查看表空间id

db2 RESTORE DATABASE sample FROM /home/db2inst2/backup TAKEN AT 20180816232659 redirect WITHOUT ROLLING FORWARD WITHOUT PROMPTING 

db2 "set tablespace containers for 表空间id using (file '/home/db2inst2/backup/dd’ 10000)"

db2 restore db sample continue

HADR

db2 start hadr on database hadr_db as standby (重要) 先启动备份机再启动主机
db2 start hadr on database hadr_db as primary

查看监控开关

db2 get monitor switches

打开监控开关

db2 update monitor switches using bufferpool on

查看快照

db2 get snapshot for database on sample

查看数据库bufferpools信息

db2 "select * from syscat.bufferpools with ur"

调整缓冲池大小

db2 "alter bufferpool bp8k immediate size 2000"

查看错误详细信息

db2 ? SQL0104N

建库

db2sampl
db2 connect to sample
db2 list tables for all | grep -i empmdc

事件监视器

创建

db2 "create event monitor dlmon for deadlocks with details 
write to file '/home/db2inst1/evmon'"

开启

db2 SET EVENT MONITOR monitor-name STATE 0 / 1

导出

db2evmon -path directory path >1.out

分析sql执行计划

vi 1.sql
select * from empmdc where empno=500 with ur
db2expln -d sample -f 1.sql -z ";" -g -o 1.exp

Sql优化建议

cd /home/db2inst2/sqllib/misc
db2 -tvf EXPLAIN.DDL 生成相关库
db2advis -d sample -n db2inst2 -i 1.sql > 1.adv

执行sql文件

db2 -tvf 1.adv

查看db2命令的帮助

db2 ? 

查看db2命令所有参数解释的帮助

db2 ? OPTIONS

查看db2版本和补丁信息

db2level

查看数据库、表定义

Db2look

命令汇总

db2start
db2stop
db2 list db directory
db2 ? 
db2 connect to 
db2 list tables [for  / for all]
db2 list tablespaces [show detail]
db2 list tablespace containers for 

设置相关

Database Manager Configuration
db2 get dbm cfg
db2 update dbm cfg using  
DIAGLEVEL & DIAGPATH
Database Configuration
db2 get db cfg for 
db2 update db cfg for  using  
Environment
db2set -all
db2set =
System tables and views

常见路径

Code /opt/IBM/db2/V10.5/*
Instance home /home//sqllib
Diagnostic data /home//sqllib/db2dump
Database directory
db2 list db directory
Tablespace containers
db2 list tablespaces show detail
db2 list tablespace containers for 
Database transaction logs 
db2 get db cfg for  | grep "Path to log files"

强制中断命令

db2 force application all / db2stop
db2stop force
db2_kill
ipclean

你可能感兴趣的:(DB2)