大版本更新指令:
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 ? <command>
db2 connect to <database>
db2 list tables [for <schema> / for all]
db2 list tablespaces [show detail]
db2 list tablespace containers for <tablespace ID>
設定相關
Database Manager Configuration
db2 get dbm cfg
db2 update dbm cfg using <parameter> <value>
DIAGLEVEL & DIAGPATH
Database Configuration
db2 get db cfg for <database>
db2 update db cfg for <database> using <parameter> <value>
Environment
db2set -all
db2set <parameter>=<value>
System tables and views
常見路徑
Code /opt/IBM/db2/V10.5/*
Instance home /home/<instance>/sqllib
Diagnostic data /home/<instance>/sqllib/db2dump
Database directory
db2 list db directory
Tablespace containers
db2 list tablespaces show detail
db2 list tablespace containers for <tablespace id>
Database transaction logs
db2 get db cfg for <db> | grep "Path to log files"
強制中斷指令
db2 force application all / db2stop
db2stop force
db2_kill
ipclean