db2使用总结

1.连接数据库的命令
connect to dbname user username using password;
connect to dbufgov;
2.创建数据库的命令
create db dbufgov
3.修改用户密码
connect to dbufgov user db2admin using db2admin new asdf confirm asdf


4.新建缓冲池
create bufferpool bp32k all nodes size -1 pagesize 32k 
bp32k为该缓冲池的名称
32K为页大小;
5.新建表空间
create regular tablespace  tablespace1 pagesize 32k managed by database using(file '/usr/yixiayizi/tablespace1' 5g) bufferpool bp32k


select count(*) from all_tables where owner='DB2ADMIN'
6.重启数据库
connect to nm1223 user db2admin using db2admin
quiesce db immediate force connections
terminate
deactivate db nm1223
connect to nm1223 user db2admin using 'qwe123!'
unquiesce db
7.查询表所在的表空间
select tbspace from syscat.tables where tabname='PAY_VOUCHER'
8.向表空间中添加新的容器:
ALTER TABLESPACE 表空间名 ADD (FILE '容器文件路径和名称' 容器文件大小)
9.改变用户使用的表空间
GRANT USE OF TABLESPACE tablespace1 TO USER 'db2admin'
10.删除表空间
DROP TABLESPACE <tablespace_name>


11 日志文件已满
SQLStateSQLState '57011' and errorCode '-964'
  原因:数据库的日志文件已满
  解决方法:修改日志文件大小(加大),增加日志文件个数,增加辅助日志文件个数(三个修改参数可以任意选择)


  查看数据库的配置参数:get db cfg for <dbname>   
         日志文件大小(4KB)  (LOGFILSIZ) = 1024 (每个日志文件大小为1024*4KB=4MB)
         主日志文件的数目     (LOGPRIMARY) = 3
         辅助日志文件的数目   (LOGSECOND) = 1


  修改数据库的配置参数:update db cfg for <dbname> using <p> <v>
  修改日志文件大小:update db cfg for <dbname> using LOGFILSIZ  4096
  修改主日志文件个数:update db cfg for <dbname> using LOGPRIMARY  6
  修改辅助日志文件个数:update db cfg for <dbname> using LOGSECOND 10
  
12.创建数据库的命令:


CREATE DATABASE DB1103 AUTOMATIC STORAGE yes  pagesize 32768    //设置表空间自动存储


13.授权数据库管理权限给用户
grant dbadm on database to user db2admin


14.创建函数实例
--创建序列sys_guid
create sequence sys_guid
minvalue 1
maxvalue 2000000000
start with 201
increment by 1
cache 200
cycle
order;
------------------------
create or replace function sys_guid()
   returns varchar(50)
   LANGUAGE SQL 
   BEGIN ATOMIC
   DECLARE  guid VARCHAR(50);--
   set guid=(NEXT VALUE FOR sys_guid);-- sys_guid为一个序列
   return guid;--
  END;
  


15 db2 jdbc预编译查询报错:
select r.role_id,r.role_code,r.role_name,r.user_sys_id,r.enabled,r.role_type,r.last_ver from sys_role r,sys_usermanage u, sys_user_role_rule ur,sys_user_region sur where r.role_id = ur.role_id and u.user_id = ur.user_id  and r.enabled = 1 and u.user_id=sur.user_id and sur.rg_code = ur.rg_code and u.user_code = ? and ur.rg_code=? and ur.set_year=?  and (r.user_sys_id= ? or r.user_sys_id=001) order by r.role_code
com.ibm.db2.jcc.am.SqlDataException: DB2 SQL Error: SQLCODE=-420, SQLSTATE=22018, SQLERRMC=DECFLOAT, DRIVER=3.63.123
at com.ibm.db2.jcc.am.fd.a(fd.java:671)
at com.ibm.db2.jcc.am.fd.a(fd.java:60)
at com.ibm.db2.jcc.am.fd.a(fd.java:127)
at com.ibm.db2.jcc.am.vn.b(vn.java:4031)
at com.ibm.db2.jcc.am.vn.a(vn.java:4013)
at com.ibm.db2.jcc.t4.cb.a(cb.java:835)
at com.ibm.db2.jcc.t4.cb.n(cb.java:801)
at com.ibm.db2.jcc.t4.cb.j(cb.java:253)
at com.ibm.db2.jcc.t4.cb.d(cb.java:55)
at com.ibm.db2.jcc.t4.q.c(q.java:44)
at com.ibm.db2.jcc.t4.sb.j(sb.java:147)
at com.ibm.db2.jcc.am.ho.ib(ho.java:2119)
at com.ibm.db2.jcc.am.io.b(io.java:4299)
at com.ibm.db2.jcc.am.io.cc(io.java:722)
at com.ibm.db2.jcc.am.io.executeQuery(io.java:696)
解决方法:查询sql中user_sys_id为VARCHAR类型,查询条件中有一个r.user_sys_id=001,数字转字符失败


