文档库 最新最全的文档下载
当前位置:文档库 › db2命令记录(一)

db2命令记录(一)

db2命令记录(一)
db2命令记录(一)

第一.请问高手,如何查看tablespace里包含哪些表?

select tabschema,tabname from syscat.tables where tbspace='TABLESPACEA' and type='T' 这里的TABLESPACEA具体情况定,如用USERSPACE1(158.222.2.110)

第二.

DB2 CLP

从DOS进入db2cmd

db2cmd

在本地DB2数据库添加一个远程结点

db2 catalog tcpip node xdzx1 remote 155.222.2.110 server 60064

db2 catalog database xdzx1 at node xdzx1

查看版本信息

db2licm -l

启动,停止db2数据库

db2admin start db2admin stop

db2start db2stop

执行存储过程

db2 " call p01_acct_depacct_y('2007-4-15',?,?)"

创建t01_acct_depacct_y表,in dms_data 代表数据存在dms_data命名空间 index in dms_idx代表索引创建在dms_idx里面

create table t01_acct_depacct_y

(

record_date DATE not null,

etl_date DATE,

dep_acct_no CHAR(15) not null,

curr_cd CHAR(3) not null,

curr_iden CHAR(1) not null,

bank_no CHAR(6) not null,

summary_bank_no CHAR(6),

xyz_no CHAR(2),

dep_categ CHAR(1),

acct_name VARCHAR(160),

acct_short_name VARCHAR(60),

busi_typ CHAR(3),

assu_busi_typ CHAR(2),

dep_term INT,

open_date DATE,

close_date DATE,

cust_open_date DATE,

dep_bal_tsum DEC(24,2),

dep_bal_msum DEC(24,2),

dep_bal_qsum DEC(24,2),

dep_bal_qend_ysum DEC(24,2),

year_dep_amt DEC(17,2),

year_dep_cnt INT,

year_oth_amt DEC(17,2),

year_oth_cnt INT,

year_d_sum DEC(17,2),

year_c_sum DEC(17,2),

year_d_cnt INT,

year_c_cnt INT,

constraint P_pk01_acct_saacct primary key (record_date, dep_acct_no, curr_cd, curr_iden)

)

in dms_data

index in dms_idx

获取数据库中现有存储过程

select substr(procschema,1,15),substr(procname,1,15) from syscat.procedures; select * from syscat.procedures where procschema='XXGL'

获取当前时间

select current time from (values 1) as test;

select current date from (values 2) as test;

select (current_date)- 2 year,(current_date)+ 1 day,current_timestamp + 1 hour from (values 1) test

在列中查询以删除重复的记录

我们有一个表,字段A有重复的记录,我们想要编写一个SQL 查询来让字段A作为主键。在这样的情况下,我们需要一个删除查询来删除重复的记录,这样字段A才能具有惟一的数值。

要删除重复的数据行,可以使用如下的语句:

DELETE FROM my_table

WHERE rowid NOT IN ( SELECT MAX(ROWID) FROM my_table

GROUP BY colA,colB,colC );

在GROUP BY子句中,列出你的表中所有的字段,或者你认为应该成为主键字段的字段。子查询可以得到这些分组的最大行id。DELETE可以删除所有这些行id的数值。

将表中数据导出到文件(.del,.xls,.txt)

方法一:

export to of del select * from

方法二:shell里面操作

select * from

>

将文件中数据导入到表中:

db2 "import from *.txt of del insert into 表"

建表的时候可以设置列为自动增长的

CREATE TABLE T1 (

ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 0, INCREMENT BY 1, NO CACHE ),

PRIMARY KEY ( ID) ) ;

在DB2/400中如何检索一个表名中含有'.'号的表

例如:

如果直接strsql->

SELECT * FROM ABIS/ABC.ABC

系统将会报错:“Token . was not valid.“

解决的方法是用双引号将'.'括起来

SELECT * FROM ABIS/"ABC.ABC"

即可。

如果库名也是这种情况,一样处理即可

SELECT * FROM ABIS/ABC.ABC

在AS400中不应该这样写的。如果ABC是一个数据库那么你应该这样写

SELECT * FROM ABIS/ABC

如何提高IMPORT命令的性能

1

如果是在分区数据库的环境下,可以利用Buffered Insert来提高IMPORT的性能:

在执行IMPORT命令前,要先用INSERT BUF参数重新绑定IMPORT命令对应的绑定文件db2uimpm.bnd 。

例如:

db2 connect to 数据库名

db2 bind db2uimpm.bnd blocking all insert buf

db2uimpm.bnd在..sqllib\bnd目录下。

2

执行IMPORT命令时使用COMPOUND参数:

例如:

db2 connect to 数据库名

db2 import from 数据文件名 of ixf modified by compound=100 insert into 表名

上面的命令中IMPORT会在每100条记录而不是每条记录插入后等待返回的SQL执行结果。

3

如果表中已有数据,将表的属性修改为APPEND MODE也可以加快IMPORT的性能。

添加实例instaince

创建实例时的 UNIX 详细信息

当使用 UNIX 操作系统时, db2icrt 命令具有下列可选的参数:

-h 或 -?

此参数用于显示此命令的帮助菜单。

-d

此参数设置在确定问题期间要使用的调试方式。

-a AuthType 7 此参数指定该实例的认证类型。有效的认证类型是 SERVER、SERVER_ENCRYPT 或 CLIENT。如果未指定此参数,且如果安装了 DB2 Universal Database(TM)(DB2 UDB)(DB2 通用数据库)服务器,则缺省值为 SERVER。否则,将它设置为 CLIENT。

注:

该实例的认证类型适用于实例拥有的所有数据库。 7 在 UNIX 操作系统上,认证类型 DCE 不是有效的选项。 7 -u FencedID

此参数是受防护的用户定义的函数(UDF)和存储过程执行期间所归属的用户。如果安装了 DB2 UDB 客户机或“DB2 UDB 应用程序开发客户机”,则不需要此参数。对于其它 DB2 UDB 产品,这是必需参数。

注:

FencedID 不能是“root”或“bin”。

-p PortName

此参数指定要使用的 TCP/IP 服务名称或端口号码。对于实例中的每个数据库,将在实例的数据库配置文件中设置此值。

-s InstType

允许创建不同类型的实例。有效的的实例类型是:ese、wse、client 和 standalone。

示例:

要为 DB2 UDB 服务器添加实例,您可以使用下列命令:

db2icrt -u db2fenc1 db2inst1

若只安装了 DB2 Connect 企业版,也可将该实例名用作 Fenced ID:

db2icrt -u db2inst1 db2inst1

要为 DB2 UDB 客户机添加实例,您可以使用下列命令:

db2icrt db2inst1 -s client -u fencedID

当要让一个工作站与其它数据库服务器连接,且该工作站上不需要本地数据库时,创建 DB2 UDB 客户机实例。

列出实例信息

db2ilist

获取当前会话所在的实例

db2 get instance

除去实例

db2idrop

更新实例配置

db2iupdt InstName

在 UNIX 上更新实例配置

运行 db2iupdt 命令,并执行以下操作来更新指定的实例:

替换实例所有者主目录下 sqllib 子目录中的文件。

若更改了节点类型,则会创建一个新的数据库管理器配置文件。为此,可将现有的数据库管理器配置文件的相关值与新节点类型的缺省数据库管理器配置文件合并。若创建了一个新的数据库管理器配置文件,则将旧文件备份到实例所有者主目录下的 sqllib 子目录的 backup 子目录中。

过程

2 db2iupdt 命令可在 2 AIX 上的/usr/opt/db2_08_01/instance/ 2 目录中找到。db2iupdt 命令可在HP-UX、Solaris Operating Environment 或Linux 上的/opt/IBM/db2/V8.1/instance/ 目录中找到。

按如下所示使用该命令:

db2iupdt InstName

InstName 是实例所有者的登录名。

此命令还有其它可选的参数:

-h 或 -?

显示此命令的帮助菜单。

-d

设置在问题确定期间要使用的调试方式。

-a AuthType

