排障经历:使用db2relocatedb

本文介绍了一种解决DB2数据库连接失败的方法。通过更改DBPATH设置并使用db2relocatedb命令,成功解决了因NFS文件系统引起的连接问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个客户重启LINUX服务器后,db2实例可以启动,但是无法成功连接,通过检查db2diag.log,出现了下面的错误。这种错误通常是由于其他db2进程例如db2cos没有释放加在控制文件上的锁导致的。常规的解决办法是使用db2_kill杀掉其他进程,以及用ipclean清理IPC资源。我都试了,甚至也试了重启机器,这个问题都无法解决。
2012-11-06-13.43.03.157979+480 I49705715E481       LEVEL: Error
PID     : 910                  TID  : 47931096820032PROC : db2sysc 0
INSTANCE: db2inst1             NODE : 000          DB   : YXDB
APPHDL  : 0-19                 APPID: 10.137.249.101.2938.121106054304
AUTHID  : DB2INST1
EDUID   : 31                   EDUNAME: db2agent (YXDB) 0
FUNCTION: DB2 UDB, base sys utilities, sqle_GetRelDBLockForInstance, probe:25
MESSAGE : /arch/db2log/db2inst1/NODE0000/SQL00001/SQLINSLK
2012-11-06-13.43.03.157979+480 I49706197E572       LEVEL: Severe
PID     : 910                  TID  : 47931096820032PROC : db2sysc 0
INSTANCE: db2inst1             NODE : 000          DB   : YXDB
APPHDL  : 0-19                 APPID: 10.137.249.101.2938.121106054304
AUTHID  : DB2INST1
EDUID   : 31                   EDUNAME: db2agent (YXDB) 0
FUNCTION: DB2 UDB, base sys utilities, sqeLocalDatabase::FirstConnect, probe:5
RETCODE : ZRC=0x870F0016=-2029060074=SQLO_SHAR "File sharing violation."
          DIA8519C A file sharing violation has occurred, filename was "".
 
后来,注意到,客户所使用数据库的DB PATH是在/arch/db2log 这个NFS文件系统挂载上的,所以尝试着用db2relocatedb命令将DB PATH从/arch/db2log移动到盘阵/data1/dbpath,最终解决了这个问题。
 
步骤如下:
 
1,检查原来的建库语句:
create database yxdb automatic storage yes on /data1, /data2, /data3 dbpath on /arch/db2log ALIAS yxdb2 using codeset UTF-8 territory CN pagesize 32 k
 
2,复制/arch/db2log下所有文件到新的路径/data1/dbpath
cp -rf /arch/db2log/*   /data1/dbpath
3,编辑移动文件rel.cfg,内容如下:
DB_NAME=yxdb
DB_PATH=/arch/db2log,/data1/dbpath
INSTANCE=db2inst1
 4,使用db2relocatedb命令修改DB PATH
db2relocatedb -f rel.cfg
Files and control structures were changed successfully.
Database was catalogued successfully.
DBT1000I  The tool completed successfully.
 5,成功连接
 db2 connect to yxdb
 Database Connection Information
 Database server        = DB2/LINUX 9.7.6
 SQL authorization ID   = DB2INST1
 Local database alias   = yxdb

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25714482/viewspace-748508/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/25714482/viewspace-748508/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值