db2常用命令大全

1、Load 方法装入数据:
export&nbspto&nbsptempfile&nbspof&nbspdel&nbspselect *&nbspfrom&nbspTABLENAME&nbspwhere&nbspnot 清理条件;

load&nbspfrom&nbsptempfile&nbspof&nbspdel&nbspmodified&nbspby&nbspdelprioritychar&nbspreplace&nbspinto&nbspTABLENAME&nbspnonrecoverable;
说明:

在不相关的数据表export数据时,可以采取并发的形式,以提高效率;

TABLENAME指待清理table的名称;

modified&nbspby&nbspdelprioritychar防止数据库记录中存在换行符,导致数据无法装入的情况;

replace&nbspinto对现数据库中的内容进行替换,即将现行的数据记录清理,替换为数据文件内容;

nonrecoverable无日志方式装入;

2、查找当前的应用:db2&nbsplist&nbspapplication |grep&nbspBTPDBS;

3、删除当前正在使用的application:
db2 "force&nbspapplication (Id1,Id2,Id3)"

Id1,Id2,Id3 是List显示的应用号;

4、查看当前应用号的执行状态:

db2&nbspget&nbspsnapshot&nbspfor&nbspapplication&nbspagentid&nbsp299 |grep&nbspRow

5、查看数据库参数:

db2&nbspget&nbspdb&nbspcfg&nbspfor //当前数据库可以省略
6、修改数据库的Log数据:

db2&nbspupdate&nbspdb&nbspcfg&nbspusing <参数名> <参数值>

7、Db2Stop&nbspForce的用法:
在进行Bind的时候出现如下错误:

SQL0082CAn&nbsperror&nbsphas&nbspoccurred&nbspwhich&nbsphas&nbspterminated&nbspprocessing.

SQL0092NNo&nbsppackage&nbspwas&nbspcreated&nbspbecause&nbspof&nbspprevious&nbsperrors.

SQL0091NBinding&nbspwas&nbspended&nbspwith "3"&nbsperrors&nbspand "0"&nbspwarnings.

主要是表文件被加锁,不能继续使用;
在进行stop的时候报错:db2stop

8/03/2005&nbsp21:46:530&nbsp0&nbspSQL1025NThe&nbspdatabase&nbspmanager&nbspwas&nbspnot&nbspstopped&nbspbecause&nbspdatabases&nbspare&nbspstill&nbspactive.

SQL1025NThe&nbspdatabase&nbspmanager&nbspwas&nbspnot&nbspstopped&nbspbecause&nbspdatabases&nbspare&nbspstill&nbspactive.
需要使用如下命令可以解决这个问题:&nbspdb2stop&nbspforce

08/03/2005&nbsp21:47:49&nbsp0&nbsp0&nbspSQL1064NDB2STOP&nbspprocessing&nbspwas&nbspsuccessful.

SQL1064NDB2STOP&nbspprocessing&nbspwas&nbspsuccessful.
然后启动数据库db2start,连接数据库db2s后,重新进行bind即可。

8、缓冲池参数修改:
db2&nbspalter&nbspbufferpool&nbspibmdefaultbp&nbspsize&nbsp10240

查看本表的数据内容如下:db2 "select *&nbspfrom&nbspsyscat.bufferpools";

9、DB2 日志处理:
DB2日志是以文件的形式存放在文件系统中,分为两种模式:循环日志和归档日志。当创建新数据库时,日志的缺省模式是循环日志。在这种模式下,只能实现数据库的脱机备份和恢复。如果要实现联机备份和恢复,必须设为归档日志模式。
目前在综合业务系统中,设置的均是归档日志模式;其它系统(如事后监督、经营决策、中间业务等)一般都设置为循环日志模式。至于采用何种模式,可以通过修改数据库配置参数(LOGRETAIN)来实现: 归档日志模式:db2&nbspupdate&nbspdb&nbspcfg&nbspfor&nbspusing&nbsplogretain&nbspon 注:改为on后,查看数据库配置参数logretain的值时,实际显示的是recovery。改变此参数后,再次连接数据库会显示数据库处于备份暂挂(BACKUP&nbspPENDING)状态。这时,需要做一次对数据库的脱机备份(db2&nbspbackup&nbspdb ),才能使数据库状态变为正常。
循环日志模式:db2&nbspupdate&nbspdb&nbspcfg&nbspfor&nbspusing&nbsplogretain&nbspoff
10、Db2 日志处理
必须按照以下正确的步骤进行操作:
要求必须使用DB2命令PRUNE进行清理,不建议使用rm命令删除。
删除前应保证应用已停止(即联机已下来)。
查看当前使用的日志文件目录及第一活动日志文件
用 “db2&nbspget&nbspdb&nbspcfg&nbspfor ” 命令查看日志文件目录(Path&nbspto&nbsplog&nbspfiles)参数,确定数据库当前使用的日志文件目录。 例如:Path&nbspto&nbsplog&nbspfiles = /db2log/,说明DB2日志存放目录是 /db2log
用 “db2&nbspget&nbspdb&nbspcfg&nbspfor ”命令查看第一活动日志文件(First&nbspactive&nbsplog&nbspfile)参数,该参数对应的日志文件之前的日志文件均为归档日志文件,如果确认没有用,可以删除。 例如:First&nbspactive&nbsplog&nbspfile =&nbspS0015913.LOG,说明当前第一活动日志文件是S0015913.LOG。
备份好要删除的归档日志
删除归档日志 以应用用户(如BTP)登录,执行:

$&nbspdb2&nbspconnect&nbspto

$&nbspdb2&nbspprune&nbsplogfile&nbspprior&nbspto&nbspS???????.LOG

注:S???????.LOG为查看到的第一活动日志文件。此命令可以将当前第一活动日志文件之前的归档日志文件全部删除。

11、如何清理db2diag.log文件
db2diag.log,是用来记录DB2数据库运行中的信息的文件。可以通过此文件,查看记录的有关DB2数据库详细的错误信息。此文件也是不断增大的,需要定期进行清理。
可以通过查看实例的配置参数DIAGPATH,来确定db2diag.log文件是放在哪个目录下:db2&nbspget&nbspdbm&nbspcfg 如果 Diagnostic&nbspdata&nbspdirectory&nbsppath(DIAGPATH) = /home /db2inst1/sqllib/db2dump,则此文件是放在/home/db2inst1/sqllib/db2dump目录下。当文件系统 /home的使用率达到80%-90%左右时,应及时删除db2diag.log文件。
请按以下正确步骤操作:确认应用(如BTP)、DB2已经停止。
将原db2diag.log文件备份到其它文件系统下。
删除db2diag.log文件。删除后,DB2会自动创建一个新的文件。

12、Load 操作
在进行load的时候

db2 "load&nbspfrom&nbspacmmst.txt&nbspof&nbspdel&nbspmodified&nbspby&nbspcoldel|&nbspreplace&nbspinto&nbspacmmst&nbspnonrecoverable ”

由于数据不规范出现错误,强行中断以后,进行操作的时候出现如下错误:

SQL0668NOperation&nbspnot&nbspallowed&nbspfor&nbspreason&nbspcode "3"&nbspon&nbsptable "BTP.ACMMST".

SQLSTATE=57016
此时,进行反方向操作即可:

db2 "load&nbspfrom /dev/null&nbspof&nbspdel&nbspterminate&nbspinto&nbspacmmst&nbspnonrecoverable"。

如果没有使用参数nonrecoverable,则会出现数据库状态不正确的情况,使用:

db2&nbsplist&nbsptablesapces&nbspshow&nbspdetail 查看状态,如果不是正常状态,则脱机状态进行备份即可。

两个表文件之间UPDATE的方法:

db2 "update&nbspcdmcrd&nbspset&nbspoffset = (select&nbspcdmlsl.offset&nbspfrom&nbspcdmlsl&nbspwhere&nbspcdmlsl.crdno=cdmcrd.crdno)&nbspwhere&nbspcdmcrd.crdno&nbspin (select&nbspcdmlsl.crdno&nbspfrom&nbspcdmlsl)
13、多字段条件查询和修改
表A中的字段有actno,&nbspcnlno,bal,pwd;表B中的字段为Actno,Cnlno,TxnAmt;目的是将A表中的bal修改为B表中的TxnAmt,命令:

db2 "update&nbspA&nbspset&nbspbal=(select&nbsptxnamt&nbspfrom&nbspB&nbspwhere&nbspactno=A.actno&nbspand&nbspcnlno=A.Cnlno)&nbspwhere&nbspA.actno||A.cnlno&nbspin (select&nbspActno||cnlno&nbspfrom&nbspB );

14、多条件匹配查询
查询某个表中条件是B?AAA的记录:

db2 "select *&nbspfrom&nbspA&nbspwhere&nbspactno&nbsplike 'B_AAA%'".

查询数据中存在某些字符的记录:

db2 "select *&nbspfrom&nbspA&nbspwhere&nbspactno&nbsplike '%-AAA%".

15、数据库恢复的处理
进行数据库恢复的时候使用以下的命令:
restore&nbspdb&nbspdb1&nbspto /tstdb2/catalog&nbspinto&nbspdb&nbspnewlogpath /tstdb2/db2log&nbspbuffer&nbsp2048

replace&nbspexisting&nbspredirect&nbspparallelism&nbsp16;

set&nbsptablespace&nbspcontainers&nbspfor&nbsp1&nbspusing (path '/tstdb2/db2tmp');

set&nbsptablespace&nbspcontainers&nbspfor&nbsp2&nbspusing

(device '/dev/rtstcontlv00'&nbsp2621440,&nbspdevice '/dev/rtstcontlv01'&nbsp2621440,

device '/dev/rtstcontlv02'&nbsp2621440,&nbspdevice '/dev/rtstcontlv03'&nbsp2621440 )

restore&nbspdb&nbspdb1&nbspcontinue;



恢复完成以后执行命令db2s时报如下的错误:
P570:>db2sSQL1117N&nbspA&nbspconnection&nbspto&nbspor&nbspactivation&nbspof&nbspdatabase "DB"&nbspcannot&nbspbe&nbspmadebecause&nbspof&nbspROLL-FORWARD&nbspPENDING.&nbspSQLSTATE=57019DB21034E&nbspThe&nbspcommand&nbspwas&nbspprocessed&nbspas&nbspan&nbspSQL&nbspstatement&nbspbecause&nbspit&nbspwas&nbspnot&nbspavalid&nbspCommand&nbspLine&nbspProcessor&nbspcommand.&nbspDuring&nbspSQL&nbspprocessing&nbspit&nbspreturned:SQL1024N&nbspA&nbspdatabase&nbspconnection&nbspdoes&nbspnot&nbspexist.&nbspSQLSTATE=08003


解决办法如下:
P570:>db2&nbsprollforward&nbspdb&nbspdb&nbspto&nbspend&nbspof&nbsplogs&nbspand&nbspcomplete

Rollforward&nbspStatus
Input&nbspdatabase&nbspalias =&nbspdb

Number&nbspof&nbspnodes&nbsphave&nbspreturned&nbspstatus =&nbsp1
Node&nbspnumber =&nbsp0

Rollforward&nbspstatus =&nbspnot&nbsppending

Next&nbsplog&nbspfile&nbspto&nbspbe&nbspread =

Log&nbspfiles&nbspprocessed =&nbsp-

Last&nbspcommitted&nbsptransaction =&nbsp2005-11-20-10.59.23.000000
DB20000I&nbspThe&nbspROLLFORWARD&nbspcommand&nbspcompleted&nbspsuccessfully.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值