指定实例的认证类型。有效的认证类型是 SERVER、SERVER_ENCRYPT 或 CLIENT。若未指定此参数,且若已安装了 DB2 服务器,则缺省值为 SERVER。否则,将它设置为 CLIENT。该实例的认证类型适用于实例拥有的所有数据库。

-e

允许更新存在的每个实例。可以使用 db2ilist 来显示存在的实例。

-u Fenced ID

命名受防护的用户定义的函数(UDF)和存储过程执行期间所归属的用户。若安装了 DB2 客户机或“DB2 软件开发者工具箱”,则不需要这样做。对于其它 DB2 产品,它是必需参数。

注:

受防护标识不能是“root”或“bin”。

-k

此参数保留当前实例类型。若不指定此参数,当前实例将按以下顺序升级到可用的最高实例类型:

具有本地和远程客户机的分区数据库服务器(DB2 扩充企业版缺省实例类型)

具有本地和远程客户机的数据库服务器(DB2 通用数据库企业服务器版缺省实例类型)

客户机(DB2 客户机缺省实例类型)

示例:

如果在创建实例后安装了 DB2 通用数据库工作组服务器版或 DB2 通用数据库企业服务器版,可输入以下命令来更新该实例:

db2iupdt -u db2fenc1 db2inst1

若在创建实例后安装了 DB2 Connect 企业版,也可将该实例用作 Fenced ID:

db2iupdt -u db2inst1 db2inst1

要更新客户机实例,可使用以下命令:

db2iupdt db2inst1

连接至数据库管理器的另一个实例

连接至数据库管理器的另一实例

要与另一个可能是远程的实例连接,使用 ATTACH 命令。

先决条件

必须存在多个实例。

过程

要使用“控制中心”连接至数据库管理器的另一实例:

展开对象树,直到您看到实例文件夹为止。

单击您想要连接的实例。

右键单击选择的实例名。

在“连接 DB2”窗口中,输入用户标识和密码,并单击确定。

要使用命令行来与实例连接,输入:

db2 attach to

例如,要连接至节点目录中先前编目的称为 testdb2 的实例:

db2 attach to testdb2

在对 testdb2 实例执行维护活动之后,可通过运行以下命令从该实例拆离( DETACH ):

db2 detach

配置 DAS

过程

要查看与 DAS 相关的 DB2 管理服务器配置参数的当前值,输入:

db2 get admin cfg

它显示在安装该产品期间指定为缺省值的当前值,或在先前更新配置参数期间指定的那些值。

1 为了使用“命令行处理器”(CLP)和 UPDATE ADMIN CONFIG 1 来更新 DAS 配置文件,必须从与 DAS 具有相同安装级别的实例使用 CLP。要更新 DAS 配置文件中的各个条目,输入:

db2 update admin cfg using ...

要将配置参数复位为建议的缺省值,输入:

db2 reset admin cfg

在某些情况下,对 DAS 配置文件的更改仅在将更改装入内存后才生效(即在执行 db2admin stop 之后,再执行 db2admin start 时生效;或对于 Windows 平台,在停止并启动该服务时生效)。在其它情况下,配置参数是可联机配置的(即不必重新启动 DAS 就可以使更改生效)。

查看本地或系统数据库目录文件

db2 list database directory

添加修改DMS容器

要使用命令行来向 DMS 表空间添加容器,输入:

ALTER TABLESPACE

ADD (DEVICE '' , FILE '' )

以下示例举例说明如何将两个新设备容器(各含 10 000 页)添加至 UNIX 系统上的一个表空间中:

ALTER TABLESPACE RESOURCE

ADD (DEVICE '/dev/rhd9' 10000,

DEVICE '/dev/rhd10' 10000)

注意,ALTER TABLESPACE 语句允许更改可以影响性能的表空间的其它属性。

还可以从 DMS 表空间中删除现有容器,减少 DAS 表空间中现有容器的大小以及将新容器添加至 DMS 表空间而不需要在所在容器间重新平衡数据。

仅当正在删除或缩小其大小的数据块数目小于或等于表空间中上限标记之上的可用数据块数目时,才允许删除现有表空间容器以及缩小现有容器的大小。上限标记是表空间中分配的最高页的页数。此标记与表空间中已使用的页的数目不同,原因是上限标记之下的某些数据块可能可供重新使用。

表空间中上限标记之上的可用数据块数非常重要,原因是直至上限标记(包括上限标记)的所有数据块必须位于表空间内的同一逻辑位置。结果表空间必须有足够的空间才能容纳所有数据。如果没有足够的可用空间,则会产生一条错误消息(SQL20170N 或 SQLSTATE 57059)。

要删除容器,可在 ALTER TABLESPACE 语句上使用 DROP 选项。例如:

ALTER TABLESPACE TS1 DROP (FILE 'file1', DEVICE '/dev/rdisk1')

要缩小现有容器的大小,可使用 RESIZE 选项或 REDUCE 选项。使用 RESIZE 选项时,作为语句的一部分列示的所有容器都必须增大大小或减小大小。不能在同一语句中增大某些容器而缩小其它容器。如果知道容器大小的新下限,应考虑调整大小方法。如果不知道(或不关

心)容器的当前大小,则应该考虑缩小方法。

要使用命令行来缩小 DMS 表空间中一个或多个容器的大小,输入:

ALTER TABLESPACE

REDUCE (FILE '' )

以下示例说明如何在基于 Windows 的系统上的表空间中缩小文件容器(含 1 000 页):

ALTER TABLESPACE PAYROLL

REDUCE (FILE 'd:\hldr\finance' 200)

在此操作之后,文件大小就从 1 000 页减少至 800 页。

要使用命令行来增大 DMS 表空间中一个或多个容器的大小,输入:

ALTER TABLESPACE

RESIZE (DEVICE '' )

以下示例说明如何在基于 UNIX 的系统上的表空间中增大两个设备容器(各含 1 000 页):

ALTER TABLESPACE HISTORY

RESIZE (DEVICE '/dev/rhd7' 2000,

DEVICE '/dev/rhd8' 2000)

在此操作之后,两个设备的大小都从 1 000 页增加至 2 000 页。在容器间重新平衡该表空间的内容。在重新平衡期间,不限制对该表空间的存取。

要使用命令行来扩展 DMS 表空间中一个或多个容器,输入:

ALTER TABLESPACE

EXTEND (FILE '' )

以下示例说明如何在基于 Windows 的系统上的表空间中增大文件容器(各含 1 000 页):

ALTER TABLESPACE PERSNEL

EXTEND (FILE 'e:\wrkhist1' 200

FILE 'f:\wrkhist2' 200)

在此操作之后,两个文件的大小都从 1 000 页增大至 1 200 页。在容器间重新平衡该表空间的内容。在重新平衡期间,不限制对该表空间的存取。

通过预取程序以并行方式执行 DMS 容器(文件容器和裸设备容器),这些容器是在表空间创建期间或之后添加的,或者是在表空间创建之后扩展的。要增加这些创建或调整容器大小操作的并行性,可以增加系统中运行的预取程序的数目。不以并行方式执行的唯一进程是记录这些操作以及在创建容器的情况下标记这些容器。

注:

要使 CREATE TABLESPACE 或 ALTER TABLESPACE 语句的并行性最大(对于将新的容器添加至现有的空间),确保预取程序数大于或等于要添加的容器数。预取程序数目由 num_ioservers

数据库配置参数控制。必须停止数据库以使新参数值生效。也就是说,必须断开所有应用程序和用户与数据库的连接以使更改生效。

注意,ALTER TABLESPACE 语句允许更改可以影响性能的表空间的其它属性。

要使用命令行来删除用户表空间,输入:

DROP TABLESPACE

以下 SQL 语句将删除表空间 ACCOUNTING:

DROP TABLESPACE ACCOUNTING

这是用来创建系统临时表空间的语句:

CREATE SYSTEM TEMPORARY TABLESPACE

MANAGED BY SYSTEM USING ('')

之后,要使用命令行来删除系统表空间,输入:

DROP TABLESPACE

以下 SQL 语句创建一个称为 TEMPSPACE2 的新的系统临时表空间:

CREATE SYSTEM TEMPORARY TABLESPACE TEMPSPACE2

MANAGED BY SYSTEM USING ('d:\systemp2')

