DB2常用管理维护命令.docx
- 文档编号:3703939
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:20
- 大小:23.73KB
DB2常用管理维护命令.docx
《DB2常用管理维护命令.docx》由会员分享,可在线阅读,更多相关《DB2常用管理维护命令.docx(20页珍藏版)》请在冰豆网上搜索。
DB2常用管理维护命令
DB2常用管理维护命令
=========DB2常用的命令======================================
启动数据库
db2start
停止数据库
db2stop
连接数据库
db2connecttobgj0userdb2instusingpassword
读数据库管理程序配置
db2getdbmcfg
写数据库管理程序配置
db2updatedbmcfgusing参数名参数值
读数据库的配置
db2connecttobgj0userdb2usingpwd
db2getdbcfgforbgj0
写数据库的配置
db2connecttouserdb2usingpwd
db2updatedbcfgforbgj0using参数名参数值
=====================================================================
关闭所有应用连接
db2forceapplicationall
db2"forceapplication(8)"
=====================================================================
备份数据库
db2forceapplicationall
db2backupdbbgj0tod:
(db2initializetapeon[url=file:
//\\.\tape0]\\.\tape0)
(db2rewindtapeon[url=file:
//\\.\tape0]\\.\tape0)
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
db2exporttoc:
\dftz.ixfofixfselect*fromdftz
导入表数据
importfromc:
\123.txtofdelinsertintoylbx.czyxx(把123文件中的内容以DEL格式插入到ylbx模式下的czyxx表中,加至czyxx表中数据的后面)
db2importfromc:
\dftz.txtofdelcommitcount5000messagesc:
\dftz.msginsertintodftz(将c盘下dftz文件中的内容记录以del格式导至dftz表中,每5000条提交一次,并在dftz.msg文件中记录过程中的报警信息)
db2importfromc:
\dftz.ixfofixfcommitcount5000messagesc:
\dftz.msginsertintodftz(将c盘下dftz文件中的内容记录以ixf格式导至dftz表中,每5000条提交一次,并在dftz.msg文件中记录过程中的报警信息)
db2importfromc:
\dftz.ixfofixfcommitcount5000insertintodftz(将c盘下dftz文件中的内容记录以ixf格式导至dftz表中,每5000条提交一次)
db2importfromc:
\dftz.ixfofixfcommitcount5000insert_updateintodftz(将c盘下dftz文件中的内容记录以ixf格式更新并导入dftz表中)
db2Importfromc:
\dftz.ixfofixfrestartcount55rowcount10000replace_createintodftz(仅ixf)(将dftz.ixf中的内容以ixf格式从第55条至第10000条的记录导至新建立的dftz表中)
db2Importfromc:
\dftz.ixfofixfrowcount10000createintodftz(仅ixf)(将dftz.ixf中的内容以ixf格式前10000条的记录导至新建立的dftz表中)
db2importfromc:
\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相关)
db2"updatemonitorswitchesusinglockONsortONbufferpoolONuowONtableONstatementON"
db2"updatemonitorswitchesusinglockoffsortoffbufferpooloffuowofftableoffstatementON"
db2updatedbmcfgusingDFT_MON_BUFPOOLonDFT_MON_LOCKonDFT_MON_SORTonDFT_MON_STMTonDFT_MON_TABLEonDFT_MON_TIMESTAMPonDFT_MON_UOWonHEALTH_MONon
db2getmonitorswitches
第二步:
创建事件监控器
db2"createeventmonitormonitor_allforstatement,database,tables,tablespaces,deadlocks,transactionswritetofile'/db2data/event'"
第三步:
激活事件监控器
db2"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”文件
db2"seteventmonitordb2detaildeadlockstate=1"
===============快照监控器===================================================
db2updatedbmcfgusingDFT_MON_BUFPOOLonDFT_MON_LOCKonDFT_MON_SORTonDFT_MON_STMTonDFT_MON_TABLEonDFT_MON_TIMESTAMPonDFT_MON_UOWonHEALTH_MONon
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
执行频繁的语句
grep-n"Numberofexecution"all_snap.out|grep-v"=0"|sort-krn|more
执行时间很长的语句
grep-E"Totalexecutiontime"all_snap.out|sort-rn|more
grep-E"Rowsread"all_snap.out|sort-rn|more
==========================================================================
管理
export将数据库数据抽取到一个平面文件中。
import通过使用IMPORT实用程序,将数据导入到数据库。
loadquerytable
[tolocal-message-file][nosummary|summaryonly][showdelta]返回LOAD实用程序的进度。
backupdatabase
restoredatabase
gethealthsnapshotfordbm返回实例的正常快照信息(仅适用于V8)。
gethealthsnapshotforallon
管理服务器
getadmincfg返回管理服务器的配置设置。
updateadmincfgusing
更新为值 =============================================================== db2pd-v db2pd-osinfo [bgrz1d0][db2inst][/db2data/db2user/db2inst]>db2pd-help Usage: -h|-help[file= Help -v|-version[file= Version -osinfo[disk][file= OperatingSystemInformation -dbpartitionnum DatabasePartitionNumber(s) -alldbpartitionnums Allpartitionnumbers -database|-db
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DB2 常用 管理 维护 命令