DB2 命令大全


check Archiving processing

查看日志歸檔情況

db2 "SELECT DATE(CAST(START_TIME as TIMESTAMP)) as DATE,

count(*) as NUMBER_OF_LOGS_PER_DAY,

(count(*)*23.4375) as AMOUNT_LOGS_DAY_MB,

DBPARTITIONNUM as DBPART

FROM SYSIBMADM.DB_HISTORY

WHERE operation = 'X' -- Archive logs

and OPERATIONTYPE = '1' -- 1 = first log archive method

and TIMESTAMP(END_TIME) > CURRENT_TIMESTAMP - 10 DAYS

GROUP BY DATE(CAST(START_TIME as TIMESTAMP)) , DBPARTITIONNUM

ORDER BY DATE DESC "

查看過去24小時是否進行過備份

[db2inst1@db2v9r7 ~]$]db2 "select substr(comment,1,30) as comment, timestamp(start_time) as start_time, timestamp(end_time) as end_time, substr(firstlog,1,25) as firstlog, substr(lastlog,1,25) as lastlog, seqnum, substr(location,1,50) as location from sysibmadm.db_history where operation = 'B' and timestamp(start_time) > current_timestamp - 24 hours and sqlcode is null "

Dprop check

Capture side:

db2 "SELECT SYNCHTIME, CURRENT TIMESTAMP AS CURRENT_TIMESTAMP FROM ASN.IBMSNAP_REGISTER WHERE GLOBAL_RECORD='Y' with ur"

Apply side:

db2 "select APPLY_QUAL, SET_NAME, SOURCE_ALIAS, TARGET_ALIAS, ACTIVATE, STATUS, LASTRUN, LASTSUCCESS, SYNCHTIME, SLEEP_MINUTES,REFRESH_TYPE from ASN.IBMSNAP_SUBS_SET"

### 查看hadr 環境

$ db2pd -alldbs -hadr

    db2pd -db sfa -hadr

#### 在 server端查詢node 使用空間

SELECT node_name,CAST(FLOAT(SUM(physical_mb)) / 1024 /1024 AS DEC(8,2))as "Space in TB" ,SUM(num_files)as "Number of files" FROM occupancy GROUP BY node_name ORDER BY "Space in TB" DESC

DB2跟oracle不一樣,用戶都是操作系統創建的

而且用戶沒有所謂的默認表空間,默認臨時表空間等等

整個數據庫的默認表空間就是數據庫創建的默認表空間,usertablespace

沒有專門記錄所有用戶的視圖,但是有個sysibmadm.privileges記錄所有的用戶權限

所以可以認為它就是專門記錄用戶的視圖。

db2move 導出數據的時候 ,雖然 可以 db2move export

但是在設置導出字符集的時候 還是有些問題 ,

此時可以 export DB2CODEPAGE=1208 在用戶的環境變量級別設置,使其生效。

### 獲取root權限

yangmsu@b03zeddbc002i:/> sudo -l|grep -i auto