一旦创建了 TEMPSPACE2,则可使用以下命令删除原来的系统临时表空间 TEMPSPACE1:

DROP TABLESPACE TEMPSPACE1

可以通过删除表空间来重新使用该空的表空间中的容器,但是,在试图重新使用这些容器之前,必须落实该 DROP TABLESPACE 命令。

要使用命令行来删除模式,输入:

DROP SCHEMA

在以下示例中,删除了模式“joeschma”:

DROP SCHEMA joeschma RESTRICT

RESTRICT 关键字强制执行一个规则,即不能在指定的模式中为要从数据库中删除的模式定义对象。

使用 MERGE 语句更新表和视图内容

DB2 通用数据库能够使用来自另一个源的数据(通常是表引用的结果)更新表或视图。这种更新是使用MERGE 语句来执行的。

可以根据 MERGE 语句中的指定指示信息删除或更新目标表中与源相匹配的行。可以插入目标表中不存在的行。

在视图中更新、删除或插入行会导致在视图所基于的表中更新、删除或插入相应行。

限制与 MERGE 语句相关联的授权标识必须具有适当的特权才能执行以下三种可能操作中的任何一种:对视图的目标表或基础表的更新、删除或插入操作。授权标识还应该对子查询中视图的表或基础表具有适当特权。

如果 MERGE 语句中发生了错误,则会回滚与 MERGE 相关联的整个操作集。

不能更新视图的目标表或基础表中在运行 MERGE 语句之前不存在的行。即,不允许更新作为 MERGE 语句的一部分插入的行。

如果将视图指定为 MERGE 语句的目标,则不应为该视图定义任何 INSTEAD OF 2 触发器;或者应为更新、删除和插入操作中的每一个定义 INSTEAD OF 触发器。

过程要对目标表执行更新、删除、插入或这三种操作的任意组合,在命令提示符处输入下列内容:

MERGE INTO

USING

ON

WHEN THEN 每个 MERGE 语句可多次指定修改操作和信号语句。在单个 MERGE 语句中只能对目标表或视图中的每行执行一次操作。这意味着目标表或视图中的某行仅可标识为与表引用的结果表中的一行“匹配”(MATCHED)。

考虑存在 shipment 和 inventory 两个表的情况。通过使用 shipment 表,将行合并到inventory 表中。对于匹配的行,按照 shipment 2 表中的数量来增加 inventory 表中的数量。否则,将新部件号插入到 inventory 表中。

MERGE INTO inventory AS in

USING (SELECT partno, description, count FROM shipment

WHERE shipment. partno IS NOT NULL) AS sh

ON (in.partno = sh.partno)

WHEN MATCHED THEN

UPDATE SET

description = sh.description

quantity = in.quantity + sh.count

WHEN NOT MATCHED THEN

INSERT

(partno, description, quantity)

VALUES (sh.partno, sh.description, sh.count)

此示例中没有任何 DELETE 选项。较复杂的匹配条件可考虑添加 DELETE 2 选项。有几个其它选项(例如,使用信号语句和 ELSE 子句)在此处未作说明,但可在 SQL Reference 中找到它们。

要使用命令行来将表说明为“易失的”,输入:

ALTER TABLE

VOLATILE CARDINALITY

要将具体查询表更改为常规表,使用以下命令:

ALTER TABLE sumtable

SET SUMMARY AS DEFINITION ONLY

要将常规表更改为具体查询表,使用以下命令:

ALTER TABLE regtable

SET SUMMARY AS

将常规表改变为具体查询表时,有关全选择的限制与使用 CREATE SUMMARY TABLE 语句创建具体查询表时的限制非常相似。

修改表中列

例如,要将一列增加到 4000 个字符,使用类似于以下的语句:

ALTER TABLE t1

ALTER COLUMN colnam1

SET DATA TYPE VARCHAR(4000)

在另一个示例中,允许一列具有新的 VARGRAPHIC 值,使用类似以下内容的 SQL 语句:

ALTER TABLE t1

ALTER COLUMN colnam2

SET DATA TYPE VARGRAPHIC(2000)

不能改变类型表的列。但是,可将一个作用域添加到尚未定义作用域的现有的引用类型列中。例如:

ALTER TABLE t1

ALTER COLUMN colnamt1

ADD SCOPE typtab1

要使用命令行来修改现有表列的缺省值,请输入:

ALTER TABLE

ALTER COLUMN

SET DEFAULT 'new_default_value'

例如,要更改列的缺省值,请使用以下类似的语句:

ALTER TABLE t1

ALTER COLUMN colnam1

SET DEFAULT '123'

对现有表定义生成列

将表置于检查暂挂状态。

SET INTEGRITY FOR t1 OFF

改变表,以添加一个或多个生成列。

ALTER TABLE t1 ADD COLUMN c3 DOUBLE GENERATED ALWAYS AS (c1 + c2),

ADD COLUMN c4 GENERATED ALWAYS AS

(CASE WHEN c1 > c3 THEN 1 ELSE NULL END))

将正确的值指定给生成的列。这可以使用下列方法完成:

使用以下命令重新计算并对生成列重新赋值:

SET INTEGRITY FOR t1 IMMEDIATE CHECKED FORCE GENERATED

如果此 SET INTEGRITY 语句因日志空间不足而失败,则增大可用的活动日志空间并重新发出SET INTEGRITY 语句。

注:

此时,可使用异常表。

如果不能增大可用的活动日志空间,则使用 searched update 语句来对生成列赋予缺省值。获取对表的互斥锁定。这将防止除未落实的读取事务之外的所有事务存取该表。注意,将在第一次间歇落实时释放表锁定,而其它事务将能够看到带有未赋予缺省值的生成列的行。LOCK TABLE t1

绕过生成列的检查

SET INTEGRITY FOR t1 GENERATED COLUMN IMMEDIATE UNCHECKED

检查表中的其它完整性违规(如果适用的话)并使其脱离检查暂挂状态。

SET INTEGRITY FOR t1 IMMEDIATE CHECKED

使用间歇落实和谓词更新生成列,以避免填充日志。

UPDATE t1 SET (c3, c4) = (DEFAULT, DEFAULT) WHERE

通过使用落实语句完成事务来解锁该表。

COMMIT

如果不能增大可用的活动日志空间,则还可以使用基于游标的方法:

声明表的 FOR UPDATE 游标。如果间歇落实之后要保留锁定,则应使用 WITH HOLD 选项。 DECLARE C1 CURSOR WITH HOLD FOR S1

其中 S1 定义为:

SELECT '0' FROM t1 FOR UPDATE OF C3, C4

打开游标。

OPEN C1

绕过生成列的检查

SET INTEGRITY FOR t1 GENERATED COLUMN IMMEDIATE UNCHECKED

检查表中的其它完整性违规(如果适用的话)并使其脱离检查暂挂状态。

SET INTEGRITY FOR t1 IMMEDIATE CHECKED

让循环访存表中的所有行,对于访存的每一行,执行下列操作以便将生成列指定至其缺省表。一定要确保第一次访存在表脱离检查暂挂后立即执行,以确保在游标的持续时间内表处于锁定状态。

UPDATE t1 SET (C3, C4) = (DEFAULT, DEFAULT) WHERE CURRENT OF C1

进行间歇落实以避免日志填满。

关闭游标并落实以对表解锁。

CLOSE C1

COMMIT

您知道该表是使用起始未记录的选项创建的。这样,该表的记录是关闭的,当使用生成列值时,存放普通的隐含项和风险。

激活起始未记录的选项。

ALTER TABLE t1 ACTIVATE NOT LOGGED INITIALLY

生成值。

SET INTEGRITY FOR t1 IMMEDIATE CHECKED FORCE GENERATION

通过落实事务再次关闭起始未记录的选项。

COMMIT

也可以简单地通过应用表达式(就象该表达式是相等检查约束一样)检查生成列的值:

SET INTEGRITY FOR t1 IMMEDIATE CHECKED

若已在生成列中放置了值,例如使用 LOAD,且您知道这些值与生成表达式相匹配,则可以使该表脱离检查暂挂状态,而不必检查或指定值:

SET INTEGRITY FOR t1 GENERATED COLUMN IMMEDIATE UNCHECKED

