DB2基本知识

1、db2inst1 作为实例所有者,db2fenc1 作为执行存储过程的隔离用户,dasusr1 作为DB2 管理服务器DAS 用户。


一些常用命令:

stty erase ^h

 

a.通过字符命令查看DB2中已有的存储过程

    SELECT SUBSTR(PROCSCHEMA,1,15),SUBSTR(PROCNAME,1,15) FROM SYSCAT.PROCEDURES;


其中,长度随实际而定,因为有可能有的存储过程名字过长,而且相似的两个存储过程名字的区别只是在最后几位体现出来。


b.执行存储过程

    db2 -td@ -f 存储过程文件名

 

2、 Linux或Unix下如何查看DB2所占用的端口号。

 

#假设你已经用db2start启动了数据库管理器,并且通讯方式配置为TCP/IP。

#首先切换到db2inst1用户 su - db2inst1

#查找TCP/IP Service name:db2 get dbm cfg | grep -i service

#通过上一句命令的输出(如db2c_db2inst1)在/etc/services文件中找对应的端口号 grep db2c_db2inst1 /etc/services

#这是你将会看到这么一行从上一句的输出 db2c_db2inst1   50000/tcp

#其中50000就是db2数据库所占用的端口号

 

转自:http://blog.csdn.net/huoyin/archive/2008/07/03/2609612.aspx

 

3、

db2   get   db   cfg   for   数据库名
查看数据库编码

 



1, 关闭 db2

db2stop 或 db2stop force 。

在脚本中一般两个都写上,避免使用 db2stop force 命令,如:

db2stop

db2stop force

2, 启动 db2

db2start

3, 创建数据库

db2 create db <db name>

或 db2 create db using codeset GBK territory CN

4, 删除数据库

执行此操作要小心。

db2 drop db <db name>

如果不能删除,断开所有数据库连接或者重启 db2 。

5, 断开数据库连接

db2 force application all

6, 连接数据库

db2 connect to <db name> user <username> using <password>

7, 断开数据库连接

断开当前数据库连接: db2 connect reset

或者: db2 disconnect current

断开所有数据库的连接:

db2 disconnect all

8, 备份数据库

db2 backup db <db name>

备注:执行以上命令之前需要断开数据库连接

9, 恢复数据库

db2 restore db <source db name>

10,               导出数据文件

db2move <db name> export [-sn < 模式名称,一般为 db2admin>] [-tn   < 表名,多个之间用逗号分隔 >]

11,               导入数据文件

db2move <db name> import

12,               列出数据库中所有 db

db2 list db directory

13,               进入 db2 命令环境

在“运行”中执行: db2cmd

14,               获取 db2 数据库管理配置环境信息        

db2 get dbm cfg

15,               获取 db2 某个数据库数据库管理配置环境信息         

db2 get db cfg for <db name>

或者:连接至某个数据库以后执行 db2 get db cfg 。

16,               设置联合数据库为可用(默认联合数据库不可用)

db2 update dbm cfg using federated yes

17,               更改 db2 日志空间的大小

备注:以下命令为了防止 db2 数据库过份使用硬盘空间而设,仅用于开发者自己机器上的 db2 ,如果是服务器,则参数需要修改。

db2 UPDATE DB CFG FOR <db name> USING logretain OFF logprimary 3 logsecond 2 logfilsiz 25600;

如果页大小是 4KB ,则以上命令创建 3 个 100M 的日志文件,占用 300MB 硬盘空间。 25600*4KB=102400KB 。

18,               创建临时表空间

DB2 CREATE USER TEMPORARY TABLESPACE STMASPACE PAGESIZE 32 K MANAGED BY DATABASE USING (FILE 'D:\DB2_TAB\STMASPACE.F1' 10000) EXTENTSIZE 256

19,               获取数据库管理器的快照数据

db2 –v get snapshot for dbm

20,               显示进行程号

db2 list applications show detail

21,               调查错误

sqlcode: 产品特定错误码;

sqlstate:DB2 系列产品的公共错误码,符合 ISO/ANSI 92SQL 标准。

调查 sqlcode : db2 ? sql1403n

调查 sqlstate: db2 ? 08004

22,               创建表空间

rem 创建缓冲池空间 8K

db2 connect to gather

db2 CREATE BUFFERPOOL STMABMP IMMEDIATE   SIZE 25000 PAGESIZE 8K

rem 创建表空间: STMA

rem 必须确认路径正确

rem D:\DB2Container\Stma

db2 drop tablespace stma

db2 CREATE   REGULAR TABLESPACE STMA PAGESIZE 8 K   MANAGED BY SYSTEM   USING ('D:\DB2Container\Stma' ) EXTENTSIZE 8 OVERHEAD 10.5 PREFETCHSIZE 8 TRANSFERRATE 0.14 BUFFERPOOL   STMABMP   DROPPED TABLE RECOVERY OFF

db2 connect reset

23,               将暂挂的数据恢复到前滚状态

db2 ROLLFORWARD DATABASE TESTDB TO END OF LOGS AND COMPLETE NORETRIEVE

24,               备份表空间

BACKUP DATABASE YNDC TABLESPACE ( USERSPACE1 ) TO "D:\temp" WITH 2 BUFFERS BUFFER 1024 PARALLELISM 1 WITHOUT PROMPTING

25,               创建 db2 工具数据库

db2 create tools catalog systools create new database toolsdb

26,               如何进行增量 / 差量备份

增量:上一次完整备份至本次备份之间增加的数据部分;

差量 (delta) :上次备份以来(可能是完整备份、增量备份或者差量备份)至本次备份之间增加的数据部分;

27,               更新所有表的统计信息

db2 -v connect to DB_NAME

db2 -v "select tbname, nleaf, nlevels, stats_timefrom sysibm.sysindexes"

db2 -v reorgchkupdate statistics on table all

db2 -v "select tbname, nleaf, nlevels, stats_timefrom sysibm.sysindexes"

db2 -v terminate

 

  原文地址 http://hi.baidu.com

 

 


DB2问题汇总:


1、创建一个表时,报错:

 

DB21034E  The command was processed as an SQL statement because it was not a 


valid Command Line Processor command.  During SQL processing it returned:


SQL0290N  Table space access is not allowed.  SQLSTATE=55039

网上说需要先backup下,但运行:


db2 backup db 数据库名


时,又报错:

SQL2048N  An error occurred while accessing object "3".  Reason code: "6".
 

对这个问题IBM的解释是:


在重新启动数据库时,如果发现该数据库的一个或多个容器有问题,那么表空间就会处于这种状态。(如果数据库的前一会话异常终止,例如停电时,就必须重新启动数据库。)

如果表空间处于 Drop Pending 状态,就不再可用,只能将其删除。


用命令:db2 list tablespaces show detail查看表空间状态。

将数据库中的所有状态为Drop Pending的表空间都删了,再运行:

 

db2 backup db 数据库名

 

成功。


创建新表,成功,问题暂时解决。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值