DB2日常运维

  1. 查看数据库占用空间:
db2 "call get_dbsize_info(?,?,?,0)"

除此方法外,可通过db2top工具进入表空间页面查看数据库空间大小。

  1. 查看某个表属于哪一个表空间:
db2 "select tbspace from syscat.tables where tabname='<tablename>'"
  1. 查看某个表空间里包含哪些表:
db2 "select tabname from syscat.tables where tbspace='<tablespacename>'"
  1. 查看某个表建立了哪些索引以及建立在哪些列上(数据库默认会给键值建立系统索引):
db2 describe indexes for table <tablename>
db2 "select substr(indname,1,50) as indname,substr(colnames,1,50) as colnames from syscat.indexes where tabname='<tablename>'"
  1. 查看用户定义的模式:
db2 "select schemaname from syscat.schemata where definertype='U'"
  1. 查看某个模式下包含哪些表:
db2 list tables for schema <schema_name>
  1. 查看某个表空间使用哪个Bufferpool:
db2 "select char(bpname,16) as Bufferpool from syscat.bufferpools where BUFFERPOOLID = (select BUFFERPOOLID from syscat.tablespaces where tbspace='CZICR8K')"
  1. 往数据库循环插入数据:
db2 "create table t1(col1 char(100),col2 char(100))"
db2 "begin atomic declare i int default 0; while (i<10) do insert into icrcinst.t1values('aaa' || varchar(i), 'bbb' || varchar(i));set i=i+1; end while;end"
  1. 查看某张表的数据大小:
db2 "select data_obj_l_size,data_object_p_size,dictionary_size from
sysibmadm.admintabinfo where tabname=<tablename>"

如果在(A,B)字段上创建一个索引,当查询条件包含A,或者A与B,那么可以有效地使用索引。但是如果条件中仅仅包含B,那么索引并不能带来效率上的提升。所以在建立索引时要根据常用查询来定义。

  1. 实例目录被删或破坏,重新编目:
    重建实例并不会删除数据库,但实例目录保存的数据库编目信息都会丢失,因此无法进行数据库连接。可考虑对本地数据库重新编目。
db2 catalog db<db_name> on <db_path>  
<db_path>是数据库目录

建议对实例目录进行备份。

Editing is enabled. Use the "Save changes" button below the editor to commit modifications to this file.