以下是在 CREATE TABLE 语句上定义生成列的一个示例:

CREATE TABLE t1 (c1 INT,

c2 DOUBLE,

c3 DOUBLE GENERATED ALWAYS AS (c1 + c2)

c4 GENERATED ALWAYS AS

(CASE WHEN c1 > c2 THEN 1 ELSE NULL END))

在创建此表之后,可以使用生成列来创建索引。例如,

CREATE INDEX i1 ON t1(c4)

查询可以利用生成列。例如,

SELECT COUNT(*) FROM t1 WHERE c1 > c2

可以写成

SELECT COUNT(*) FROM t1 WHERE c4 IS NOT NULL

另一个示例:

SELECT c1 + c2 FROM t1 WHERE (c1 + c2) * c1 > 100

可以写成

SELECT c3 FROM t1 WHERE c3 * c1 > 100

将使用生成列来改进查询的性能。结果是,可能在创建和填充表之后添加生成列。

要使用命令行来删除索引、索引扩展或索引规范,输入:

DROP INDEX

以下 SQL 语句删除称为 PH 的索引:

DROP INDEX PH

以下 SQL 语句删除称为 IX_MAP 的索引扩展:

DROP INDEX EXTENSION ix_map RESTRICT

任何从属于删除的索引的程序包和高速缓存的动态 SQL 语句都被标记为无效。应用程序不受添加或删除索引所导致的更改的影响。

添加唯一约束

过程

可以将唯一约束添加至现有表。约束名不能与在 ALTER TABLE 语句内指定的任何其它约束相同,且必须在该表内是唯一的(这包括定义的任何引用完整性约束的名称)。在成功执行该语句之前,会对照新条件检查现有数据。

以下 SQL 语句将一个唯一约束添加至 EMPLOYEE 表,它表示唯一标识该表中的职员的一个新方法:

ALTER TABLE EMPLOYEE

ADD CONSTRAINT NEWID UNIQUE(EMPNO,HIREDATE)

要使用命令行添加主键,输入:

ALTER TABLE

ADD CONSTRAINT

PRIMARY KEY

以下 SQL 语句从 EMPLOYEE 表中删除唯一约束 NEWID:

ALTER TABLE EMPLOYEE

DROP UNIQUE NEWID

删除此唯一约束将导致使用该约束的任何程序包或高速缓存的动态 SQL 无效。

要使用命令行来删除主键,输入:

ALTER TABLE

DROP PRIMARY KEY

当删除外键约束时,包含下列语句的程序包或高速缓存的动态 SQL 语句可能被标记为无效:

插入或更新包含外键的表的语句

更新或删除父表的语句

要使用命令行添加外键,输入:

ALTER TABLE

ADD CONSTRAINT

FOREIGN KEY

ON DELETE

ON UPDATE

以下示例显示 ALTER TABLE 语句如何将主键和外键添加至一个表:

ALTER TABLE PROJECT

ADD CONSTRAINT PROJECT_KEY

PRIMARY KEY (PROJNO)

ALTER TABLE EMP_ACT

ADD CONSTRAINT ACTIVITY_KEY

PRIMARY KEY (EMPNO, PROJNO, ACTNO)

ADD CONSTRAINT ACT_EMP_REF

FOREIGN KEY (EMPNO)

REFERENCES EMPLOYEE

ON DELETE RESTRICT

ADD CONSTRAINT ACT_PROJ_REF

FOREIGN KEY (PROJNO)

REFERENCES PROJECT

ON DELETE CASCADE

要使用命令行来删除外键,输入:

ALTER TABLE

DROP FOREIGN KEY

下列示例在 ALTER TABLE 语句中使用 DROP PRIMARY KEY 和 DROP FOREIGN KEY 子句来删除表上的主键和外键:

ALTER TABLE EMP_ACT

DROP PRIMARY KEY DROP FOREIGN KEY ACT_EMP_REF

DROP FOREIGN KEY ACT_PROJ_REF

ALTER TABLE PROJECT

DROP PRIMARY KEY

要使用命令行来添加表检查约束,输入:

ALTER TABLE

ADD CONSTRAINT ()

以下 SQL 语句将一个约束添加至 EMPLOYEE 表,即每个职员的工资加佣金必须超过$25,000:

ALTER TABLE EMPLOYEE

ADD CONSTRAINT REVENUE CHECK (SALARY + COMM > 25000)

要使用命令行来删除表检查约束:

ALTER TABLE

DROP CHECK

以下 SQL 语句从 EMPLOYEE 表中删除表检查约束 REVENUE:

ALTER TABLE EMPLOYEE

DROP CHECK REVENUE

要删除序列,使用 DROP 语句。

可以通过使用下列命令来删除特定序列:

DROP SEQUENCE sequence_name

其中 sequence_name 是要删除的序列名,它包括用来正确标识现有序列的隐式或显式模式名。

不能使用 DROP SEQUENCE 语句删除系统为 IDENTITY 列创建的序列。

一旦删除序列,则也会删除对该序列的所有特权。

按如下所示使用该命令:

db2nlist

当按以上所示使用此命令时,缺省实例是当前实例(由 DB2INSTANCE 环境变量设置)。要指定特定的实例,可使用以下命令指定该实例:

db2nlist /i:instName

其中 instName 是想要的特定实例名。

作为选项,也可使用以下命令请求每个分区服务器的状态:

db2nlist /s

每个数据库分区服务器的状态可能是:正在启动、正在运行、正在停止或已停止。

要使用命令行来向 SMS 表空间添加容器,输入以下内容:

ALTER TABLESPACE

ADD ('')

ON DBPARTITIONNUM ()

按编号指定的分区和分区范围内的每个分区(或节点)必须在定义表空间的数据库分区组中存在。partition_number 可能仅在语句的一个 db-partitions 子句中显式出现或在某个范围内出现。

以下示例显示如何在基于 UNIX 的操作系统上将新容器添加至由表空间“plans”使用的数据库分区组的第 3 号分区:

ALTER TABLESPACE plans

ADD ('/dev/rhdisk0')

ON DBPARTITIONNUM (3)

只能在单一分区数据库分区组中的表上更改分区键。首先删除现有分区键,然后创建另一个分区键。

以下 SQL 语句从 MIXREC 表中删除分区键 MIX_INT:

ALTER TABLE MIXREC

DROP PARTITIONING KEY

不能更改多分区数据库分区组中的表的分区键。若尝试删除它,则会返回错误。

要更改多分区数据库分区组的分区键,执行以下两种操作均可:

将所有数据导出至单一分区数据库分区组,然后遵循以上指示信息。

导出所有数据,删除表,重新创建表并重新定义分区键,然后导入所有数据。

这两种方法都不适用于大数据库;因此,在实现大数据库的设计之前,要定义适当的分区键。

rah 和 db2_all 命令概述

可以依次在各个数据库分区服务器上按顺序运行命令,或可以用并行的方式运行命令。在基于 UNIX(R) 的平台上,如果以并行方式运行这些命令,您可以选择将输出发送至缓冲区并收集该输出以便显示(缺省行为),或者可在发出该命令的机器上显示该输出。在 Windows NT 上,若以并行方式运行这些命令,则在发出该命令的机器上显示输出。

要使用 rah 命令,输入:

rah command

要使用 db2_all 命令,输入:

db2_all command

有关 rah 语法的帮助,输入

rah "?"

该命令几乎可以是在交互式提示符下输入的任何内容,例如,要按顺序运行的多个命令。在基于 UNIX 的平台上,使用分号(;)将多个命令分开。在 Windows NT 上,使用 & 符号将多个命令分开。不要在最后一个命令之后使用分隔符。

以下示例显示如何使用 db2_all 命令来更改在节点配置文件中指定的所有数据库分区上的数据库配置。因为 ; 字符在双引号之内,所以将同时运行请求:

db2_all ";UPDATE DB CFG FOR sample USING LOGFILSIZ 100"

关于Export/Import/Load

db2 export to myfile.ixf of ixf messages msgs.txt select * from staff

db2 export to awards.ixf of ixf messages msgs.txt select * from staff

where dept = 20

