db2 常用命令


1.数据库的启动、停止
   db2start --启动
   db2stop [force] --停止

2.与数据库的连接、断开
    db2 CONNECT TO DBName [user UserID using PWD] --建立连接
    db2 CONNECT reset /db2 disconnect CURRENT  --断开连接

3.实例的创建、删除
  db2icrt < 实例名称 > --创建 db2 实例
  db2idrop < 实例名称 > --删除 db2 实例
  SET db2intance=db2 --设置当前 db2 实例
  db2ilist --显示 db2 拥有的实例

4.节点、数据库的编目
  db2 list node directory  --查看本地节点目录
  db2 catalog tcpip node <node_name> remote <hostname|ip_address> server <svcname|port_number> ostype <OS2|AIX|WIN95|NT|HPUX|SUN|MVS|OS400|VM|VSE|SCO|SGI|LINUX|DYNIX> --编目一个TCP/IP节点
  db2 uncatalog node <node_name>  --取消节点编目
  db2 catalog DATABASE <db_name> AS <db_alias> AT node <node_name> --编目数据库
  db2 uncatalog DATABASE <db_name>  --取消数据库编目

5.表空间的创建、删除
  db2 CREATE BUFFERPOOL STMABMP IMMEDIATE  SIZE 25000 PAGESIZE 8K --创建缓冲池STMABMP
  db2 DROP tablespace STMABMP --删除表空间
  db2 CREATE  REGULAR TABLESPACE STMA PAGESIZE 8 K  MANAGED BY SYSTEM | DATABASE 
      USING ('D:/DB2Container/Stma' ) EXTENTSIZE 8 OVERHEAD 10.5
      PREFETCHSIZE 8 TRANSFERRATE 0.14 BUFFERPOOL  STMABMP  DROPPED TABLE RECOVERY OFF
      --在D:/DB2Container/Stma下创建系统/数据库管理表空间STMA
  db2 BACKUP DATABASE 数据库别名 TABLESPACE 表空间名 [ONLINE} TO 介质名 --表空间的备份
  db2 list tablespaces show detail  --列出所以表空间信息
  db2 list tablespace containers for SpaceID --列出对应表空间的容器详情

 --修改表空间

  ALTER TABLESPACE 表空间名 RESIZE(FILE '已满的容器名' 更改后容器的大小)

  ALTER TABLESPACE 表空间名 EXTEND(FILE '已满的容器名' 准备增加的大小) --可以是实际大小或者页数

 eg: db2 "alter tablespace HTDC_INDEX EXTEND(file '/home/db2admin/dbback/db2containner/htdc/index/htdc_index' 1024M)"  --(unix系统)将DMS HTDC_INDEX 在扩大1G

6.数据库的创建、删除
  db2 CREATE db DBName [using codeset GBK territory CN] --创建数据库
  db2 DROP db DBName --删除数据库
  db2 list db directory --列出所有数据库目录(包括远程编目的数据库)

  db2 list db directory ON location --如Windows下的C: ,Unix下的/home/db2inst1(本地数据库)

  db2 list active databases --列出活动的数据库和连接数

7.表的创建、删除
  DROP TABLE TableName ; --删除表
  CREATE TABLE TableName
  ( 字段名 数据类型 ,
  PRIMARY KEY (字段名)
  )IN Space1 INDEX IN Space2 ; --创建表(表空间Space1存放数据,Space2存放索引)

  ALTER TABLE TableName VOLATILE CARDINALITY; --将表TableName设置为易失表

  db2 list tables ;
  db2 list tables FOR USER /ALL /system / SCHEMA SchemaName [show detail] ;
  --列出数据库中的表如果没有指定任何参数,则缺省情况是列出当前用户的表

  db2 describe TABLE TableName ; 

  db2 describe SELECT * FROM tables ; --查看表结构


8.索引的创建、删除
  DROP INDEX Index_Name ; --删除索引
  CREATE INDEX Index_Name ON TableName(F1) ; --对表TableName的F1字段创建索引Index_Name
  db2 describe indexes FOR TABLE TableName ; --查看表TableName的索引

  db2 describe indexes FOR TABLE TableName show detail;
  db2 SELECT INDNAME,COLNAMES FROM syscat.indexes WHERE tabname = 'TableName';

9.视图的创建、删除
  DROP VIEW ViewName ;  --删除视图
  CREATE VIEW ViewName(×,××) AS SELECT ×,×× FROM TableName WHERE ×××; --创建视图

10.数据库的备份、恢复(详见浅谈IBM DB2的数据库备份与恢复一文)

--离线备份
  db2 force applications all --断开所有连接

  db2 force application(h1,h2……) --杀死与欲备份数据库相连接的进程
  db2 backup db DBName [to d:/db2_backup] [use TSM] --离线备份
   --在线、增量备份
  --前提:更改数据库参数 logretain, userexit, trackmod 为 on,之后数据库处于backup pending状态,要完全离线备份数据库一次,之后就可以进行在线、在线增量备份了。
  db2 update db cfg using logretain on userexit on trackmod on --启用相关参数

