db2常用命令
发布时间:2025-05-22 11:14:20 发布人:远客网络
一、db2常用命令
connect to [数据库名] user [操作用户名] using [密码]
create bufferpool ibmdefault8k IMMEDIATE SIZE 5000 PAGESIZE 8 K;
创建缓冲池(16K)(OA_DIVERTASKRECORD):
create bufferpool ibmdefault16k IMMEDIATE SIZE 5000 PAGESIZE 16 K;
create bufferpool ibmdefault32k IMMEDIATE SIZE 5000 PAGESIZE 32 K;
CREATE TABLESPACE exoatbs IN DATABASE PARTITION GROUP IBMDEFAULTGROUP PAGESIZE 8K MANAGED BY SYSTEM USING('/home/exoa2/exoacontainer') EXTENTSIZE 32 PREFETCHSIZE 16 BUFFERPOOL IBMDEFAULT8K OVERHEAD 24.10 TRANSFERRATE 0.90 DROPPED TABLE RECOVERY OFF;
CREATE TABLESPACE exoatbs16k IN DATABASE PARTITION GROUP IBMDEFAULTGROUP PAGESIZE 16K MANAGED BY SYSTEM USING('/home/exoa2/exoacontainer16k') EXTENTSIZE 32 PREFETCHSIZE 16 BUFFERPOOL IBMDEFAULT16K OVERHEAD 24.1 TRANSFERRATE 0.90 DROPPED TABLE RECOVERY OFF;
CREATE TABLESPACE exoatbs32k IN DATABASE PARTITION GROUP IBMDEFAULTGROUP PAGESIZE 32K MANAGED BY SYSTEM USING('/home/exoa2/exoacontainer32k') EXTENTSIZE 32 PREFETCHSIZE 16 BUFFERPOOL IBMDEFAULT32K OVERHEAD 24.1 TRANSFERRATE 0.90 DROPPED TABLE RECOVERY OFF;
GRANT USE OF TABLESPACE exoatbs TO PUBLIC;
GRANT USE OF TABLESPACE exoatbs16k TO PUBLIC;
GRANT USE OF TABLESPACE exoatbs32k TO PUBLIC;
CREATE TEMPORARY TABLESPACE exoasystmp IN DATABASE PARTITION GROUP IBMTEMPGROUP PAGESIZE 8K MANAGED BY SYSTEM USING('/home/exoa2/exoasystmp') EXTENTSIZE 32 PREFETCHSIZE 16 BUFFERPOOL IBMDEFAULT8K OVERHEAD 24.10 TRANSFERRATE 0.90 DROPPED TABLE RECOVERY OFF;
CREATE TEMPORARY TABLESPACE exoasystmp16k IN DATABASE PARTITION GROUP IBMTEMPGROUP PAGESIZE 16K MANAGED BY SYSTEM USING('/home/exoa2/exoasystmp16k') EXTENTSIZE 32 PREFETCHSIZE 16 BUFFERPOOL IBMDEFAULT16K OVERHEAD 24.10 TRANSFERRATE 0.90 DROPPED TABLE RECOVERY OFF;
CREATE TEMPORARY TABLESPACE exoasystmp32k IN DATABASE PARTITION GROUP IBMTEMPGROUP PAGESIZE 32K MANAGED BY SYSTEM USING('/home/exoa2/exoasystmp32k') EXTENTSIZE 32 PREFETCHSIZE 16 BUFFERPOOL IBMDEFAULT32K OVERHEAD 24.10 TRANSFERRATE 0.90 DROPPED TABLE RECOVERY OFF;
db2 update dbm cfg using para_name para_value
db2 update db cfg for test using para_name para_value
db2 list tablespaces show detail
db2 delete from tb1 where id=1
db2 create index idx1 on tb1(id);
db2 create view view1 as select id from tb1
db2 catalog tcp node node_name remote server_ip server server_port
db2 catalog db db_name as db_alias at node node_name
db2 connect to db_alias user user_name using user_password
db2 export to myfile of ixf messages msg select* from tb1
db2 import from myfile of ixf messages msg replace into tb1
db2look-d db_alias-a-e-m-l-x-f-o db2look.sql
db2 list tablespace containers for tbs_id show detail
db2 ceate table tb1(id integer not null,name char(10))
db2 insert into tb1 values(1,’sam’);
db2 insert into tb2 values(2,’smitty’);
CREATE DATABASE DB2_GCB ON G: ALIAS DB2_GCB
USING CODESET GBK TERRITORY CN COLLATE USING SYSTEM DFT_EXTENT_SZ 32
connect to sample1 user db2admin using 8301206
create alias db2admin.tables for sysstat.tables;
CREATE ALIAS DB2ADMIN.VIEWS FOR SYSCAT.VIEWS
create alias db2admin.columns for syscat.columns;
create alias guest.columns for syscat.columns;
(select* from tables) definition only;
(select* from views) definition only;
insert into zjt_tables select* from tables;
insert into zjt_views select* from views;
create view V_zjt_tables as select tabschema,tabname from zjt_tables;
Insert into zjt_tables1 values(substr(o.tabschema,1,8),substr(o.tabname,1,10))
CREATE UNIQUE INDEX I_ztables_tabname
[size=3]ON zjt_tables(tabname);
where tabname='ZJT_TABLES';
select SUBSTR(COLNAME,1,20) as列名,TYPENAME as类型,LENGTH as长度
where tabname='ZJT_TABLES';
db2 describe table user1.department
db2 describe select* from user.tables
db2 describe indexes for table user1.department
where viewname='V_ZJT_TABLES';
where indname='I_ZTABLES_TABNAME';
SELECT SUBSTR(PROCSCHEMA,1,15),SUBSTR(PROCNAME,1,15)
select cast(ip as integer)+50 from log_comm_failed
db2 force applications all(强迫所有应用程序从数据库断开)
lock table test in exclusive mode
LIST TABLESPACE CONTAINERS FOR
Example: LIST TABLESPACE CONTAINERS FOR 1
grant select,delete,insert,update on tables to user
grant all on tables to user WITH GRANT OPTION
GRANT CREATEIN ON SCHEMA SCHEMA-name TO USER
grant connect,createtab,dbadm on database to user
grant control on index index-name to user
39. SQL帮助(说明 SQL语句的语法)
40. SQLSTATE帮助(说明 SQL的状态和类别代码)
41.更改与"管理服务器"相关的口令
db2admin setid username password
SELECT EMPNO, CAST(RESUME AS VARCHAR(370))
WHERE RESUME_FORMAT='ascii'
要运行 DB2 Java存储过程或 UDF,还需要更新服务器上的 DB2数据库管理程序配置,以包括在该机器上安装 JDK的路径
db2 update dbm cfg using JDK11_PATH d:sqllibjavajdk
update dbm cfg using SPM_NAME sample
SELECT DISTINCT GRANTEE, GRANTEETYPE,'DATABASE' FROM SYSCAT.DBAUTH
SELECT DISTINCT GRANTEE, GRANTEETYPE,'TABLE' FROM SYSCAT.TABAUTH
SELECT DISTINCT GRANTEE, GRANTEETYPE,'PACKAGE' FROM SYSCAT.PACKAGEAUTH
SELECT DISTINCT GRANTEE, GRANTEETYPE,'INDEX' FROM SYSCAT.INDEXAUTH
SELECT DISTINCT GRANTEE, GRANTEETYPE,'COLUMN' FROM SYSCAT.COLAUTH
SELECT DISTINCT GRANTEE, GRANTEETYPE,'SCHEMA' FROM SYSCAT.SCHEMAAUTH
SELECT DISTINCT GRANTEE, GRANTEETYPE,'SERVER' FROM SYSCAT.PASSTHRUAUTH
ORDER BY GRANTEE, GRANTEETYPE, 3
alter table yhdab ALTER kh SET DATA TYPE varchar(13);
alter table yhdab ALTER ID SET DATA TYPE varchar(13);
alter table lst_bsi alter bsi_money set data type int;
('20000300001','123456','user01','20000300001'),
('20000300002','123456','user02','20000300002');
('user01','业务申请'),
('user02','业务撤消'),
('user03','费用查询'),
('user04','费用自缴'),
('user05','费用预存'),
('user06','密码修改'),
('user07','发票打印'),
('gl01','改用户基本信息'),
('gl02','更改支付信息'),
('gl03','日统计功能'),
('gl04','冲帐功能'),
('gl05','对帐功能'),
('gl06','计费功能'),
('gl07','综合统计')
QUIESCE DATABASE IMMEDIATE FORCE CONNECTIONS;
BACKUP DATABASE EXOA TO"/home/exoa2/db2bak/" WITH 2 BUFFERS BUFFER 1024 PARALLELISM 1 WITHOUT PROMPTING;
以下是小弟在使用db2move中的一些经验,希望对大家有所帮助。
db2look-d YOURDB-a-e-x-o creatab.sql
如要导入的数据库名与原数据库不同,要修改creatab.sql中CONNECT项
在导入中可能因为种种原因发生中断,会使数据库暂挂
db2 list tablespaces show detail
db2 select tabname,tableid from syscat.tables where tableid=59
表名知道后到db2move.lst(在db2move YOURDB export的目录中)中找到相应的.ixf文件
db2 load from tab11.ixf of ixf terminate into db2admin.xxxxxxxxx
数据库会恢复正常,可再用db2 list tablespaces show detail查看
二、db2 误删表 怎么处理
1、在进行数据库管理时,如果不幸误删了表,可以尝试通过前滚恢复的方式进行处理。首先,确认数据库配置参数logretain或userexit已经打开,以便数据库能够前滚恢复。如果已经开启了归档日志,那么数据库会处于rollforward pending状态,因此需要进行一次全备份。
2、接下来,针对需要恢复的表空间,执行如下命令:db2"alter tablespace表空间名称 dropped table recovery on"。这将允许对该表空间内的表进行恢复。
3、使用db2 list history dropped table all for数据库名命令,可以获取被删除表的tableid(例如 0000000000006d0000020003)和表结构的生成语句(DDL)。请务必记录下这些信息,以便后续恢复时使用。
4、在前滚恢复过程中,被删除的表中的数据可以通过drop命令删除的表中的数据导出。恢复数据库后,如果想要恢复已删除的表,可以在前滚时使用recover dropped table tableid to目标目录的命令,将删除的表数据恢复到指定目录。
5、在目标目录中,利用之前记录的表结构生成语句,创建新的表。然后,使用import命令将导出的数据导入到新创建的表中。这样,您就可以恢复被误删的表及其数据。
6、值得注意的是,整个过程需要谨慎操作,确保数据的安全与完整。在执行前,建议先进行充分的备份,以免造成更大的损失。
三、sql 删除语句
1、delete语句用于删除表中的行。delete语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存
语法:DELETE FROM表名称 WHERE列名称=值,
如:删除student表中姓名为张三丰的学生信息-delete from studentwhere name=‘张三丰’;
2、drop(删除表):删除内容和定义,释放空间。简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表。
drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger)索引(index);依赖于该表的存储过程/函数将被保留,但其状态会变为:invalid。
3、truncate(清空表中的数据):删除内容、释放空间但不删除定义(保留表的数据结构)。与drop不同的是,只是清空表数据而已。
注意:truncate不能删除行数据,要删就要把表清空。
数据库操作中,经常要用到删除表和删除表数据,在实际应用中,三者的区别是明确的。
当你仍要保留该表,但要删除所有记录时,用 truncate;
当你要删除部分记录时(always with a WHERE clause),用 delete。
1、truncate table在功能上与不带 WHERE子句的 delete语句相同:二者均删除表中的全部行。
2、truncate比 delete速度快,且使用的系统和事务日志资源少。
3、truncate操作后的表比Delete操作后的表要快得多。