db2 export to myfile.del of del lobs to mylobs/lobfile lobs1, lobs2 modified by lobsinfile

select * from emp_photo

db2 export to myfile.del of del lobs to /db2exp1/, /db2exp2/ modified by lobsinfile select * from emp_photo

db2 export to myfile.del of del modified by chardel'' coldel; decpt, select * from staff

使用标识列

create table table1 (c1 char(30),

c2 int generated by default as identity,

c3 real,

c4 char(1))

Robert, 45.2, J

Mike, 76.9, K

Leo, 23.4, I

db2 import from import.del of del replace into table1 (c1, c3, c4)

db2 import from import.del of del modified by identitymissing

replace into table1

Robert, 1, 45.2, J

Mike, 2, 76.9, K

Leo, 3, 23.4, I

db2 import from import.del of del method P(1, 3, 4)

replace into table1 (c1, c3, c4)

db2 import from import.del of del modified by identityignore

replace into table1

使用生成列

create table table1 (c1 int,

c2 int,

g1 int generated always as (c1 + c2),

g2 int generated always as (2 * c1),

c3 char(1))

1, 5, J

2, 6, K

3, 7, I

db2 import from import.del of del replace into table1 (c1, c2, c3)

SQL常用命令汇总

SQL常用命令汇总 SQL是结果化查询语言(Structured Query Language)的缩写,其功能包括数据查询、数据定义、数据操纵和数据控制四个部分。SQL简洁、功能齐全,已成为目前应用最广的关系数据库语言。 一、SQL的发展及标准化 1.SQL的发展 SQL是当前最为成功、应用最为广泛的关系数据库语言,其发展主要经历了以下几个阶段; (1)1974年,由Chamberlin和Boyce提出,当时称为SEQUEL(Structured English Query Language); (2)1976年,IBM公司对SEQUEL进行了修改,并将其用于本公司的SYSTEM R关系数据库系统中; (3)1981年,推出了商用关系数据库SQL/DS,并将其名字改为SQL,由于SQL功能强大,简洁易用,因此得到了广泛的应用; (4)今天,SQL广泛应用于各种大型数据库,如Sybase,INFORMIX,SQL Server,Oracle,DB2,INGRES等,也用于各种小型数据库,如FoxPro,Access等。 2.SQL标准化 随着关系数据库系统和日益广泛,SQL的标准化工作也在紧张地进行着,二十多年来已制订了多个SQL标准:SQL-86,SQL-89,SQLL2和SQL-99。 二、SQL的基本概念 1.基本表——一个关系对应一个表。基本表是独立存在的表,不是由其他的表导出的 表。 2.视图——是一个或几个基本表导出的表,是一个虚拟的表。它本身不独立存在于数 据中,数据库中只存放视图对应的数据,这些数据仍存放在导出视图的基本表中。 当基本表中的数据发生变化时,从视图中查询出来的数据也随之改变。 三、SQL的主要特点 SQL有如下几个特点。 (1)SQL是类似于英语的自然语言,简洁易用。 (2)SQL是一种非过程语言。 (3)SQL是一种面向集合的语言。 (4)SQL既是自含式语言,又是嵌入式语言;可独立使用,也可以嵌入到宿主语言中。 (5)SQL是数据库查询(Query)、数据定义(Definition)、数据操纵(Manipulation)和数据控制(Control)四种功能。 创建数据表 语法格式:CREA TE TABLE<表名>(<列定义>[{,<列定义>|<表约束>}]) 例:create table s(xingm c(8),xueh c(8),chengj c(3)) 结果:

db2look命令详解

db2look 今天整理了一下db2look命令参数说明 db2look Command syntax | |>>-db2look-- -d--DBname--+-----+--+--------------+--------------> | '- -e-' '- -u--Creator-' | |>--+-------------+--+-------------------------------------+-----> | '- -z--schema-' '-+----------------+--+-------------+-' | | .-------. | '- -tw--Tname-' | | V | | | '- -t----Tname-+-' | |>--+----------------+--+-----+--+------------+--+-----+---------> | | .-------. | '- -h-' '- -o--Fname-' '- -a-' | | V | | | '- -v----Vname-+-' | |>--+-----------------------+--+-----+--+-----+--+------+--------> | '- -m--+-----+--+-----+-' '- -l-' '- -x-' '- -xd-' | '- -c-' '- -r-' | |>--+-----+--+-----------------+--+-----+--+-----+--+-----+------> | '- -f-' '- -td--delimiter-' '- -p-' '- -s-' '- -g-' | |>--+----------+--+----------------------------+-----------------> | '- -noview-' '- -i--userid-- -w--password-' | |>--+------------------+--+---------+---------------------------><

常用命令

服务器开始加电,等待片刻会自动引导操作系统,操作系统初始化完毕后会出现登录界面,输入正确的用户名:root和密码:zclroot就可以进入X 图形桌面环境了。 1.启动应用,数据库和数据交换 1).在数据库(SDB)机器上启动数据交换,在#号切到db2inst1用户: su –db2inst1 dbstart (启动数据库) 2)启动websphere:点击屏幕左下角的终端程序(贝壳状图标),然后在#后面输入 /opt/IBM/WebSphere/AppServer/bin/startServer.sh server1 提示进程号则表示启动成功,大约需要五分钟,注意:最后面是数字1不是字母l,server1前面有个空格,注意大小写字母 注:相应的停止websphere的命令为: #/opt/IBM/WebSphere/AppServer/bin/stopServer.sh server1 注意:如果在启动websphere的时候提示: ADMUO116I:正在文件 /opt/IBM/WebSphere/AppServer/bin/startServer.log 中记录工具信息 ADMUO128I:正在启动具有default概要文件的工具 ADMU3100I:正在从服务器读取配置:server1 ADMU3028I:在端口8880上检测到冲突。可能的原因:a) 已经有一个服务器server1的实例在运行b) 一些其他程序在使用端口8880 ADMU3027E:可能已经有一个服务器的实例在运行:server1

ADMU0111E:由于错误 Com.ibm.websphere.management.exception.AdminExcetption: ADMU3027E: 可能已经有一个服务器的实例在运行:server1 ,程序推出。 ADMU1211I:要获取故障的全部跟踪,使用–trace选项。 此时表示应用W ebsphere已经启动了,不需要再进行启动。 注意:如果在停止websphere的时候提示: ADMUO116I:正在文件 /opt/IBM/WebSphere/AppServer/bin/startServer.log 中记录工具信息 ADMUO128I:正在启动具有default概要文件的工具 ADMU3100I:正在从服务器读取配置:server1 ADMUO509I:无法到达 server “server1”.服务器看上去已经停止。 ADMUO211I:在文件 /opt/IBM/WebSphere/AppServer/bin/stopServer.log 中可以看到错误的信息 表示此时:应用W ebsphere现在处在停止状态,需要启动。 3)在数据库(SDB)机器上启动数据交换,在#号切到db2inst1用户: su –db2inst1 >cd server >showsjjh (查看数据交换,如果有四行表示数据交换已经启动。) > stopsjjh (停止数据交换) >showsjjh (查看数据交换,到没有命令行显示为止) >loadsjjh (启动数据交换) >showsjjh (查看数据交换信息) 出现如上四条信息为正常启动了数据交换 2.重启及开关机命令 #reboot重新启动计算机 #shutdown -r now 重新启动计算机,停止服务后重新启动计算机 #shutdown -h now 关闭计算机,停止服务后再关闭系统 #halt 关闭计算机,强制关闭 一般用shutdown -r now,在重启系统是关闭相关服务,shutdown -h now也是如此。 3.备份 #su –db2inst1 >db2 force applications all (切断目前所有与数据库的连接,可以多执行几次) >db2 backup db sino to /db2log (备份目录) 若备份成功会返回提示,并生成一个时间戳,所谓时间戳就是一串记录当前“年月日时分秒”的数字,形如20070212152930,也包含在新生成的备份文件的文件名里。 压缩命令 tar -cvfz sino20070317(压缩后的文件名).tar.gz 被压缩的文件名

db2常用命令+常见问题处理

