DB2常用指令

--Title:DB2 常用命令
--Date:2008-6-26
--注:在【开始】->【运行】中输入 db2cw 或 db2cmd 进入 DB2 CLP,db2ce 进入命令编辑器,db2cc进入控制中心
---------------------------------------------------------------------------------------------------------------------------------------------
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 [email protected] -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; --优化语句

16.应用连接
db2 list application(s)[ FOR db DBName ] [show detail] --返回关于当前连接的应用程序的信息
db2 force application (h1 [,h2,..,hn]) --根据句柄号与特定应用程序断开连接 
db2 force application all --断开所有应用程序与数据库的连接
db2 terminate --结束命令行对话

17. 设置联合数据库为可用(默认联合数据库不可用) 
db2 update dbm cfg using federated yes

18.创建临时表空间
db2 CREATE USER TEMPORARY TABLESPACE STMASPACE PAGESIZE 32 K MANAGED BY DATABASE USING (FILE ‘D:\DB2_TAB\STMASPACE.F1‘ 10000) EXTENTSIZE 256

19.创建临时表
DECLARE GLOBAL TEMPORARY TABLE 语句来定义临时表。DB2的临时表是基于会话的,且在会话之间是隔离的。当会话结束时,临时表的数据被删除,临时表被隐式卸下。对临时表的定义不会在SYSCAT.TABLES中出现.
eg: DECLARE GLOBAL TEMPORARY TABLE SESSION.Temp_K_Cig (Cig varchar(20)) WITH REPLACE NOT LOGGED on commit preserve rows;

20.修改日志文件大小、数目
db2 UPDATE DB CFG FOR DBName USING LOGFILSIZ 6000 ; --日志文件大小
db2 UPDATE DB CFG FOR DBName USING LOGPRIMARY 5 ; --日志文件数目
db2 UPDATE DB CFG FOR DBName USING LOGSECOND 25 ; --辅助日志文件数目

21.如何重新启动数据库?
 db2 RESTART DB DBName ; --重新启动数据库
 db2 ACTIVATE DB DBName ; --激活数据库
 db2 DEACTIVATE DB DBName ; --停止数据库

22.查看错误代码
 db2 ? SQL *** eg:DB2 ? SQL803
 db2 ? db2-command -- 关于指定命令的帮助
 db2 ? help --有关阅读帮助屏幕的指示信息
 db2 ? OPTIONS -- 关于所有命令选项的帮助

23.如何关闭表的日志
ALTER TABLE TABLE_NAME ACTIVE NOT LOGGED INIALLY

24.测试SQL的执行性能
db2batch -d DB_NAME -f select.sql -r benchmark.txt -o p3 --select.sql是select语句写在文件中

25.查看当前应用号的执行状态
db2 get snapshot for application agentid 299 |grep Row

26.如何修改缓冲池
db2 alter bufferpool ibmdefaultbp size 10240

27.如何知道DB2的数据类型
select * from sysibm.sysdatatypes

28.如何知道BUFFERPOOLS状况
select * from sysibm.sysbufferpools

29.查询出用户表
SELECT * FROM SYSIBM.SYSTABLES WHERE CREATOR=‘USER‘

30.如何知道当前DB2的版本
select * from sysibm.sysversions

31.如何知道TABLESPACE的状况
select * from sysibm.SYSTABLESPACES

32."SQL1032N 未发出启动数据库管理器的命令。 SQLSTATE=57019"的解决办法
(1).License到期,在命令行下用 db2licm -l 查看是否到期;
(2).用来启动服务的用户名或密码错误,(如我们更改了登录系统的密码),解决办法(Windows系统):在控制面板->管理工具->服务中对相关DB2服务选项【属性】中修改【登录】的用户名或密码。

33.表空间、表大小计算

表空间:页大小(字节)*总页数
:(1):runstats 之后,用select npages from syscat.tables where TABNAME=‘TableName‘得到npages,再用npages×表空间页大小
       (2):在控制中心中,选择要查看的表,选择“估计大小”查看,索引大小同.

