db2

[color=red]select tabname from syscat.tables where tabschema = current schema
[/color]
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 remote server ostype --编目一个TCP/IP节点 db2 uncatalog node --取消节点编目 db2 catalog DATABASE AS AT node --编目数据库 db2 uncatalog DATABASE --取消数据库编目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 在扩大1G6.数据库的创建、删除 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.sql14.快速清除、装入大表数据 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 yes18.创建临时表空间 db2 CREATE USER TEMPORARY TABLESPACE STMASPACE PAGESIZE 32 K MANAGED BY DATABASE USING (FILE 'D:\DB2_TAB\STMASPACE.F1' 10000) EXTENTSIZE 25619.创建临时表 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 INIALLY24.测试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 Row26.如何修改缓冲池 db2 alter bufferpool ibmdefaultbp size 1024027.如何知道DB2的数据类型 select * from sysibm.sysdatatypes28.如何知道BUFFERPOOLS状况 select * from sysibm.sysbufferpools29.查询出用户表 SELECT * FROM SYSIBM.SYSTABLES WHERE CREATOR='USER'30.如何知道当前DB2的版本 select * from sysibm.sysversions31.如何知道TABLESPACE的状况 select * from sysibm.SYSTABLESPACES32."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 orall table information is stored in syscat.tables view db2 select * from syscat.tables where tabschema= or simply db2 select * from syscat.tables order by tabschema, tabnamesimilarly, all column information is stored in syscat.columns db2 select * from syscat.columns where tabname=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 阅读全文 类别: 0顶一下
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值