1.db2常用命令大全 EXPORT TO D:\PRINTXML.IXF OF IXF 近一年来在项目开发中使用到了IBM的DB2 9.1的数据库产品,跟Oracle 相比一些命令有很大的区别,而它最大的功能是支持xml存储、检索机制,通过XPath进行解析操作,使开发人员免于对xml文件在应用进行解析处理,先对其常用命令进行一下汇总,以免遗忘。 注意:在执行如下命令时,需要首先安装db2客户端并通过在运行中输入db2cmd进行初始化 一、基础篇 1、connect to <数据库名> --连接到本地数据库名 db2 connect to <数据库名> user <用户名> using <密码> --连接到远端数据库 2、force application all --强迫所有应用断开数据库连接 3、db2 backupdb db2name<数据库名称> --备份整个数据库数据 db2 restore db --还原数据库 4、list application --查看所有连接(需要连接到具体数据库才能查看) 5、db2start --启动数据库 db2stop --停止数据库 6、create database <数据库名> using codeset utf-8 territory CN --创建数据库使用utf-8编码 7、db2 catalog 命令 catalog tcpip node <接点名称> remote <远程数据库地址> server <端口号> --把远程数据库映射到本地接点一般为50000 db2 catalog db<远程数据库名称> as <接点名称> at node PUB11 --远程数据库名称到本地接点 db2 CONNECT TO <接点名称> user <用户名> using <密码> --连接本地接点访问远程数据库 8、数据库导出 db2look -d <数据库名> -u <用户> -e -o <脚本名称>.sql --导出数据库的表结构,其中用户空间一般为db2admin/db2inst1

DB2常用SQL语句集

DB2常用SQL语句集 1、查看表结构: describe table tablename describe select * from tablename 2、列出系统数据库目录的内容: list database directory 3、查看数据库配置文件的内容: get database configuration for DBNAME 4、启动数据库: restart database DBNAME 5、关闭表的日志 alter table TBLNAME active not logged inially 6、重命名表 rename TBLNAME1 to TBLNAME2 7、取当前时间 select current time stamp from sysibm.sysdummy1 8、创建别名 create alias ALIASNAME for PRONAME(table、view、alias、nickname) 9、查询前几条记录 select * from TBLNAME fetch first N rows 10、联接数据库 db2 connect to DB user db2 using PWD 11、绑定存储过程命令 db2 bind BND.bnd 12、整理优化表 db2 reorgchk on table TBLNAME db2 reorg table TBLNAME db2 runstats on table TBNAME with distribution and indexes all 13、导出表 db2 export to TBL.txt of del select * from TBLNAME db2 export to TBL.ixf of ixf select * from TBLNAME 以指定分隔符‘|’下载数据: db2 "export to cmmcode.txt of del modified by coldel| select * from cmmcode”14、导入表 db2 import from TBL.txt of del insert into TBLNAME db2 import from TBL.txt of del commitcount 5000 insert into TBLNAME db2 import from TBL.ixf of ixf commitcount 5000 insert into TBLNAME db2 import from TBL.ixf of ixf commitcount 5000 insert_update into TBLNAME db2 import from TBL.ixf of ixf commitcount 5000 replace into TBLNAME db2 import from TBL.ixf of ixf commitcount 5000 create into TBLNAME (仅IXF) db2 import from TBL.ixf of ixf commitcount 5000 replace_create into TBLNAME (仅 IXF) 以指定分隔符“|”加载:

Linux使用命令行安装DB2【详解】

DB2 ESE V9.7文本方式安装主要流程: (1)解压安装包,检查安装先决条件 (2)执行安装程序 (3)注册license(Express-C版无需注册) (4)创建3个用户组和3个用户,分别是实例用户、受限用户、管理用户 (5)创建一个管理服务器 (6)创建一个实例 (7)配置DB2访问协议 (8)配置DB2实例默认端口号 一、安装前准备工作 1、将下载的安装文件上传到待安装的LINUX 机器,解压缩v9.7_linuxx64_server.tar.gz 文件到某个目录 [root@redflag11012601 app]# ll v*gz -rw-r--r-- 1 root root 810576392 05-03 19:44 v9.7_linuxx64_server.tar.gz [root@redflag11012601 app]# tar xzf v9.7_linuxx64_server.tar.gz 2、解压产生两个目录server和db2 [root@redflag11012601 app]# cd server [root@redflag11012601 server]# ll

总计 64 drwxr-xr-x 6 bin bin 4096 2009-11-16 db2 -r-xr-xr-x 1 bin bin 5340 2009-11-16 db2ckupgrade -r-xr-xr-x 1 bin bin 5293 2009-11-16 db2_deinstall -r-xr-xr-x 1 bin bin 5163 2009-11-16 db2_install -r-xr-xr-x 1 bin bin 5127 2009-11-16 db2ls -r-xr-xr-x 1 bin bin 5145 2009-11-16 db2prereqcheck -r-xr-xr-x 1 bin bin 5145 2009-11-16 db2setup drwxr-xr-x 15 bin bin 4096 2009-11-16 doc -r-xr-xr-x 1 bin bin 5181 2009-11-16 installFixPack server 的子目录有多个可执行的脚本,其中db2prereqcheck是先决条件检查,db2setup 是图形界面安装程序,db2_install是命令行方式安装。还有一个db2目录,保存了需要安装的二迚制文件。 3、执行db2prereqcheck查看是否缺少先决条件 [root@redflag11012601 server]# ./db2prereqcheck 如果没有返回任何结果,表明系统符合DB2 安装的先决条件,可以进入下一步安装。如果返回信息,请按信息提示修改配置,然后再次运行,直到没有错误提示。 二、安装DB2数据库软件

在db2上建立数据库分区的步骤和命令

本文简单介绍了在DB2上建立数据库分区的步骤和涉及到的命令等,供大家参考! AD:创建database partition 1、创建需要建立数据库分区的db instance 可使用命令建立db instance: db2icrt -s ESE -u db2admin,aaa123456 -h ANWENHAO DBINSTANCENAME 创建完成对应的instance 后需要重启DB2。 2、将新建的db instance加入到DB2中: CATALOG LOCAL NODE DB2INST1 INSTANCE DB2INST1 SYSTEM ANWENHAO OSTYPE NT; 3、在命令行中设置当前需要操作的dbInstance。 set db2instance=db2inst1 db2 get instance

db2 attach to db2inst1 4、创建DBPartition db2start dbpartitionnum 1 ADD DBPARTITIONNUM HOSTNAME ANWENHAO PORT 1 COMPUTER ANWENHAO USER db2admin PASSWORD aaa123456 WITHOUT TABLESPACES 5、创建完成后需要重新启动db2。DB2在此时会增加一个database partition并进行redistribution。 以上操作即完成database partition。 创建database partition group CREATE DATABASE PARTITION GROUP "NODE1" ON DBPARTITIONNUMS (1); COMMENT ON DATABASE PARTITION GROUP "NODE1" IS 'ANWENHAO _1';

db2常见考试命令应用考试题

一选择题(每题1.5分,共45分) 1) 下面的哪个数据库版本可以访问OS/390 上的DB2 UDB 数据库? a) DB2 Connect Personal Edition b) DB2 Universal Database Workgroup Edition c) DB2 Personal Developer's Edition d) DB2 Universal Developer's Edition 2) 下面的哪个工具可以编目一个数据库信息? a) Journal 日志工具 b) Alert Center 警告中心 c) License Center 许可证中心 d) Client Configuration Assistant 客户端配置助手 3) 下面的哪个工具可以重组数据回收表中被删除的行所占有的资源? a)reorg b) db2look c) db2move d) runstats 4) USE这个特权的用途是? a) query data in a table. b) load data into a table. c) create tables within a table space. d) create table spaces within a database. 5) 如果创建数据库则需要下面的哪两个权限? a) DBADM b) SYSADM c) DBCTRL d) SYSCTRL e) SYSMAINT 6) 编目一个远程数据库是指: a) 在PC或者Unix 机器上执行编目,目的是为了识别DB2数据库管理器所在的服务器 b) 在PC或者Unix机器上编目,目的是为了让用户和应用程序可以识别DB2数据库 c) 从不在DB2中编目,仅当每个节点上的数据库被允许编目时编目,所以自动编目那个节点就可以自动编目数据库N d) 在PC或者UNIX机器上编目是为了打开在DB2数据库中的目录表,这样当前的用户可以访问这个数据库中的一组可以被访问的数据表。 7) 给出下面的语句