yangmsu's password:

    (root) /usr/opt/db2*/instance*/, (root) /usr/opt/db2*/adm/*, (root) /usr/opt/db2*/bin/*, (root) /tmp/auto_db2install.sh,

    (root) /usr/opt/db2*/instance*/, (root) /usr/opt/db2*/adm/*, (root) /usr/opt/db2*/bin/*, (root) /tmp/auto_db2install.sh,

yangmsu@b03zeddbc002i:/>

yangmsu@b03zeddbc002i:/tempdb2> sudo /tmp/auto_db2install.sh ### then we have root priviledges

b03zeddbc002i:~ #

b03zeddbc002i:~ # id

uid=0(root) gid=0(root) groups=0(root),64(pkcs11)

b03zeddbc002i:~ #

db2中有2個用戶臨時表空間,數據庫默認使用哪一個?能修改嗎?

1) if they are different page size, use the one with larger bufferpool (actually there are more logic behind there, but usually the result will be pointing to the one with larger bufferpool)

2) if they are with same page size, it is round-robin then

查詢表大小

db2 "SELECT SUBSTR(TabSchema,1,15), TabName, TabType, (Data_Object_P_Size + Index_Object_P_Size + Long_Object_P_Size + Lob_Object_P_Size + Xml_Object_P_Size)/1024 as Total_P_Size_MB FROM SysIbmAdm.AdminTabInfo ORDER BY Total_P_Size_MB desc" >table_size.log

db2 "SELECT SUBSTR(TabSchema,1,15), TabName, TabType, (Data_Object_P_Size + Index_Object_P_Size + Long_Object_P_Size + Lob_Object_P_Size + Xml_Object_P_Size)/1024 as Total_P_Size_MB FROM SysIbmAdm.AdminTabInfo where TabName ='T_CHANGE_DETAIL' "

查看數據庫大小,單位byte

1. db2 "CALL GET_DBSIZE_INFO(?, ?, ?, 0) "

2. 通過表來查詢數據庫大小 snaphot_tbs_cfg

db2 "select (SUM(total_pages)*4)/1024.0/1024 TOTAL_ALLOCATED_SPACE_IN_GB from table (snapshot_tbs_cfg('dbname',-1)) TBS_SPCE"

查看表大小:

db2 "SELECT SUBSTR(TabSchema,1,15), TabName, TabType, (Data_Object_P_Size + Index_Object_P_Size + Long_Object_P_Size + Lob_Object_P_Size + Xml_Object_P_Size)/1024 as Total_P_Size_MB FROM SysIbmAdm.AdminTabInfo ORDER BY Total_P_Size_MB desc" >table_size.log

DB2執行sql腳本

db2 -tvf sql文件名

du -sg

du -amx| sort -nr |more linux 下查文件系統下文件大小

lsof 命令

grep兩個字段/也可以grep兩個以上的字段

=> db2 list db directory | grep -E "alias|type"

查詢存儲過程的內容:

db2 " select PROCNAME,text from syscat.procedures where PROCNAME = 'SP_A_TSKRES'"

team function ID

gdccndba@cn.ibm.com

查看當前數據庫名

db2 "select current server from sysibm.sysdummy1"

vi編輯器中替換的方法

:%s/vivian/sky/g(等同於 :g/vivian/s//sky/g) 替換每一行中所有 vivian 為 sky

:%s/^/#/g && :%s/^#//g 禁用crontab 時 可以采取這個方法 行首替換

標准unix/linux下的grep通過以下參數控制上下文

grep -C 5 foo file 顯示file文件中匹配foo字串那行以及上下5行

grep -B 5 foo file 顯示foo及前5行

grep -A 5 foo file 顯示foo及后5行

查看用戶權限

db2 "select * from syscat.dbauth where grantee='CHUBALA'"

db2 "select * from syscat.tabauth where grantee='CHUBALA'"

db2 "select substr(GRANTOR,1,30), GRANTORTYPE, substr(GRANTEE,1,30), GRANTEETYPE, substr(TABSCHEMA,1,30), substr(TABNAME,1,30), CONTROLAUTH, ALTERAUTH, DELETEAUTH, INDEXAUTH, INSERTAUTH, REFAUTH, SELECTAUTH, UPDATEAUTH from syscat.tabauth where GRANTEE='AIXDBA3'"

db2 "select substr(GRANTOR,1,30), GRANTORTYPE, substr(GRANTEE,1,30), GRANTEETYPE, substr(TABSCHEMA,1,30), substr(TABNAME,1,30), CONTROLAUTH from syscat.tabauth where GRANTEE='AIXDBA3'"

查看aix下所有用戶

cat /etc/passwd

查看aix下所有group

cat /etc/group

查看db2診斷日志

507 db2 get dbm cfg|grep -i diag

508 cd /db/lsinst/db2diag/

509 ls -alrt

510 tail db2diag.log

512 db2diag -time 2013-08-21-21.00|more

db2 "? sql-514" ### 查錯誤

db2 "? SQL0805N"

傳送備份集到TSM(IBM Tivoli Storage Manager)

*****查詢tsm 的備份文件存不存在必須要到 備份文件所在的目錄下 ,已經測試過:

=> dsmc query backup 文件名

dsmc query backup /db2inst5/backup/SMIWSLA.0.db2inst5.NODE0000.CATN0000.20130824231022.001 -ina

nohup dsmc restore /db2inst5/backup/SMIWSLA.0.db2inst5.NODE0000.CATN0000.20130824231022.001 -ina &

=> dsmc incremental /db/inst2/db2backup/tmp.adsm.LPDB.output

=> dsmc DELETE BACKUP /db2inst5/backup/SMIWSLA.0.db2inst5.NODE0000.CATN0000.20130629121219.001 -deltype=INACTIVE

oslevel -s

db2level

有ITM進程,說明tivoli在運行

### db2的歸檔 不是用 dsmc 做active log的backup 而是調用tsm 的API

### 查詢 和 提取 ,詳細參考infocenter db2adutl command

db2adutl query logs between S0002650 and S0002650 db blogs

db2adutl extract logs between S0002650 and S0002655 db blogs ### 提取到當前目錄下

db2adutl upload logs between S0168147 and S0168147 db blogs

$HOME/sqllib/adsm/dsmapipw

tsm client 重置密碼

## 查tsm 的 客戶端配置的server 信息

cat /usr/tivoli/tsm/client/api/bin64/dsm.opt

cat /usr/tivoli/tsm/client/api/bin64/dsm.sys

cat /usr/tivoli/tsm/client/ba/bin/dsm.sys

db2inst5@b03cxnp01028:/db/db2data/db2inst5/db2inst5/NODE0000> env|grep DSM

DSMI_CONFIG=/usr/tivoli/tsm/client/api/bin64/dsm.opt

DSM_LOG=/db2inst5/sqllib/db2dump

DSMI_LOG=/db2inst5/sqllib/db2dump

DSM_DIR=/usr/tivoli/tsm/client/api/bin64

DSM_CONFIG=/usr/tivoli/tsm/client/api/bin64/dsm.opt

DSMI_DIR=/usr/tivoli/tsm/client/api/bin64

db2 catalog tcpip node nodewin1 remote 9.1.39.85 server 50000

db2 catalog database sample (as alias) at node nodewin1

db2 uncatalog db 數據庫別名

db2 uncatalog node 節點名

###############################################################

################################################################

通過ID owner來判斷,服務器是否為本team維護,以下幾個ID為本team

 

################################################################

################################################################

查看當前目錄下最大的文件

du -amx |sort -nr|more

################################################################

1.我們可以在VI編輯器里把^M進行刪除:

將VI切換至命令行模式,輸入(注意輸入這個^M,這個不是shift+^再加上M,應該是ctrl+v加上ctrl+m)

:%s/^M//g --該命令copy無效,注意^M的輸入

在vi命令行模式執行上面的命令,可以將所有行末的^M去掉

2.可以使用dos2unix命令

dos2unix filename

################################################################

擴展表空間步驟

################################################################

查看表空間使用率

查看表空間使用率

db2 "select TBSP_ID,substr(TBSP_NAME,1,30) as TBSP_NAME, TBSP_TYPE, TBSP_TOTAL_SIZE_KB/1024 as TOTAL_M,TBSP_USED_SIZE_KB/1024 as USED_M,TBSP_UTILIZATION_PERCENT as Pct, TBSP_USING_AUTO_STORAGE, TBSP_AUTO_RESIZE_ENABLED from SYSIBMADM.TBSP_UTILIZATION" |grep CLOBS_TSP

查看表空間屬性(是否自動擴展,看AR/auto resize字段)

db2pd -db PMOR11 -tablespace 5

查看擴展到目標使用率需要擴展多少容量

db2 "select substr(TBSP_NAME,1,30) as TBSP_NAME,round((TBSP_USED_SIZE_KB/1024/0.75),0) as After_Extend_M,TBSP_USED_SIZE_KB/1024/0.75-TBSP_TOTAL_SIZE_KB/1024 Should_Extend_M from SYSIBMADM.TBSP_UTILIZATION where TBSP_NAME='CLOBS_TSP'"

查看目標服務器是否為高可用架構

db2pd -db CWAMAPP -hadr

查看是否有備份恢復task正在執行中

db2 list utilities show detail

擴展表空間

alter tablespace CLOBS_TSP extend (all 30M)

HADR 基本維護操作

1. hadr 的啟停操作

起 HADR

備 :

db2 deactivate database sample

db2 start hadr on database sample as standby

主 :

db2 deactivate database sample

db2 start hadr on database sample as primary

##啟動完成后 ,查看hadr 狀態

1. db2 get snapshot for db on sample

2. db2pd -db sample -hadr

停 HADR

主 :

db2 deactivate database sample

db2 stop hadr on database sample

備 :

db2 deactivate database sample /[db2inst1@hadr1 logtarget]$ db2 deactivate database sample user db2inst1 using db2inst1

db2 stop hadr on database sample

### 有時 deactivate database 不加用戶名密碼時,在stop hadr 時會報錯

[db2inst1@hadr1 logtarget]$ db2 stop hadr on database sample

SQL1769N Stop HADR cannot complete. Reason code = "2".

[db2inst1@hadr1 logtarget]$

2. 在備用服務器上執行數據庫接管

   db2 takeover hadr on database sample (by force)

###################################################################

AIX group:NUS_W_DNAHEAIX

dispool4@in.ibm.com

Tivoli Monitoring Team(NUS_N_SSEASMI)

Tivoli Database Support team(NUS_N_ASTIVDB)

Linux Team group:NUS_N_LINUX

OPS funcation id:cnagdsop@cn.ibm.com

CC: db2inter@br.ibm.com,gdccndba@cn.ibm.com,zfzheng@cn.ibm.com

7:01:37 PM: Wei Shi: BCC: szshiwei@cn.ibm.com, SUZHOU DBA

NUS_W_SSAHEDBA for AHE DBA team

NUS_N_SSUDBDBA for OOP DBA team

NUS_N_SSBRCONN for connect team

NUS_W_DNAHEAIX

NUS_W_SSTIVOLI Tivoli

NUS_N_

3:30:54 PM: yangmsu@cn.ibm.com - Kimi M Yang/China/IBM: tsm :

storbur2@br.ibm.com NUS_N_ADSM

msstsm@us.ibm.com NUS_N_UDTSM , I-MSV-US-BRBLD


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM