| 网站首页 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛 |
 
| 技术教程首页 | 开发语言 | WEB开发 | .NET技术 | 数据库 | 操作系统 | 网页制作 |
 
 
您现在的位置: 编程中国 >> 技术教程 >> 数据库 >> Oracle >> 正文
  ►  DB2数据库部分日常实用操作
DB2数据库部分日常实用操作
作者:未知    阅读人次:……    文章来源:天极Yesky软件频道    发布时间:2007-9-5    网友评论()条
 

 

  11、如何清理db2diag.log文件

  db2diag.log,是用来记录DB2数据库运行中的信息的文件。可以通过此文件,查看记录的有关DB2数据库详细的错误信息。此文件也是不断增大的,需要定期进行清理。

  可以通过查看实例的配置参数DIAGPATH,来确定db2diag.log文件是放在哪个目录下:db2 get dbm cfg 如果Diagnostic data directory path(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 from acmmst.txt of del modified by coldel| replace into acmmst nonrecoverable ”

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

  SQL0668NOperation not allowed for reason code "3" on table "BTP.ACMMST".

  SQLSTATE=57016

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

  db2 "load from /dev/null of del terminate into acmmst nonrecoverable"。

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

  db2 list tablesapces show detail 查看状态,如果不是正常状态,则脱机状态进行备份即可。

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

  db2 "update cdmcrd set offset = (select cdmlsl.offset from cdmlsl where cdmlsl.crdno=cdmcrd.crdno) where cdmcrd.crdno in (select cdmlsl.crdno from cdmlsl)

  13、多字段条件查询和修改

  表A中的字段有actno, cnlno,bal,pwd;表B中的字段为Actno,Cnlno,TxnAmt;目的是将A表中的bal修改为B表中的TxnAmt,命令:

  db2 "update A set bal=(select txnamt from B where actno=A.actno and cnlno=A.Cnlno) where A.actno||A.cnlno in (select Actno||cnlno from B );

  14、多条件匹配查询

  查询某个表中条件是B?AAA的记录:

  db2 "select * from A where actno like 'B_AAA%'".

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

  db2 "select * from A where actno like '%-AAA%".

  15、数据库恢复的处理

  进行数据库恢复的时候使用以下的命令:

以下是引用片段:
  restore db db1 to /tstdb2/catalog into db newlogpath /tstdb2/db2log buffer 2048
  replace existing redirect parallelism 16;
  set tablespace containers for 1 using (path '/tstdb2/db2tmp');
  set tablespace containers for 2 using
  (device '/dev/rtstcontlv00' 2621440, device '/dev/rtstcontlv01' 2621440,
  device '/dev/rtstcontlv02' 2621440, device '/dev/rtstcontlv03' 2621440 ) ;
  restore db db1 continue;

  恢复完成以后执行命令db2s时报如下的错误

 

以下是引用片段:
 P570:>db2s
  SQL1117N A connection to or activation of database "DB" cannot be made
  because of ROLL-FORWARD PENDING. SQLSTATE=57019
  DB21034E The command was processed as an SQL statement because it was not a
  valid Command Line Processor command. During SQL processing it returned:
  SQL1024N A database connection does not exist. SQLSTATE=08003

  解决办法如下:

  

以下是引用片段:
P570:>db2 rollforward db db to end of logs and complete
  Rollforward Status
  Input database alias = db
  Number of nodes have returned status = 1
  Node number = 0
  Rollforward status = not pending
  Next log file to be read =
  Log files processed = -
  Last committed transaction = 2005-11-20-10.59.23.000000
  DB20000I The ROLLFORWARD command completed successfully.

上一页  [1] [2] 

 

 
文章录入:编辑01    责任编辑:编辑01 
  • 上一篇文章:

  • 下一篇文章:

  •  
    相关文章
    原创地带
    24小时热门帖子