--归档路径
   DB2 UPDATE DATABASE CONFIGURATION USING LOGARCHMETH1 DISK:D:/DB2/  IMMEDIATE

 --LOGARCHMETH1参数改成TSM
    DB2 UPDATE DATABASE CONFIGURATION USING LOGARCHMETH1 TSM  IMMEDIATE

  db2 backup db DBName [to d:/db2_backup] [use TSM] --离线备份
  db2 backup db DBName online [to d:/db2_backup] [use TSM] --在线线备份
  db2 backup db DBName online incremental [to d:/db2_backup] [use TSM] --在线增量备份

--数据库恢复

db2 restore db DBname [incremental] [FROM d:/db2_backup][use TSM] taken AT YYYYMMDDHHMMSS

  --恢复 (时间戳记:YYYYMMDDHHMMSS)
  db2 list history backup [since YYYYMMDDHHMMSS] ALL FOR DBName

   --查看 [从YYYYMMDDHHMMSS] 对DBName的备份情况
   db2 ROLLFORWARD DATABASE DBName TO END OF LOGS AND COMPLETE NORETRIEVE--将暂挂的数据恢复到前滚状态
  db2 ROLLFORWARD DATABASE DBName TO END OF LOGS AND COMPLETE OVERFLOW LOG PATH ("C:/DBName.0/SQLOGDIR")

  db2 CONNECT TO DBName
  db2 prune history YYYYMMDDHHMMSS --删除DBName YYYYMMDDHHMMSS之前的备份记录

11.数据的导出、导入
  --导出
  db2 EXPORT TO D:/TableName.txt OF del SELECT * FROM SCHEMA.TableName --文本格式

 db2 EXPORT TO D:/TableName.csv OF del SELECT * FROM SCHEMA.TableName --csv可转为excel
 db2 EXPORT TO D:/TableName.ixf OF ixf SELECT * FROM SCHEMA.TableName

  --导出数据(IXF 集成通用交换格式)
  db2 EXPORT TO "D:/TableName.data" OF IXF MESSAGES "D:/TableName.msg" SELECT * FROM SCHEMA.TableName;
  --导入
  db2 IMPORT FROM D:/TableName.txt OF del INSERT INTO SCHEMA.TableName
  db2 IMPORT FROM "D:/TableName.data" OF IXF [MESSAGES "D:/TableName.msg"] [COMMITCOUNT 1000] INSERT/CREATE  INTO SCHEMA.TableName;
  db2 IMPORT FROM "D:/TableName.ixf" OF IXF [COMMITCOUNT 1000] INSERT/INSERT_UPDATE/CREATE/REPLACE/REPLACE_CREATE INTO SCHEMA.TableName;

  IMPORT FROM file_name OF file_type MESSAGES message_file
  [ INSERT | INSERT_UPDATE | REPLACE | REPLACE_CREATE | CREATE ]
  INTO target_table_name
 
  *INSERT 选项将导入的数据插入表中。目标表必须已经存在。
  *INSERT_UPDATE 将数据插入表中,或者更新表中具有匹配主键的行。目标表必须已经存在,并且定义了一个主键。
  *REPLACE 选项删除所有已有的数据,并将导入的数据插入到一个已有的目标表中。
  *使用 REPLACE_CREATE 选项时,如果目标表已经存在,则导入实用程序删除已有的数据,并插入新的数据,就像 REPLACE 选项那样。如果目标表还没有定义,那么首先创建这个表以及它的相关索引,然后再导入数据。正如您可能想像的那样,输入文件必须是 PC/IXF 格式的文件,因为那种格式包含对导出表的结构化描述。如果目标表是被一个外键引用的一个父表,那么就不能使用 REPLACE_CREATE。
  *CREATE 选项首先创建目标表和它的索引,然后将数据导入到新表中。该选项惟一支持的文件格式是 PC/IXF。还可以指定新表所在表空间的名称(IN datatbsp INDEX IN indtbsp)。

 

12.存储过程的编译与运行
  db2 -td@ -vf ProcedureName.sql/.db2 --编译
  db2 call ProcedureName --运行

13.批处理文件
  db2 -tvf FileName.sql

14.快速清除、装入大表数据
  ALTER TABLE TableName activate NOT logged initially WITH empty TABLE ; --不记日志

  DECLARE C1 CURSOR FOR SELECT × × × × FROM TableName1;
  LOAD FROM C1 OF CURSOR INSERT INTO TableName2(××××) nonrecoverable; --不记日志

  DB2 LOAD QUERY TABLE SCHEMA.TableName; --查看目标表load状态(正在装入/正常)

15.优化表
  select 'runstats on table DB2ADMIN.'||rtrim(name)||' and indexes all;'
  from sysibm.systables
  where creator = 'DB2ADMIN' and Type = 'T'; --获取优化语句

  db2 runstats on table DB2ADMIN.TableName and indexes all; --优化语句

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值