DB2常用管理维护命令Word格式文档下载.docx
《DB2常用管理维护命令Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《DB2常用管理维护命令Word格式文档下载.docx(20页珍藏版)》请在冰豆网上搜索。
db2backupdbbgj0to[url=file:
//\\.\tape0]\\.\tape0
恢复数据库
db2restoredbbgj0fromd:
tod:
db2restoredbbgj0from[url=file:
//\\.\tape0]\\.\tape0tod:
前滚数据库
db2rollforwarddbdb3testtoendoflogsandcomplete
db2rollforwarddbdb3testto[timestamp]andcomplete
db2rollforwarddbdb3testto[timestamp]usinglocaltimeandcomplete
========================================================================
如何查看数据库的存储过程?
SELECT*FROMSYSCAT.PROCEDURES
绑定存储过程
db2connecttobgj0userdb2usingpwd
db2bindc:
\dfplus.bnd
拷贝存储过程到服务器上的C:
\sqllib\function目录中
=======================================================================
导出表数据
db2exporttoc:
\dftz.txtofdelselect*fromdftz
\dftz.ixfofixfselect*fromdftz
导入表数据
importfromc:
\123.txtofdelinsertintoylbx.czyxx(把123文件中的内容以DEL格式插入到ylbx模式下的czyxx表中,加至czyxx表中数据的后面)
db2importfromc:
\dftz.txtofdelcommitcount5000messagesc:
\dftz.msginsertintodftz(将c盘下dftz文件中的内容记录以del格式导至dftz表中,每5000条提交一次,并在dftz.msg文件中记录过程中的报警信息)
\dftz.ixfofixfcommitcount5000messagesc:
\dftz.msginsertintodftz(将c盘下dftz文件中的内容记录以ixf格式导至dftz表中,每5000条提交一次,并在dftz.msg文件中记录过程中的报警信息)
\dftz.ixfofixfcommitcount5000insertintodftz(将c盘下dftz文件中的内容记录以ixf格式导至dftz表中,每5000条提交一次)
\dftz.ixfofixfcommitcount5000insert_updateintodftz(将c盘下dftz文件中的内容记录以ixf格式更新并导入dftz表中)
db2Importfromc:
\dftz.ixfofixfrestartcount55rowcount10000replace_createintodftz(仅ixf)(将dftz.ixf中的内容以ixf格式从第55条至第10000条的记录导至新建立的dftz表中)
\dftz.ixfofixfrowcount10000createintodftz(仅ixf)(将dftz.ixf中的内容以ixf格式前10000条的记录导至新建立的dftz表中)
\dftz.ixfofixfcommitcount5000replaceintodftz(将dftz表中的内容导入dftz表中并替换其所有内容,每5000条提交一次)
======================================================================
执行一个批处理文件
db2–tf批处理文件名
(文件中每一条命令用;
结束)
自动生成批处理文件
建文本文件:
temp.sql
select'
runstatsontableDB2.'
||tabname||'
withdistributionanddetailedindexesall;
'
fromsyscat.tableswheretabschema='
DB2'
andtype='
T'
;
db2–tftemp.sql>
runstats.sql
===============================================================
自动生成建表(视图)语句
在服务器上:
C:
\sqllib\misc目录中
db2connecttobgj0userdb2usingpwd
db2look-dbgj0-udb2inst-e-p-cc:
\bgj0.txt
============================================================================
授权给某用户权限
grantdbadmondatabasetouserbb
select*fromczyxxfetchfirst1rowsonly
db2expln-d数据库名-u用户名密码-o文件名|-t-c生成包的模式名-p包名
=======================================================================================
要使用SQL调用语句重组表,使用admin_cmd过程发出执行命令:
callsysproc.admin_cmd('
reorgtabletablenameindexindexname'
)
===========================================================================
查看某一指定表的状态
db2loadquerytable表名
显示当前用户所有表
listtables
列出所有的系统表
listtablesforsystem
======================做数据库的编目与反编目(即删除编目)================
编目
1.db2catalogtcpipnodenode1remote172.16.170.100(本机IP地址)server50004(可从getdbmcfgshowdetail中看出)
2.db2catalogdbsample(要映射到的数据库在本机的别名)atnodenode1
反编目
1.db2uncatalognodenode1
2.db2uncatalogdbsample
================查看表结构==============================
db2describeselect*fromtmmsm01(db2describetabletmmsm01)
================为表改名========================================
db2renametable原始表名to目的表名
==================修改某个操作用户的权限================
(需要系统ROOT用户参与)
把用户所在组通过smittygroup修改所属组的操作权限参数,然后在db2getdbmcfgshowdetail中通过db2updatedbmcfgforbgj0usingSYSMONgroupnameDB2MON命令来修改
=========================================================
检查表的大小
db2selecttabname,npages,fpagesfromsyscat.tableswheretabname='
tabname'
查看最近一次数据重组的时间的时间:
db2‘selectstats_time,tabnamefromsyscat.tableswherestats_timeisnotnullOrderbystats_time’|more
检查是否已做过runstats:
db2-v"
selecttbname,nleaf,nlevels,stats_timefromsysibm.sysindexes"
为数据库做自动统计信息收集:
db2updatedbcfgforbgj0usingauto_mainton
db2updatedbcfgforbgj0usingauto_tbl_mainton
db2updatedbcfgforbgj0usingauto_runstatson
收集某表中所有列上的统计信息:
runstatsontable某个模式下的表表名onallcolumns
上句等同于:
runstatsontable表名
收集表和索引上的数据库统计信息,不包含分布统计信息:
runstatsontable模式下的表andindexesall
收集表和索引上的数据库统计信息,包含分布统计信息:
runstatsontable模式下的表withdistributionandindexesall
收集表上的数据库统计信息以及索引上的详细统计信息,不包含分布统计信息:
runstatsontable模式下的表anddetailedindexesall
收集表上的数据库统计信息以及索引上的详细统计信息,包含分布统计信息:
runstatsontable模式下的表withdistributionanddetailedindexesall
收集关键列上的数据库统计信息:
runstatsontable模式下的表onkeycolumns
==============================================================
检查哪个表有做过reorg
db2selecttabname,npages,fpagesfromsyscat.tables
检查备份与重构命令的历史记录:
db2listhistorybackup/reorgallforbgj0
执行表、索引检查是否需要做reorg,先执行reorgchk命令检,命令如下:
db2reorgchkupdatestatisticsontablebgj0.bgj0logevent
(查看用于索引的F4,F5,F6,F7,F8这几列,如果这几列中的任何一列有星号*,则说明当前的表和/或索引应该重组。
reorgchkontableall确定是否需要对表进行重组。
这对于对所有表自动执行runstats很有用。
脱机方式重组表是整理表碎片最快方法。
使用CLP重组表,执行:
db2reorgtablebgj0.bgj0logevent
要使用临时表空间重组表,执行:
db2reorgtabledbname.tablenameuse临时表空间名
重组表并根据索引对行进行重新排序,执行:
db2reorgtablebgj0.bgj0logeventindexIDX_LOG_01
db2reorgindexesallfortablebgj0.bgj0logeventallowreadaccess
=====查死锁=======================================================
cd/db2data/db2user/db2inst/db2inst/NODE0000/SQL00001/db2event/db2detaildeadlock
du-a|sort-rn
db2evmon-path/db2data/db2user/db2inst/db2inst/NODE0000/SQL00001/db2event/db2detaildeadlock>
/tmp/lock1.txt
============监控器================================================
第一步:
打开监控开关(只和getsnapshot相关)
updatemonitorswitchesusinglockONsortONbufferpoolONuowONtableONstatementON"
updatemonitorswitchesusinglockoffsortoffbufferpooloffuowofftableoffstatementON"
db2updatedbmcfgusingDFT_MON_BUFPOOLonDFT_MON_LOCKonDFT_MON_SORTonDFT_MON_STMTonDFT_MON_TABLEonDFT_MON_TIMESTAMPonDFT_MON_UOWonHEALTH_MONon
db2getmonitorswitches
第二步:
创建事件监控器
createeventmonitormonitor_allforstatement,database,tables,tablespaces,deadlocks,transactionswritetofile'
/db2data/event'
"
第三步:
激活事件监控器
seteventmonitordb2detaildeadlockstate=1"
ps-ef|grepdb2event
[bgrzl0m0][db2inst][/db2data/event]>
ls
00000000.evtdb2event.ctl
第四步:
格式化事件监控文件
db2evmon-dbbgj0-evmdb2detaildeadlock>
db2detaildeadlock.txt
============清空监控器:
===========================================
查看监控器名称:
ps-ef|grepdb2event(db2detaildeadlock)
db2"
seteventmonitordb2detaildeadlockstate=0"
删除“00000000.evtdb2event.ctl”文件
===============快照监控器===================================================
Defaultdatabasemonitorswitches
Bufferpool(DFT_MON_BUFPOOL)=ONON
Lock(DFT_MON_LOCK)=OFFON
Sort(DFT_MON_SORT)=ONON
Statement(DFT_MON_STMT)=ONON
Table(DFT_MON_TABLE)=ONON
Timestamp(DFT_MON_TIMESTAMP)=ONON
Unitofwork(DFT_MON_UOW)=ONON
Monitorhealthofinstanceanddatabases(HEALTH_MON)=ONON
db2getsnapshotforallonbgj0>
all_snap.out
动态sql语句snapshot
监控是否存在死锁
grep-n"
Deadlocks"
all_snap.out|grep-v"
=0"
|more
执行频繁的语句
Numberofexecution"
|sort-krn|more
执行时间很长的语句
grep-E"
Totalexecutiontime"
all_snap.out|sort-rn|more
Rowsread"
==========================================================================
管理
export将数据库数据抽取到一个平面文件中。
import通过使用IMPORT实用程序,将数据导入到数据库。
loadquerytable<
tbname>
[tolocal-message-file][nosummary|summaryonly][showdelta]返回LOAD实用程序的进度。
backupdatabase<
dbname>
[to<
path>
]执行数据库备份。
restoredatabase<
[from<
]执行数据库恢复。
gethealthsnapshotfordbm返回实例的正常快照信息(仅适用于V8)。
gethealthsnapshotforallon<
返回数据库<
的所有正常快照(仅适用于V8)。
管理服务器
getadmincfg返回管理服务器的配置设置。
updateadmincfgusing<
p>
<
v>
将管理服务器配置参数<
更新为值<
。
db2pd-v
db2pd-osinfo
[bgrz1d0][db2inst][/db2data/db2user/db2inst]>
db2pd-help
Usage:
-h|-help[file=<
filename>
]
Help
-v|-version[file=<
Version
-osinfo[disk][file=<
OperatingSystemInformation
-dbpartitionnum<
num>
[,<
DatabasePartitionNumber(s)
-alldbpartitionnums
Allpartitionnumbers
-database|-db<
database>
[