DB 2 常用命令

DB 2 常用命令 一、加载数据: 1、以默认分隔符加载,默认为“,”号 db2 "import from btpoper.txt of del insert into btpoper" 2、以指定分隔符“|”加载 db2 "import from btpoper.txt of del modified by coldel| insert into btpoper" 二、卸载数据: 1、卸载一个表中全部数据 db2 "export to btpoper.txt of del select * from btpoper" db2 "export to btpoper.txt of del modified by coldel| select * from btpoper" 2、带条件卸载一个表中数据 db2 "export to btpoper.txt of del select * from btpoper where brhid='907020000'" db2 "export to cmmcode.txt of del select * from cmmcode where codtp='01'" db2 "export to cmmcode.txt of del modified by coldel| select * from cmmcode where codtp='01'" 三、查询数据结构及数据: db2 "select * from btpoper" db2 "select * from btpoper where brhid='907020000' and oprid='0001'" db2 "select oprid,oprnm,brhid,passwd from btpoper" 四、删除表中数据: db2 "delete from btpoper" db2 "delete from btpoper where brhid='907020000' or brhid='907010000'" 五、修改表中数据: db2 "update svmmst set prtlines=0 where brhid='907010000' and jobtp='02'" db2 "update svmmst set prtlines=0 where jobtp='02' or jobtp='03'" 六、联接数据库 db2 connect to btpdbs 七、清除数据库联接 db2 connect reset 断开数据库连接 db2 terminate 断开数据库连接 db2 force applications all 断开所有数据库连接 八、备份数据库 1、db2 backup db btpdbs 2、db2move btpdbs export db2look -d btpdbs -e -x [-a] -o crttbl.sql

db2常用命令

1.Load时表挂起状态 set INTEGRITY for "EDWDATA"."F_PR_ALS_CUSTOMER_RELATIVE" IMMEDIATE CHECKED 解锁 2.对指定表列设置自增列 Alter table bir.TB_LOG_PAGE_t alter column logid set not null; Alter table bir.TB_LOG_PAGE_t alter column logid set generated GENERATED ALWAYS AS IDENTITY (START WITH 802144, INCREMENT BY 1, CACHE 20, MINVALUE 1, MAXVALUE 2147483647, NO CYCLE, NO ORDER) 3.ALTER TABLE bir.z88_job_log ACTIVATE NOT LOGGED INITIALLY WITH EMPTY TABLE 4.RUNCATE TABLE tabname IMMEDIATE 5.DB2 LIST DATABASE PARTITION GROUPS SHOW DETAIL 查看数据库分区情况 db2 alter bufferpool CRM_BF_8immediate size 232768automatic 缓冲池调整为自动调整功能。 ALTER BUFFERPOOL SIZE ALTER BUFFERPOOL SIZE BF_32 6.Select bpname,npages from sysibm.sysbufferpools -2为自动调整状态 7.通过将self_tuning_mem 设置为ON 来对数据库启用自调整功能。可以使用UPDATE DATABASE CONFIGURA TION 命令、SQLFUPD API 或通过控制中心中的更改数据库配置参数窗口来将self_tuning_mem 设置为ON 8.?要对由内存配置参数控制的内存区域启用自调整功能,请使用UPDATE DATABASE CONFIGURATION 命令、 SQLFUPD API 或通过控制中心中的更改数据库配置参数窗口将相关配置参数设置为AUTOMA TIC。 ?要对缓冲池启用自调整功能,请将缓冲池大小设置为AUTOMATIC。可以使用ALTER BUFFER POOL 语句(对于现有缓冲池)或CREATE BUFFER POOL 语句(对于新缓冲池)来完成此操作。如果在DPF 环境中将缓冲池大小设置为AUTOMA TIC,就不应该在sysibm.sysbufferpoolnodes 中为该缓冲池定义任何条目。 Update db cfg using self_tuning_mem ON 启用自动调整内存 必须至少有两个内存使用者启用自调整功能才能使自调整功能有效。内存使用者包括SHEAPTHRES_SHR、PCKCACHESZ、BUFFER POOL(每个缓冲池计数为一个)、LOCKLIST 和DATABASE_MEMORY 参数设置 1.-- SORTHEAP是数据库级别参数-- 2.db2 -v update db cfg for DB_NAME using SORTHEAP 4273 3.-- SHEAPTHRES是实例级别参数-- 4.db2 -v update dbm cfg using SHEAPTHRES 0 5. db2 update dbm cfg using SHEAPTHRES_SHR 473258 db2 –v reorgchk update statistics on table all;对所有表做runstats

db2 load 命令

当DB2 的数据库启用了前滚恢复模式,即将日志由循环日志方式改为归档日志,以便用户在进行恢复操作时,可在恢复了数据库或表空间的备份后,再通过前滚归档日志中的事务,恢复数据库备份时间点之后提交的事务,最大程度的保护数据库的数据。 而DB2 的LOAD 实用程序为实现快速导入数据的功能,除采用了通过直接向数据库中写入格式化的数据页装载数据,导入过程中不激活触发器,不会检查参考完整性和表检查约束当等方式外,还最小化了记录事务日志的操作。在LOAD 的LOAD、BUILD、DELETE 和INDEX COPY 四个处理阶段中,仅在DELETE 阶段记录对每个删除事件记日志,即只对每个违反唯一约束的行的删除操作记日志,因此整个LOAD 操作仅记录了极少的日志。 由于LOAD 最小化了日志的记录,有因启用了前滚恢复的数据库在恢复在线备份时需要归档日志的特性,对于这种数据库的LOAD 操作,为避免执行LOAD 操作后,表在使用ROLLFORWARD 命令前滚归档日志的过程中因缺少日志而被置为非正常状态,DB2 为LOAD 命令提供了如下选项: ·COPY NO(缺省) ·COPY YES ·NONREVERABLE 为更清楚地说明这些选项的作用,这里将以举例的方式进行说明。而在开始操作之前,首先了解一下DB2 备份操作所产生的映象文件的形式和命名特点: 在UNIX 环境下是文件的形式: Databasealias.Type.Instancename.Nodename.Catnodename.Timestamp.number 在Windows 环境下是子目录及文件的形式: Databasealias.Type\Instancename\Node0000\Catn0000\yyyymmdd\hhmmss.number 而其中的Type 则因备份类型的不同而不同: 0 -- 数据库全备份 3 -- 表空间备份 4 -- 由LOAD 操作产生的备份 1. 进行一次数据库的全备份: 首先对已启用前滚恢复模式的SAMPLE 数据库进行一次全备份: E:\TEST>db2 backup db sample 备份成功。此备份映像的时间戳记是:20051230174105

db2 实战常用命令

db2 force application all –断开所有链接数据库的应用 db2 list application-查看连接数据库的应用 db2 bakup db ksdbs 备份数据库 db2start db2stop启停数据库 db2 connect reset断开所有链接 scp get trans.ini -r back@10.10.9.160/home/back/bccbin \ scp local_file remote_username@remote_ip:remote_folder 或者 scp local_file remote_username@remote_ip:remote_file scp -r ip:/db/dbhome/dbguard 【1】 db2top –d ksdbs db2pd -d ksdbs -stat >stat.log 查看数据库状态(数据超大超详细) 【1】find -type f | xargs dos2unix 遍历格式转换 【1】 find . -name [A-Z]* -print 查找当前目录下以大写字母命名的文件 【1】 >db2ckbkp 检查数据库的完整性 >tee 命令 用途--显示程序的输出并将其复制到一个文件中。 【1】db2 connect reset db2 list directory db2 list active databases db2 get db cfg db2 get db cfg 【1】归档日志 db2 update db cfg for db_name using LOGRETAIN ON 更改归档目录: db2 update db cfg for db_name using LOGARCHMETH1 "disk:/archive/db_name_db_log" 在我重新连接数据库的时候提示: db2 connect to t_1 to mydb SQL1116N A connection to or activation of database "T_1" cannot be made because of BACKUP PENDING. SQLSTATE=57019 网上找了n多最后才知道 若修改数据库LOGRETAIN参数,从循环日志模式改为归档日志模式,则会导致数据库backup pending状态。

