1.db2upp@wlaix6b:/home/db2upp>db2 connect to upp
SQL1762N Unable to connect to database because there is not enough space to
allocate active log files. SQLSTATE=08004
解决:执行db2 "update db cfg using newlogpath '/db2log/db2upp/NODE0000/SQL00001/SQLOGDIR/'";指定日志存放位置
2.服务端与客户端只有一方能连接数据库:
释放IPC资源
PRGN=`basename $0`
TMPF="/var/tmp/$PRGN.$$"
#================#
# FUNCTION: quit #
#================#
quit () {
rm -f $TMPF
exit $1
}
#===============#
# MAIN Entrance #
#===============#
# if [ $# -lt 1 ]; then
# echo "Usage: $PRGN {process_name}"
# quit 1
# fi
uid=`id -u`
if [ $uid -eq 0 ]; then
echo "Superuser cannot use this program !"
quit 1
fi
ipcs | grep $LOGNAME > $TMPF
cnt=`cat $TMPF | wc -l`
while [ $cnt -gt 0 ]; do
line=`sed -n "${cnt}p" $TMPF`
rnm=`echo $line | cut -d " " -f1`
rid=`echo $line | cut -d " " -f2`
echo "killing ${rnm} ... ${rid}"
ipcrm -$rnm $rid
cnt=`expr $cnt - 1`
done
quit 0
重启db2数据库
Db2stop force
Db2start
3.客户端连接数据库时报:ERRORCODE=-4499, SQLSTATE=08001
解决:db2 get dbm cfg|grep SVCENAME 查看连接端口
4.启动/停止数据库报错
07/11/2013 16:36:26 0 0 SQL1072C The request failed because the database manager resources are in an inconsistent state. The database manager might have been incorrectly terminated, or another application might be using system resources in a way that conflicts with the use of system resources by the database manager.
SQL1025N The database manager was not stopped because databases are still active.
删除数据库 从新建(未找到解决办法)
5.如果容器用的是RAW,当已经在RAW设备上创建容器后,若没有通过正常的步骤删除表空间所在的数据库,也没有直接删除容器或者容器所在的表空间,则再次利用这些RAW设备时,DB2会报:The container is already in use
此时应该使用db2untag命令释放container标志
如:db2untag -f /dev/rdb2datalv
6.DB2无法创建到指定目录时 提示SQL1052N 数据库路径XXX/ 不存在
解决:db2set DB2_CREATE_DB_ON_PATH=YES
7.无法删除DB2数据库
解决:db2 force applications all 先清除所有连接 再执行drop db
8.服务器关闭,第二天重启后连接数据库报
SQL1116N A connection to or activation of database "UPP" cannot be made
9.because of BACKUP PENDING. SQLSTATE=57019
解决:数据库进入归档模式,执行离线全备份后可恢复正常
db2 backup db upp to /tmp/db2upp (/tmp/db2upp是一个有权限操作的位置即可) 恢复正常
Db2实用命令:
1.启动db2
db2start
2.停止db2
db2stop force
3.查看数据库连接:
db2 list applications
4.强制杀掉所有连接
db2 force applications all
5.连接数据库
例:db2 connect to upp user db2upp using db2upp #连接upp数据库schame db2upp密码db2upp
6.断开数据库连接
db2 connect reset
6.查看当前实例数据库编目信息
db2 list database directory
7.查看当前数据库所有表空间
db2 list tablespaces show detail
8.查看当前用户权限
db2 get authorizations
9.列出所有用户表
db2 list tables
10.创建schema
CREATE schema db2upp
11.查看当前数据库表空间分配情况
db2 list tablespaces show detail
12.db2命令创建存储过程
存储过程如下:
Create or replace procedure “db2upp”.”SP_BCPSYNDTLSTATUS”
...
...
...
P1:begin
end P1
@
保存为:tt.sql
命令:db2 -td@ -vf tt.sql
13.db2命令查看存储过程
db2 “select * from syscat.PROCEDURES where procname = ‘SP_BCPS_BCPSYNDTLSTATUS’”
14.查询DB2UPP用户的所有存储过程
db2 “select PROCNAME from syscat.PROCEDURES where PROCESCHEMA = ‘DB2UPP’”