34。查看某模式下的表

db2 list tables for schema <schema name>

or

all table information is stored in syscat.tables view
db2 select * from syscat.tables where tabschema=<schema name>
or simply
db2 select * from syscat.tables order by tabschema, tabname

similarly, all column information is stored in syscat.columns
db2 select * from syscat.columns where tabname=<table name>

35.查看存储过程信息

SELECT * FROM SYSCAT.PROCEDURES; 
--如查看DB2ADMIN模式下的存过名称、编号、建立时间等
SELECT PROCNAME,PROCEDURE_ID,CREATE_TIME,TEXT
FROM SYSCAT.PROCEDURES
where procschema=‘DB2ADMIN‘

36.系统表中查看表、索引、表空间信息

--索引的名称、所属表、表空间
SELECT name,creator,tbname,tbcreator,colnames,colcount,tbspaceid,
       uniquerule,iid,create_time
FROM sysibm.sysindexes [WHERE NAME LIKE ‘IDX_%‘];
--索引信息
select * from sysibm.sysindexcoluse [where indname like ‘IDX_%‘]

--表信息
SELECT name,creator,colcount,tbspace,index_tbspace,ctime
FROM sysibm.systables [WHERE NAME LIKE ‘%2007%‘];

SELECT * FROM syscat.tables;
SELECT * FROM sysibm.systables ;

--表空间信息
SELECT * FROM sysibm.systablespaces;
SELECT * FROM syscat.tablespaces;

--查找数据库管理表空间(DMS)
SELECT TBSpace FROM syscat.tablespaces WHERE TBSpaceType = ‘D‘ ;

--视图信息
SELECT * FROM sysibm.sysviews;
--查看表的数据表空间、索引、索引表空间
SELECT c.TbName,c.tbspace,c.IndName,d.tbspace
FROM 
     (SELECT a.NAME TbName,a.tbspace tbspace,b.NAME IndName,b.tbspaceid tbspaceid
      FROM sysibm.systables a,
          sysibm.sysindexes b
      WHERE a.name=b.tbname [AND   a.NAME LIKE ‘K_%‘]
      ) AS c LEFT JOIN sysibm.systablespaces d
on c.tbspaceid = d.tbspaceid ;

或 
SELECT c.TbName 表名,c.tbspace 数据表空间,c.IndName 索引,d.tbspace 索引表空间
FROM 
     (SELECT a.NAME TbName,a.tbspace tbspace,b.NAME IndName,b.tbspaceid tbspaceid
      FROM sysibm.systables a JOIN 
          sysibm.sysindexes b
      on a.name=b.tbname [ AND a.NAME LIKE ‘K_%‘ ]) AS c LEFT JOIN sysibm.systablespaces d
on c.tbspaceid = d.tbspaceid ;

37.db2look 导出脚本信息

可用于导出表、索引、试图、存过、触发器等脚本,可在命令行下用db2look ?查看相应参数信息。
如:
db2look -d DBTEST -z DB2ADMIN -e -c >db2look_db2admin.sql
db2look -d DBTEST -z DB2ADMIN -e -c -o db2look_db2admin.sql
db2look -d DBTEST -z DB2ADMIN -i db2admin -w db2icss -e -c - o db2look_db2admin.sql

ALTER TABLE 表名  ALTER COLUMN "字段名"
    SET DATA TYPE VARCHAR (200);

DB2常用指令

时间: 2024-08-21 20:38:46

DB2常用指令的相关文章

JSP 的内置对象及方法,动作和作用,常用指令

JSP 的内置对象及方法:JSP 共有以下9 种基本内置组件:request:用户端请求,此请求会包含来自GET/POST 请求的参数:response:网页传回用户端的回应:pageContext:网页的属性是在这里管理:session:与请求有关的会话期,可以存贮用户的状态信息:application:servlet 正在执行的内容:out:用来传送回应的输出:config:servlet 的构架部件,用于存取servlet 实例的初始化参数:page:JSP 网页本身:exception:

Angular JS从入门基础 mvc三层架构 常用指令

Angular JS从入门基础  mvc模型 常用指令 ★ 最近一直在复习AngularJS,它是一款优秀的前端JS框架,已经被用于Google的多款产品当中.AngularJS有着诸多特性,最为核心的是:MVC.模块化.自动化双向数据绑定.语义化标签.依赖注入等等. 1.常用指令 AngularJS 通过指令扩展了HTML,且通过表达式绑定数据到 HTML.下面我们看一下AngularJS中的常用指令. (1).基本概念 指令:AngularJS中,通过扩展HTML的属性提供功能.所以,ng-

Angular 2 模板语法与常用指令简介

一.模板语法简介 插值表达式 <div>Hello {{name}}</div> 等价于 <div [textContent]="interpolate(['Hello'], [name])"></div> 模板表达式 1.属性绑定 1.1输入属性的值为常量 <show-title title="Some Title"></show-title> 等价于 <show-title [titl

【Mysql】常用指令之——忘记密码

上一篇文章基本总结了下myql下通过指令怎么创建用户,详见:[Mysql]常用指令之--用户操作(创建,授权,修改,删除) 今天说下特殊情况,忘记密码了怎么办??? 重装,删除配置等可以完成此操作.那不重装怎么办呢? 原理: 通过增加启动参数:--skip-grant-tables 跳过grant-tables启动数据库,这样就不需要密码就能进去了. 下面来玩玩: linux下: 1.关闭mysql进程,应该都会哈比如:service mysql stop 或者 ps -ef | grep my

sort,uniq,cut常用指令

sort: 排序所有指定文件并将结果写到标准输出. -u:去除重复行 -r:反向排序 -n:数值排序从小到大 -t:指定分段的符号 -k:指定的第几个段 -b:忽略所有空白行  [[email protected] ~]# sort Andy.txt 1 2 2 34 56 accp benet I'm sorry, Mr. Three pineapple Two watermelon Water on the refrigerator [[email protected] ~]# sort -

linux下svn常用指令

windows下的TortoiseSVN是资源管理器的一个插件,以覆盖图标表示文件状态,几乎所以命令都有图形界面支持,比较好用,这里就不多说.主要说说linux下svn的使用,因为linux下大部分的操作都是通过命令行来进行,所以必须得掌握linux下svn的常用指令.当然linux下也有模仿TortoiseSVN的linux X程序,例如RabbitVCS,模仿程度很高,但很容易拖慢X,因此不推荐. (如果是第一次提交文件,很可能会出现"svn:'.'不是工作副本",即当前目录不是工

走进AngularJs(二) ng模板中常用指令的使用方式

通过使用模板,我们可以把model和controller中的数据组装起来呈现给浏览器,还可以通过数据绑定,实时更新视图,让我们的页面变成动态的.ng的模板真是让我爱不释手.学习ng道路还很漫长,从模板开始入手是个不错方式,因为这部分内容相对简单好理解,而且是视图层的东西,大家都喜欢可以立马看得见的东西嘛.本篇我将搜罗模板中的常用指令一一测试,了解其使用方法,有点像背单词的感觉,会比较枯燥.不过对于初学,这样的枯燥是必须要经历的,开始~ 一.模板中可使用的东西及表达式 模板中可以使用的东西包括以下

DOS批处理之常用指令(一)

常用指令:echo指令.@指令.call指令.pause指令.rem指令 echo指令: 语法:echo [on|off] [Message] 功能: 显示消息.打开或关闭所有指令的回显功能.显示现在的回显设置. ①使用没有任何参数的echo用来查看当前回显设置 echo  ②加参数(Message)用来显示消息 echo Hello,DOS     ③加参数来打开(on)或关闭(off)回显 echo off       echo echo完整示例:        echo        ec

jsp的常用指令有哪些(编译指令/动作指令整理)

jsp的常用指令有哪些(编译指令/动作指令整理) JSP动作指令 JSP - JSP中的脚本.指令.动作和注释