DB2常用命令(一)
阿新 • • 發佈:2018-12-28
大版本升級命令:
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