DB2 SQL Error: SQLCODE=-668, SQLSTATE=57016错误解决方法 这个错误是:表处于"装入暂挂"状态。 经多次尝试 总结方法: 1:reorg table <表>; 假如不好使 则下面方法 2,先前尝试装入(LOAD)此表失败。表的状态应该是load pending; 你可以执行一下db2 "load query table <tabname>"命令来查看你的表状态。 然后用db2 "load from /dev/null of del terminate into <tabname>"这个命令来解挂。 然后 reorg table <表> 3,恢复时候 没有指定过roll forward选项 是数据库的原因,因LOAD异常中断引起,可以用LOAD… TERMINATE 或者RESTART来解决. 先在C:建一个空文件test.txt, 然后db2 load from c:/test.txt of del terminate into tablename 然后 reorg table <表> 然后就可以了! 这几种方法尝试后OK。 2、231的was停止与启动: /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/bin/stopManager.sh /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/bin/stopNode.sh 用户:wasadmin/wasadmin /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/bin/startManager.sh /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/bin/startNode.sh /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/installedApps db2 force application all //强行终止所有连接 db2 terminate //清除所有db2的后台进程 前提: 1、导出数据库建表语句: db2look -d feelview -e -a -x -i db2inst1 -w db2inst1 -o ddl_feelview.sql 2、导出数据: mkdir data cd data db2move feelview export -u db2inst1 -p db2inst1 3、ftp到本地 4、ftp到建数据库的服务器 5、执行sql文件 db2 -tvf back_from_feelview.sql -z back_form_feelview.log back_from_feelview.sql connect to databasename; import from system_data.del of del modified by codepage=1386 insert into system_data 6、数据导出 export to system_data.del of del modified by codepage=1386 select * from system_data 7、数据导入 import from system_data.del of del modified by codepage=1386 insert into system_data db2start 启动命令 删除数据库: 1、db2 CONNECT RESET db2 force application all drop database feelview 删除成功之后,开始新建数据库,如下: 1、创建数据库 db2 CREATE DATABASE feelview ALIAS feelview USING CODESET UTF-8 TERRITORY CN PAGESIZE 16384 db2 drop db feelview #删除数据库 2、创建缓冲池 db2 connect to feelview user db2inst1 using db2inst1 select bpname from syscat.bufferpools #查看缓冲池 CREATE BUFFERPOOL FEELVIEWTMP IMMEDIATE SIZE 10000 AUTOMATIC PAGESIZE 16K drop BUFFERPOOL bufferpoolname#删除缓冲池 3、创建表空间: list tablespaces #查看表空间 CREATE LARGE TABLESPACE FEELVIEWDB PAGESIZE 16K MANAGED BY DATABASE USING ( FILE 'FEELVIEWTBS1' 32000,FILE 'FEELVIEWTBS2' 32000) EXTENTSIZE 32 OVERHEAD 10.5 PREFETCHSIZE 32 TRANSFERRATE 0.14 AUTORESIZE YES INCREASESIZE 50M BUFFERPOOL FEELVIEWTMP NO FILE SYSTEM CACHING DROP TABLESPACE <tablespace_name> #删除表空间 4、创建临时表空间: CREATE USER TEMPORARY TABLESPACE TEMPSPACE2 PAGESIZE 16K MANAGED BY DATABASE USING ( FILE 'FEELVIEWTEMP1' 32000) EXTENTSIZE 32 OVERHEAD 10.5 PREFETCHSIZE 32 TRANSFERRATE 0.14 AUTORESIZE YES INCREASESIZE 10M BUFFERPOOL FEELVIEWTMP DROP TABLESPACE <tablespace_name> #删除表空间 5、创建模式: CREATE SCHEMA DB2INST1 AUTHORIZATION DB2INST1 DB2 drop指定schema的所有表 . db2 -x "select 'drop table '||trim(tabschema)||'.'||tabname||';'from syscat.tables where tabschema ='schemaname'" > droptable.sql db2 -tf droptable.sql db2 -x "select 'drop view '||trim(tabschema)||'.'||tabname||';'from syscat.tables where tabschema ='schemaname'" > dropview.sql db2 -tf dropview.sql DROP SCHEMA ERRORSCHEMA1 RESTRICT --schema中不能含有任何对象 --RESTRICT 关键字强制实施以下规则:不能在指定的模式中为要从数据库中删除的模式定义对象。RESTRICT 关键字并非可选关键字 6、get db cfg for feelview 7、cd 到有建表语句的目录下,执行以下命令: db2 -tvf ddl.sql -z create.log 8、cd到有导出数据的目录下,执行以下命令: db2move feelview import -u db2inst1 -p db2inst1 --查看连接数 select * from table(snapshot_appl_info('',-2) )as a; select * from table(snapshot_appl('',-2) )as a; -- 查看连接参数 db2 get db cfg for feelview --DB2中两时间相减求之前相差多少月? SELECT timestampdiff (256, char(timestamp('2013-12-30 20:30:30') - timestamp('2001-09-26 15:24:23'))) AS "间隔年", timestampdiff (128, char(timestamp('2013-12-30 20:30:30') - timestamp('2001-09-26 15:24:23'))) AS "间隔季度", timestampdiff (64, char(timestamp('2013-12-30 20:30:30') - timestamp('2001-09-26 15:24:23'))) AS "间隔月", timestampdiff (32, char(timestamp('2013-12-30 20:30:30') - timestamp('2001-09-26 15:24:23'))) AS "间隔周", timestampdiff (16, char(timestamp('2013-12-30 20:30:30') - timestamp('2001-09-26 15:24:23'))) AS "间隔日", timestampdiff (8, char(timestamp('2013-12-30 20:30:30') - timestamp('2001-09-26 15:24:23'))) AS "间隔时", timestampdiff (4, char(timestamp('2013-12-30 20:30:30') - timestamp('2001-09-26 15:24:23'))) AS "间隔分", timestampdiff (2, char(timestamp('2013-12-30 20:30:30') - timestamp('2001-09-26 15:24:23'))) AS "间隔秒" FROM SYSIBM.SYSDUMMY1; select * from sysibm.systables where type='T' and creator='DB2INST1' select * from sysibm.columns where table_name='SYSTEM_DATA' ; --查看表结构 删除db2 数据库 db2>disconnect current字面意思是“断开当前连接”; db2 catalog db dbname. db2 drop db dbname. DB2怎么删除表空间所以数据 DROP TABLESPACE <tablespace_name> db2 表空间常用命令(未完待续)(2013-11-22 19:26:37)转载▼标签: it 分类: DB2 # 1. 查看所有的表空间 db2 list tablespaces # 2. 查看某个表空间的容器 db2 list tablespace containers for [ show detail ] 如: db2 list tablespace containers for 3 show detail # 3. 查看表空间的配置信息,使用情况及容器信息 db2pd -d -tablespaces 如:db2pd -d zdb -tablespaces # 4. 通过snapshot 获取表空间信息 db2 get snapshot for tablespaces on 对于DMS( database manage ) 表空间,提供了几个方法更改表空间容器。 1. Add 用来增加新的容器 2. Drop 删除容器 3. Extend 扩展已有容器大小 4. Reduce 缩减已有容器大小 5. Resize 重新设定容器大小 Add和Drop操作,表空间容器之间会发生数据重新平衡(rebalance),Reduce和Resize操作,需要确保修改后的表空间容器有足够的空间,否则DB2会拒绝该操作。 日常运维中出现表空间满的情况时,根据对存储空间和对运维的影响,有以下三种方案: 1). 如果表空间对应的存储容器中还有未分配空间,可通过alter tablespace 的 extend 或 resize 选项扩展已有表空间容器的大小。如下面的例子是在每个容器上扩展了50GB: db2 "alter tablespace tbs_dat extend ( file '/db2tbsp/dat_1' 50G, file '/db2tbsp/dat_2' 50G) "; 2). 如果表空间容器对应的存储中没有剩下空间时,可以通过alter tablespace 的 add 选项增加新的表空间容器。需要注意的是:通过add增加容器会在容器之间进行数据Reblance,即数据重新平衡。如果数据量很大,reblance的时间会很长,对系统性能会造成很大的影响。下面是增加一个新的容器,表空间的不同容器内会发生reblance: db2 "alter tablespace tbs_dat add ( file '/db2tbsp/dat_2' 10G)" 3). 通过alter tablespace begin new stripe set 选项。begin new stripe set 选项是当已有容器使用完后,再使用新增加的容器。与方法2不同,该选项不会在容器之间做reblance,不会对系统造成性能影响,但它会造成数据偏移。如下: db2 "alter tablespace tbs_dat begin new stripe set (file '/db2tbsp/dat_2' 10G) " # 删除表空间tbs_dat的容器dat_2 db2 "alter tablespace tbs_dat drop ( file '/db2tbsp/dat_2' )" 表空间容器的路径变化时,需要建立一个软链接(容器的原路径软链接到容器的新路径),如: ln -s /db2tbs/zdb/dat_1 /db2tbsp/dat_1 查看、修改、创建、删除缓冲池 查看缓冲池大小: SELECT BPNAME,NPAGES,PAGESIZE FROM SYSCAT.BUFFERPOOLS 修改缓冲池大小: ALTER BUFFERPOOL <bp_name> SIZE <number_of_pages> 创建缓冲池时指定大小: CREATE BUFFERPOOL <bp_name> SIZE <number_of_pages> PAGESIZE <integer K> 删除缓冲池: $ db2 drop BUFFERPOOL PAY_SYS_POOL db2中断开数据库连接 2010-04-26 15:39:52 分类: db2中connect reset、disconnect current、和quit这三个命令有什么区别?或者说连上db2后哪个能真正断开连接? connect reset字面意思是“连接重置”; disconnect current字面意思是“断开当前连接”; 以上两个命令都能断开数据库连接; quit是退出交互模式,相当于在使用Ctrl+C退出交互模式;使用此命令后只是退出了交互模式,数据库连接并未断开,此时如果输入db2进入交互模式,将可以继续使用以前的连接进行sql操作(前提是没有使用connect reset或者disconnect current命令断开连接)。 而我平时一直使用的是quit命令,现在从试验结果看,这是个误用,是自己以前没弄明白造成的,为此记录一下。正确的方式是:使用connect reset或者disconnect current命令断开连接之后再quit退出。 连接数据库后执行connect reset命令结果: 连接数据库后执行disconnect current命令结果: 连接数据库后执行quit命令结果: 补充:db2 terminate --断开与数据库的连接。