DB2常用命令小结

1、打开命令行窗口 #db2cmd 2、打开控制中心 # db2cmd db2cc 3、打开命令编辑器 db2cmd db2ce =====操作数据库命令===== 4、启动数据库实例 #db2start 5、停止数据库实例 #db2stop 如果你不能停止数据库由于激活的连接,在运行db2stop前执行db2 force application all 就可以了/db2stop force 6、创建数据库 #db2 create db [dbname] 7、连接到数据库 #db2 connect to [dbname] user [username] using [password]

8、断开数据库连接 #db2 connect reset 9、列出所有数据库 #db2 list db directory 10、列出所有激活的数据库 #db2 list active databases 11、列出所有数据库配置 #db2 get dbcfg 12、删除数据库 #db2 drop database [dbname] (执行此操作要小心) 如果不能删除,断开所有数据库连接或者重启db2 =========操作数据表命令========== 13、列出所有用户表 #db2 list tables 14、列出所有系统表 #db2 list tables for system

15、列出所有表 #db2 list tables for all 16、列出系统表 #db2 list tables for system 17、列出用户表 #db2 list tables for user 18、列出特定用户表 #db2 list tables for schema [user] 19、创建一个与数据库中某个表(t2)结构相同的新表(t1) #db2 create table t1 like t2 20、将一个表t1的数据导入到另一个表t2 #db2 "insert into t1 select * from t2" 21、查询表 #db2 "select * from table name where ..." 22、显示表结构 #db2 describe table tablename 23、修改列

DB2V9.5管理命令汇总

1、load命令相关 查看表的load情况: LOAD QUERY--TABLE--table-name 查看所有的实用程序的情况: LIST UTILITIES SHOW DETAIL db2 "list utilities show detail" 直接load表数据,不需要中间文件: LOAD FROM (SELECT * FROM T1) OF CURSOR INSERT INTO T2 2、显示数据信息 1、 LIST DATABASE DIRECTORY 2、 3、如何快速清除一个大表? 1、alter table BIFM_CIFM_2 activate not logged initially with empty table 4、bufferpool 1、select * from SYSCAT.BUFFERPOOLS 5、查看当前连接到数据库的应用 1、db2 list application [show detail] 强制停止所有数据库链接: db2 force application all或者(id) 6、原因是:表所在表空间的pagesiez为16k而系统临时表空间pagesize为4k,故而出错。select * from t_run_log order by run_time asc 不存在具有足够页大小的系统临时表空间。. SQLCODE=-1585, SQLSTATE=54048, DRIVER=4.12.55 失败的查询=> 1 总执行时间=> 0 ms 7、查看资源的锁定情况 db2pd db2pd> -db astemp -locks show detail //根据显示的锁定的表的表id,取出表的信息 select * from syscat.tables where tableid in (780,1805,1807,1808) 8、创建数组数据类型 //创建数据库中的type对象 create type intArray as integer array[] create type strArray as varchar(5000) array[] //上面创建完成后,才能进行过程变量声明 declare v_step_idArray intArray; set v_step_idArray=array[select step_id from T_RUN_STEP where run_id=v_run_id and state=1 and run_state in (0,3) order by step_id asc] 9、查看db2 Node信息 db2 list node directory 10、查看db2实例上的数据库信息 db2 list db directory

BD2常用命令

DB2 的常用命令: 1,列举出相应的schema下面的所有表。 db2 list tables for schema schemaname 举例:db2 list tables for schema db2admin 2, 列举出当前数据库的目录。 db2 list db directory 举例:db2 list db directory 3, DB2自动增长主键方法 generated always as identity(start with 1,increment by 1) 将一个字段指定为 自增长型字段,放在数据类型后。 举例:crate table students ( sno integer not null primary key generated always as identity (start with 1, increment by 1), sname char(20), sname char(30))

此时插入数据,然后查看结果,sno自动增长1. 4, 数据的导入导出: export to E:\name.txt of del select * from tableName 导出举例1: export to C:\stInfo.ixf of ixf select * from students 导出举例2: 导入举例1: db2 "import from E:\name.txt of del insert into tableName

导入举例2: db2 "import from E:\name.ixf of ixf commitcount 5000 insert /create/replace into tableName

db命令实例大全

d b命令实例大全 公司标准化编码 [QQX96QT-XQQB89Q8-NQQJ6Q8-MQM9N]

db2命令实例大全 管理命令: create database mbmst using codeset GBK territory CN 1.启动数据库 db2start 2.停止数据库 db2stop 3.连接数据库 db2 connect to o_yd user db2 using pwd 4.读数据库管理程序配置 db2 get dbm cfg 5.写数据库管理程序配置 db2 update dbm cfg using 参数名参数值 6.读数据库的配置 db2 connect to o_yd user db2 using pwd db2 get db cfg for o_yd(查看数据库字符集) 7.写数据库的配置 db2 connect to o_yd user db2 using pwd db2 update db cfg for o_yd using 参数名参数值 8.关闭所有应用连接 db2 force application all db2 force application ID1,ID2,,,Idn MODE ASYNC (db2 list application for db o_yd show detail) 9.备份数据库 db2 force application all db2 backup db o_yd to d: (db2 initialize tape on \\.\tape0) (db2 rewind tape on \\.\tape0) db2 backup db o_yd to \\.\tape0 10.恢复数据库 db2 restore db o_yd from d: to d: db2 restore db o_yd from \\.\tape0 to d: 11.绑定存储过程 db2 connect to o_yd user db2 using pwd db2 bind c:\ 拷贝存储过程到服务器上的C:\sqllib\function目录中 12.整理表 db2 connect to o_yd user db2 using pwd db2 reorg table ydd

DB2 简明运维手册

DB2 简明运维手册 数据库启动 数据库正常启动的流程包括两个步骤, 首先启动数据库实例,在root用户下切换到实例用户su - db2inst1,执行命令db2start 然后激活对应的数据库,执行命令: db2 activate db 数据库名。 直到出现: 则数据库成功启动。 数据库停止 停止数据库使用如下命令: 在root用户下切换到实例用户su - db2inst1,执行命令db2stop force, 直到出现: 则数据库停止成功。 数据库参数 DB2的参数分为实例级参数和数据库级参数,以及实例注册变量 实例级参数:

主要设置实例使用的TCP/IP端口,查看实例端口通过命令:db2 get dbm cfg 数据库实例注册变量: 确认设置了通信协议为TCPIP,命令如下: 如果没有设置则通过命令db2set DB2COMM=tcpip进行设置。 数据库参数 确认内存自动调整已经打开, 否则连接到数据库并执行db2 update db cfg for sample using SELF_TUNING_MEM ON设置 数据库的缺省日志参数为

如果需要修改日志参数,可以通过命令 db2 udpate db cfg for 数据库名using 参数名参数值 例如增大备用日志文件数量到50,则可以通过命令修改 创建数据库 在实例用户下,执行 db2 "create <数据库名> on <目标路径> using codeset UTF-8 territory cn" 这样创建的数据库缺省页面大小(pagesize)为4K(4096),字符集为UTF-8,如果要使用GBK字符集,则把UTF-8修改为GBK即可。 创建缓冲池(bufferpool) 为了使用与缺省页面大小不一致的表空间,例如缺省页面大小为4K,但是需要使用32K页的表空间,就必须先创建页面大小为32K的缓冲池,命令如下:db2 "create bufferpool bp32k pagesize 32768" bp32k为缓冲池的名字,通常每种页面大小创建一个缓冲池即可,例如8K页面的缓冲池可以命名为bp8k。缓冲池缺省为自动调整大小,如果需要限定使用内存,则使用alter命令,如下: db2 "alter bufferpool bp32k size <页面数量> " <页面数量>为目标内存大小/页面大小,例如要为32K的bufferpool分配2GB内存,则: <页面数量>=2 * 1024 * 1024 / 32 = 65536 创建表空间 如果创建数据库默认页面大小的表空间,并且选择系统自动管理的模式,则使用命令: db2 "create tablespace <表空间名>"