16 db2
2015-11-09 15:04:38: [ERROR]( Log.java,115 ) - Result set already closedjava.sql.SQLException: Result set already closed
at weblogic.jdbc.wrapper.ResultSet.checkResultSet(ResultSet.java:110)
at weblogic.jdbc.wrapper.ResultSet.preInvocationHandler(ResultSet.java:65)
at weblogic.jdbc.wrapper.ResultSet_weblogic_jdbcx_base_BaseResultSetWrapper.next(Unknown Source)
at gov.gfmis.fap.util.dao.springdao.GeneralDAO.findBySqlWithYear(GeneralDAO.java:1670)
at gov.gfmis.fap.util.paramanage.ParaManageBO.getLoginParaMapNew(ParaManageBO.java:640)
at gov.gfmis.fap.util.paramanage.ParaManageBO.initiaGlobalParaByYear(ParaManageBO.java:530)
数据库驱动版本不对




18  修改表字段的长度   alter table SYS_GUIDE_MAIN_CONFIG alter column GUIDE_GOAL set data type VARCHAR(120);


19 查看序列的信息
select * from sysibm.SYSSEQUENCES where seqname like 'SEQ%'


20 查看表信息:
SELECT
 d.name tbName,
COALESCE(d.remarks, '') tbDesc,
a.name columnName,
a.coltype columnType ,
decode(a.nulls,'Y','1','0') notNull,
decode(a.identity,'Y','1','0') auto,
a.longlength width,
a.scale precision,
COALESCE(a.remarks, '') comment,
decode(n.unique_colcount,'1','1','0') unique,
decode(n.uniquerule,'P','1','0') masterKey,
COALESCE(n.name, '') indexName
FROM
sysibm.syscolumns a
INNER JOIN sysibm.systables d on a.tbname=d.name
LEFT JOIN sysibm.sysindexes n on n.tbname=d.name and SUBSTR(colnames,2)=a.name
where
d.type='T'  and d.name='PAY_VOUCHER'


21 
com.ibm.db2.jcc.am.SqlException: DB2 SQL Error: SQLCODE=-964, SQLSTATE=57011, SQLERRMC=null, DRIVER=3.63.123
at com.ibm.db2.jcc.am.fd.a(fd.java:682)
at com.ibm.db2.jcc.am.fd.a(fd.java:60)
at com.ibm.db2.jcc.am.fd.a(fd.java:127)
at com.ibm.db2.jcc.am.ho.b(ho.java:2317)
at com.ibm.db2.jcc.am.ho.c(ho.java:2300)
at com.ibm.db2.jcc.t4.cb.l(cb.java:370)
at com.ibm.db2.jcc.t4.cb.a(cb.java:62)
at com.ibm.db2.jcc.t4.q.a(q.java:50)
at com.ibm.db2.jcc.t4.tb.b(tb.java:220)
at com.ibm.db2.jcc.am.io.lc(io.java:3318)
at com.ibm.db2.jcc.am.io.b(io.java:4275)
at com.ibm.db2.jcc.am.io.dc(io.java:759)
at com.ibm.db2.jcc.am.io.executeUpdate(io.java:742)
原因:该数据库的日志文件已满
解决办法:加大日志文件大小,增加日志文件个数,增加辅助日志文件个数
查看配置参数命令:get db cfg for <dbname>;
修改配置参数命令:
修改日志文件大小:update db cfg for <dbname> using LOGFILSIZ 4096
修改主日志文件个数:update db cfg for <dbname> using LOGPRIMARY 20
修改辅助日志文件个数:update db cfg for <dbname> using LOGSECOND 10


22 设置db2表字段的默认值
 ALTER TABLE ELE_BUDGET_ITEM_SUMMARY ALTER is_deleted SET DEFAULT 0 
 
23 错误:com.ibm.db2.jcc.b.SqlException: DB2 SQL error: SQLCODE: -407, SQLSTATE: 23502, SQLERRMC:
TBSPACEID=2, TABLEID=640, COLNO=0
解决方法:插入或更新值为空,但该列不能包含空值
使用如下的sql来查询报错的地段信息:
select tabschema, tabname, colname
from syscat.columns
where colno = 5 and
( tabschema, tabname ) in
( select tabschema, tabname
from syscat.tables
where tbspaceid = 2 and

tableid = 413 )


24  ---查看数据库管理配置环境信息
get db cfg for nm1226 show detail

25 ---更改locklist
update db cfg for DBNAME using locklist 100000


26 --更改maxlocks
update db cfg for DBNAME using maxlocks 80


27 --查看所用数据库的实例

 list database directory 

28 --- 退出clp,但数据库连接不断开
    quit 
     ---- 断开数据库连接但不退出clp  包含一个commit动作
connect reset
     断开数据库连接,同时退出clp
terminate

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值