Welcome 微信登录

首页 / 数据库 / MySQL / DB2常用脚本整理

--表空间扩容ALTER TABLESPACE BAS_DW_ENTADD (Device "/dev/vx/rdsk/n01datadg3/dwentlv_100g_01_01" 3276800) ON DBPARTITIONNUM (1)ADD (Device "/dev/vx/rdsk/n02datadg3/dwentlv_100g_02_02" 3276800) ON DBPARTITIONNUM (2)ADD (Device "/dev/vx/rdsk/n03datadg3/dwentlv_100g_03_03" 3276800) ON DBPARTITIONNUM (3)ADD (Device "/dev/vx/rdsk/n04datadg3/dwentlv_100g_04_04" 3276800) ON DBPARTITIONNUM (4)ADD (Device "/dev/vx/rdsk/n05datadg3/dwentlv_100g_05_05" 3276800) ON DBPARTITIONNUM (5)ADD (Device "/dev/vx/rdsk/n06datadg3/dwentlv_100g_06_06" 3276800) ON DBPARTITIONNUM (6)ADD (Device "/dev/vx/rdsk/n07datadg3/dwentlv_100g_07_07" 3276800) ON DBPARTITIONNUM (7)ADD (Device "/dev/vx/rdsk/n08datadg3/dwentlv_100g_08_08" 3276800) ON DBPARTITIONNUM (8)ADD (Device "/dev/vx/rdsk/n09datadg3/dwentlv_100g_09_09" 3276800) ON DBPARTITIONNUM (9)ADD (Device "/dev/vx/rdsk/n10datadg3/dwentlv_100g_10_10" 3276800) ON DBPARTITIONNUM (10)ADD (Device "/dev/vx/rdsk/n11datadg3/dwentlv_100g_11_11" 3276800) ON DBPARTITIONNUM (11)ADD (Device "/dev/vx/rdsk/n12datadg3/dwentlv_100g_12_12" 3276800) ON DBPARTITIONNUM (12)ADD (Device "/dev/vx/rdsk/n13datadg3/dwentlv_100g_13_13" 3276800) ON DBPARTITIONNUM (13)ADD (Device "/dev/vx/rdsk/n14datadg3/dwentlv_100g_14_14" 3276800) ON DBPARTITIONNUM (14);db2 list tablespaces show detail;db2 list tablespace containers for 42--表空间扩容ALTER TABLESPACE BAS_MK_APPADD (Device "/dev/n0datavg6/rmkapplv_100g_0_01/" 3276800) ON DBPARTITIONNUM (0)ADD (Device "/dev/n1datavg6/rmkapplv_100g_1_02/" 3276800) ON DBPARTITIONNUM (1)ADD (Device "/dev/n2datavg6/rmkapplv_100g_2_03/" 3276800) ON DBPARTITIONNUM (2)ADD (Device "/dev/n3datavg6/rmkapplv_100g_3_04/" 3276800) ON DBPARTITIONNUM (3);--查看表空间使用情况db2 "select substr(tbsp_name,1,20) tbsp_name,tbsp_type,substr(tbsp_state,1,10) tbsp_state,tbsp_total_size_kb/1024 tot_size,tbsp_free_size_kb/1024 free_size,tbsp_utilization_percent used_pect,TBSP_USING_AUTO_STORAGE,TBSP_PAGE_SIZE/1024 PGSIZE,DBPARTITIONNUMfrom sysibmadm.tbsp_utilization where tbsp_total_size_kb/1024>1024 and tbsp_utilization_percent>90 order by DBPARTITIONNUM with ur"--检查表空间状态db2 "select tbsp_id,substr(tbsp_name,1,30) tbsp_name,substr(tbsp_state,1,10) tbsp_state,tbsp_utilization_percent,dbpartitionnum from sysibmadm.tbsp_utilization with ur"db2 list tablespaces show detail --在单分区上查看表空间的状态,正常返回0x0000db2_all "db2 list tablespaces show detail" --在所有分区上查看表空间的状态db2tbst 0x0000State = Normal--查看表空间信息db2 list tablespacesshow detaildb2 list tablespace containers for 0--查看DMS表空间中是否还有可用页$db2 list tablespaces show detail --在单分区上查看表空间的是否还有可用页$ db2_all ";db2 connect to qhbidb;db2 list tablespaces show detail" --在所有分区上查看表空间是否还有可用页--获取表空间的高水位信息db2 "SELECT varchar(tbsp_name, 16) as tbsp_name,RECLAIMABLE_SPACE_ENABLED,TBSP_USED_PAGES,TBSP_FREE_PAGES, TBSP_PAGE_TOP from TABLE (MON_GET_TABLESPACE("",-2)) AS twhere t.TBSP_PAGE_TOP > t.TBSP_USED_PAGES">>-ALTER TABLESPACE--tablespace-name---------------------------->>----+-REDUCE--+-------------------------------+--+-----------------------------+-++-database-container-clause-+ "-on-db-partitions-clause-"+-all-containers-clause-----++-MAX---------------------------++-STOP--------------------------+"-integer--+---------+----------"+-K-------++-M-------++-G-------+"-PERCENT-"+-LOWER HIGH WATER MARK--+------+--------------------------------------------+"-STOP-""----------------------------------------------------------------------------"展示了与回收表空间存储器相关的两个子句及其语法。其中MAX参数可以指定最大限度的降低高水位标记来释放空间。在运行REDUCE命令后,在数据块移动的过程中,也可以使用STOP参数来停止表空间移动。如果是DMS表空间,则需要先运行LOWER HIGH WATER MARK子句降低高水位标记,再运行REDUCE子句释放表空间。如果是启用了自动存储的表空间,直接运行REDUCE子句即可。清单 7. 自动存储表空间ALTER TABLESPACE REDUCE 10 M清单 8. DMS 表空间ALTER TABLESPACE LOWER HIGH WATER MARKALTER TABLESPACE REDUCE (ALL CONTAINERS 10 M)--数据库大小db2 "call get_dbsize_info(?,?,?,-1)"--数据库load历史信息文件清理--建议定期对/dbhome/qhbiinst/NODE0000/SQL00001/db2rhist.asc清理,该文件过大会导致LOAD操作是存在性能问题。--例如:清除节点1,2014年10月之前的历史文件记录export DB2NODE=1db2 terminatedb2 connect to qhbidbdb2 prune history 201410--故障日志抓取cd /db2diaglog/db2dump--将FODC_Trap_YYYY_MM_DD-HH.MI.SS.MS文件夹全部内容取下来db2diag -t 2014-11-30-23.00.00:2014-12-01-03.00.00 >diag_201441201.logdb2diag -t 2015-8-18 -level "Severe,Error"--查看load历史文件大小du -sm /db2data/qhbiinst/NODE0000/SQL00001/db2rhist*awk "{a+= $0}END{print a"MB"}"du -sm /db2data/qhbiinst/NODE000[1-8]/SQL00001/db2rhist*awk "{a+= $0}END{print a"MB"}"du -sm /db2data/qhbiinst/NODE000[9-16]/SQL00001/db2rhist*awk "{a+= $0}END{print a"MB"}"du -sm /db2data/qhbiinst/NODE000[17-24]/SQL00001/db2rhist*awk "{a+= $0}END{print a"MB"}"du -sm /db2data/qhbiinst/NODE000[1-8]/SQL00001/db2rhist*awk "{a+= $0}END{print a"MB"}"du -sm /db2data/qhbiinst/NODE000[1-8]/SQL00001/db2rhist*awk "{a+= $0}END{print a"MB"}"--检查各个点数据库的运行状态$db2_all "db2pd –db qhbidb -"--如果部分节点状态不正常,可以通过如下方式去启动数据库:$db2start dbpartitionnum nodenum--查看表的状态db2 "select tabname, colcount, status from syscat.tables where tabschema not like "SYS%" order by tabname"db2 load query table test--DB2状态监控$db2_ps$db2gcf -u -p 0 -i qhbiinstInstance : qhbiinstDB2 Start : SuccessPartition 0 : Successdb2 deactivate database 数据库名称 -------------去激活数据库db2 activate database 数据库名称 -------------激活数据库connect reset -------------断开当前数据库连接db2 restart database databasename -------------重新启动数据库--两种可以备份方式---脱机数据库备份,需要至数据库的独占连接,它将备份数据库中的所有表空间;backup db sample to c:ackup with 3 buffers buffer 1000 without prompting---联机数据库备份,可以备份整个数据库或者单个表空间。backup db sample tablespace (userspace1) online to /dev/rmt0 without prompting--要执行联机备份,确保数据库参数 logretain = on 或 设置了logarchmetd1支持联机备份--查看仓库的transactiondb2pd -d qhbidb -transactionsdb2pd -d qhbidb -alldbp -apinfo 59898(applid)ps -efgrep "Application PID"--停止数据库db2 force application alldb2 terminatedb2stopdb2startdb2_all "db2 connect to qhbidb"--经使用db2 activate db qhbidb,再使用db2_all "db2 connect to qhbidb"查看表是否可以查询。--查看当前节点回滚情况db2pd -d qhbidb -reco--查看当前主机所有分区的回滚情况db2pd -d qhbidb -reco -alldbpdb2_all "db2 list utilities show detail"--查看不确定事务export DB2NODE=0db2 terminatedb2 connect to qhbidbdb2 values current dbpartitionnumdb2 list indoubt transactions--重组表检查db2 "call reorgchk_tb_stats("T","ALL")"--重组索引检查db2 "call reorgchk_ix_stats("T","ALL")"--统计信息检查db2 "select date(STATS_TIME),count(1) from syscat.tables where type="T" group by date(STATS_TIME) with ur"--缓冲池命中率db2 "select * from sysibmadm.bp_hitratio"db2 get snapshot for bufferpools on qhbidb global--锁升级、锁等待db2 "select lock_waits,deadlocks,lock_escals,lock_timeouts,dbpartitionnum from sysibmadm.snapdb"--排序溢出db2 "select total_sorts,sort_overflows,dbpartitionnum from sysibmadm.snapdb"--SQL语句分析db2 "select * from sysibmadm.snapdyn_sql"--表状态检查db2 "select substr(tabschema,1,10) tabschema,substr(tabname,1,30) tabname,status,type from syscat.tables where status<>"N""--有效索引读db2 "select rows_read/(rows_selected+1),dbpartitionnum as IREF from sysibmadm.snapdb"--平均结果集大小db2 "select rows_selected/(select_sql_stmts+1) as avg_result_set,dbpartitionnum from sysibmadm.snapdb"--同步读取比例db2 "select 100-(((pool_async_data_reads+pool_async_index_reads*100)/(pool_index_p_reads+1)) as SRP from sysibmadm.snapdb where DB_NAME="ODSDB""--脏页偷取db2 "select pool_dirty_pg_steal_clns from sysibmadm.snapdb"--缓冲区读写IO响应时间db2 "select tbsp_name,(pool_read_time/(pool_data_p_reads+pool_index_p_reads+pool_temp_data_p_reads+pool_temp_index_p_reads+1)) as tsorms from sysibmadm.snaptbsporder by tsorms desc fetch first 10 rows only"--平均每条交易的排序次数db2 "select total_sorts/(commit_sql_stmts+rollback_sql_stmts),dbpartitionnum from sysibmadm.snapdb"--总的事务数量db2 "select commit_sql_stmts + rollback_sql_stmts,dbpartitionnum from sysibmadm.snapdb"--每个事务包括查询SQL的数量db2 "select select_sql_stmts,(commit_sql_stmts + rollback_sql_stmts),dbpartitionnum from sysibmadm.snapdb"--每个事务包括增删改的语句数量db2 "select uid_sql_stmts,(commit_sql_stmts + rollback_sql_stmts),dbpartitionnum from sysibmadm.snapdb"--每个事务返回的结果集行数db2 "select row_selected,(commit_sql_stmts + rollback_sql_stmts),dbpartitionnum from sysibmadm.snapdb"--每个事务返回读的行数db2 "select rows_read,(commit_sql_stmts + rollback_sql_stmts),dbpartitionnum from sysibmadm.snapdb"--检查Package状态db2 "select valid,count(1) from syscat.packages group by valid with ur"--监控表的使用情况select substr(tabname,1,50) tabname,count(*)from sysibmadm.snaptab a,syscat.tables bwhere a.tabschema=b.tabschemaand a.tabname=b.tabnameand b.tbspace like "TBS_AGG"group by substr(a.tabname,1,50) having count(*)=1;--查看表所属的表空间db2 "SELECT TABLES.TABSCHEMA, TABLES.TABNAME, TBSPACES.TBSPACE FROM SYSCAT.TABLES AS TABLES, SYSCAT.TABLESPACES AS TBSPACESWHERE TABLES.TBSPACEID = TBSPACES.TBSPACEID AND TABNAME = "SALES""-- 查找存储过程所对应的程序包的名称SELECTCHAR(PROCSCHEMA,20) AS PROCSCHEMA, -- 模式名称CHAR(PROCNAME,20) AS PROCNAME, -- 存储过程名称CHAR(B.BNAME,20) AS PKGNAME -- 绑定包名称FROM SYSCAT.PROCEDURES AJOIN SYSCAT.ROUTINEDEP B ON A.SPECIFICNAME = B.ROUTINENAMEWHERE PROCSCHEMA="KF2" AND PROCNAME="EXPLAINPLAN_TEST" WITH UR;--查看表的相关信息db2 reorgchk update statistics on table NWH.CUST_BLACKdb2_all ";db2 connect to qhbidb;db2 reorg table NWH.CUST_BLACK"本文永久更新链接地址