xiedd@>
*update:
2006-06-14
*memo:
详细命令请使用"db2?
"进行查看。
*************************************************
1.停止db2
db2stop或
db2stopforce。
在脚本中一般两个都写上,避免使用db2stopforce命令,如:
db2stop
db2stopforce
2.启动db2
db2start
3.创建数据库
db2createdb
或db2createdbusingcodesetGBKterritoryCN
4.删除数据库
执行此操作要小心。
db2dropdb
如果不能删除,断开所有数据库连接或者重启db2。
5.断开数据库连接
db2forceapplicationall
db2forceapplication(h1[,h2,..,hn])根据句柄号与特定应用程序断开连接
6.连接数据库
db2connecttouserusing
7.断开数据库连接
断开当前数据库连接:
db2connectreset
或者:
db2disconnectcurrent
断开所有数据库的连接:
db2disconnectall
8.备份数据库
db2backupdb
备注:
执行以上命令之前需要断开数据库连接
9.恢复数据库
db2restoredb
10.导出数据文件
db2moveexport[-sn<模式名称,一般为db2admin>][-tn<表名,多个之间用逗号分隔>]
11.导入数据文件
db2moveimport
12.列出数据库中所有db
db2listdbdirectory
13.进入db2命令环境
在“运行”中执行:
db2cmd
14.获取db2数据库管理配置环境信息
db2getdbmcfg
15.获取db2某个数据库数据库管理配置环境信息
db2getdbcfgfor
或者:
连接至某个数据库以后执行db2getdbcfg。
16.设置联合数据库为可用(默认联合数据库不可用)
db2updatedbmcfgusingfederatedyes
17.更改db2日志空间的大小
备注:
以下命令为了防止db2数据库过份使用硬盘空间而设,仅用于开发者自己机器上的db2,如果是服务器,则参数需要修改。
db2UPDATEDBCFGFORUSINGlogretainOFFlogprimary3logsecond2logfilsiz25600;
如果页大小是4KB,则以上命令创建3个100M的日志文件,占用300MB硬盘空间。
25600*4KB=102400KB。
18.创建临时表空间
DB2CREATEUSERTEMPORARYTABLESPACESTMASPACEPAGESIZE32KMANAGEDBYDATABASEUSING(FILE'D:
\DB2_TAB\STMASPACE.F1'10000)EXTENTSIZE256
19.获取数据库管理器的快照数据
db2–vgetsnapshotfordbm
20.显示进行程号
db2listapplicationsshowdetail
21.调查错误
sqlcode:
产品特定错误码;
sqlstate:
DB2系列产品的公共错误码,符合ISO/ANSI92SQL标准。
调查sqlcode:
db2?
sql1403n
调查sqlstate:
db2?
08004
22.创建表空间
rem创建缓冲池空间8K
db2connecttogather
db2CREATEBUFFERPOOLSTMABMPIMMEDIATESIZE25000PAGESIZE8K
rem创建表空间:
STMA
rem必须确认路径正确
remD:
\DB2Container\Stma
db2droptablespacestma
db2CREATEREGULARTABLESPACESTMAPAGESIZE8KMANAGEDBYSYSTEMUSING('D:
\DB2Container\Stma')EXTENTSIZE8OVERHEAD10.5PREFETCHSIZE8TRANSFERRATE0.14BUFFERPOOLSTMABMPDROPPEDTABLERECOVERYOFF
db2connectreset
23.将暂挂的数据恢复到前滚状态
db2ROLLFORWARDDATABASETESTDBTOENDOFLOGSANDCOMPLETENORETRIEVE
24.备份表空间
BACKUPDATABASEYNDCTABLESPACE(USERSPACE1)TO"D:
\temp"WITH2BUFFERSBUFFER1024PARALLELISM1WITHOUTPROMPTING
25.创建db2工具数据库
db2createtoolscatalogsystoolscreatenewdatabasetoolsdb
26.如何进行增量/差量备份
增量:
上一次完整备份至本次备份之间增加的数据部分;
差量(delta):
上次备份以来(可能是完整备份、增量备份或者差量备份)至本次备份之间增加的数据部分;
27.更新所有表的统计信息
db2-vconnecttoDB_NAME
db2-v"selecttbname,nleaf,nlevels,stats_timefromsysibm.sysindexes"
db2-vreorgchkupdatestatisticsontableall
db2-v"selecttbname,nleaf,nlevels,stats_timefromsysibm.sysindexes"
db2-vterminate
28.对一张表运行统计信息
db2-vrunstatsontableTAB_NAMEandindexesall
29.查看是否对数据库执行了RUNSTATS
db2-v"selecttbname,nleaf,nlevels,stats_timefromsysibm.sysindexes"
30.更改缓冲池的大小
缓冲池中,当syscat.bufferpools的npages是-1时,由数据库的配置参数bufferpage控制缓冲池的大小。
将npages的值更改为-1的命令:
db2-vconnecttoDB_NAME
db2-vselect*fromsyscat.bufferpools
db2-valterbufferpoolIBMDEFAULTBPsize-1
db2-vconnectreset
db2-vterminate
更改数据库配置参数BufferPages的命令如下:
db2-vupdatedbcfgfordbnameusingBUFFPAGEbigger_value
db2-vterminate
31.查看数据库监视内容列表
db2-vgetmonitorswitches
32.打开某个数据库监视内容
db2-vupdatemonitorswitchesusingbufferpoolon
33.获取数据库快照
db2-vgetsnapshotforalldatabases>snap.out
db2-vgetsnapshotfordbm>>snap.out
db2-vgetsnapshotforallbufferpools>>snap.out
db2-vterminate
34.重置数据库快照
db2-vresetmonitorall
35.计算缓冲池命中率
理想情况下缓冲池命中率在95%以上,计算公式如下:
(1-((bufferpooldataphysicalreads+bufferpoolindexphysicalreads)/(bufferpooldatalogicalreads+poolindexlogicalreads)))*100%
36.创建db2实例
db2icrt<实例名称>
37.删除db2实例
db2idrop<实例名称>
38.设置当前db2实例
setdb2intance=db2
39.显示db2拥有的实例
db2ilist
40.恢复离线增量备份数据库的命令
DB2RESTOREDATABASEYNDCINCREMENTALAUTOMATICFROMD:
\backup\autobak\db2TAKENAT20060314232015
41.创建样本数据库
在unix平台,使用:
sqllib/bin/db2sampl
在windows,os/2平台,使用:
db2sample,e是可选参数,指定将创建数据库的驱动器;
42.列出数据库中所有的表
db2listtables
43.列出某个表的数据结构
db2describetablev_ro_role
44.给表增加列
ALTERTABLESTAFFADDCOLUMNPNHONEVARCHAR(20)
45.数据迁移方法1
export脚本示例
db2connecttotestdbusertestpasswordtest
db2"exporttoaa1.ixfofixfselect*fromtable1"
db2"exporttoaa2.ixfofixfselect*fromtable2"
db2connectreset
import脚本示例
db2connecttotestdbusertestpasswordtest
db2"loadfromaa1.ixfofixf replaceintotable1 COPYNO withoutprompting"
db2"loadfromaa2.ixfofixf replaceintotable2 COPYNO withoutprompting"
db2connectreset
46.恢复崩溃的数据库
db2restartdbtestdb
47.更改表名
renametable1totable2
48.创建表
--==============================================================
--Table:
TABLE1
--==============================================================
createtableTABLE1
(
IDSMALLINTnotnull,
GNAMEVARCHAR(100)notnull,
GECHONAMEVARCHAR(100)notnull,
GORDERSMALLINTnotnull
);
49.设置主键
altertableTABLE1
addconstraintP_KEY_1primarykey(filed1,field2);
50.查询哪个表被锁定
先执行:
db2pd-dbcodebase-locksshowdetail
查找状态是.NS的记录。
再连接数据库执行:
db2"selectsubstr(tabschema,1,9)astabschema,substr(tabname,1,20)astabname,tableid,tbspaceidfromsyscat.tableswheretbspaceid=2andtableid=22"
51.将数据导入并更新到表中
db2connecttotestdbuserdb2adminusingdb2admin
db2"importfromaa1.ixfofixfINSERT_UPDATEintodc_proc_job_info"
db2"importfromaa2.ixfofixfINSERT_UPDATEintodc_proc_task_info
db2connectreset
52.导出DLL脚本:
db2look-dyndc-tB810102002DB810102004D-e-nofed-odll.sql
多个表之间用空格分隔,表大约在50个以内(跟命令的长度有关系)。
53.通过脚本创建nickname
DROPNICKNAMEDC_ORGPERSON;
DROPNICKNAMEDC_ORG;
DROPNICKNAMEDC_PERSON;
DROPNICKNAMEDC_PERSONROLE;
DROPNICKNAMEDC_PERSONWG;
DROPSERVERtempserver;
DROPWRAPPERDRDA;
--WRAPPER的DDL语句
CREATEWRAPPER"DRDA"
LIBRARY'libdb2drda.a'
OPTIONS(DB2_FENCED'N'
);
--SERVER的DDL语句
--需替换AUTHORIZATION,PASSWORD,DBNAME,指平台的数据库
CREATESERVERtempserverTYPEDB2/UDBVERSION8.1
WRAPPERDRDA
AUTHORIZATION"db2admin"
PASSWORD"db2admin"
OPTIONS
(DBNAME'ROEEE'
);
--USERMAPPING的DDL语句
--需替换REMOTE_AUTHID,REMOTE_PASSWORD,指平台的数据库
--"FORdb2admin"中的db2admin在后面都会用到,最好是业务数据库管理账号,如以别的账号,最好把下面的模式“db2admin.”也都换掉
CREATEUSERMAPPINGFORdb2admin
SERVERtempserver
OPTIONS
(REMOTE_AUTHID'db2admin'
REMOTE_PASSWORD'db2admin'
);
CREATENICKNAMEdb2admin.DC_PERSONFORtempserver.db2admin.V_DC_PERSON;
CREATENICKNAMEdb2admin.DC_PERSONROLEFORtempserver.db2admin.V_DC_PERSONROLE;
CREATENICKNAMEdb2admin.DC_PERSONWGFORtempserver.db2admin.V_DC_PERSONWG;
CREATENICKNAMEdb2admin.DC_ORGFORtempserver.db2admin.V_DC_ORG;
CREATENICKNAMEdb2admin.DC_ORGPERSONFORtempserver.db2admin.V_DC_ORGPERSON;
54.列出活动的数据库
db2listactivedatabases
55.列出表
listtables[for{user|all|system|schema}][showdetail]列出数据库中的表
56.列出表空间
db2listtablespacesshowdetail
listtablespacecontainersfor[showdetail]显示用指定的表空间的容器信息。
57.性能监视器
返回会话监控开关的状态:
getmonitorswitches
复位性能监控程序值:
resetmonitorall
返回实例级别的性能信息:
getsnapshotfordbm。
在数据库级别返回所有性能信息:
getsnapshotforallon
返回动态SQL高速缓存的内容:
getsnapshotfordynamicsqlon。
58.数据库健康监视
gethealthsnapshotfordbm返回实例的正常快照信息(仅适用于V8)。
gethealthsnapshotforallon返回数据库的所有正常快照(仅适用于V8)。
59.管理服务器
getadmincfg返回管理服务器的配置设置。
updateadmincfgusing
将管理服务器配置参数更新为值。
60.给用户赋查询的权限
CONNECTTOyndc;
GRANTSELECTONTABLEDB2ADMIN.A001A001TOUSERQUERY;
CONNECTreset;
61.