admin管理员组文章数量:1565271
2024年7月30日发(作者:)
1.1 补丁安装(可选)
若DB2安装介质文件中已包含fix pack5版本的补丁,通常不用进行补丁安装。但若是在
原有版本之上打补丁,可以参考本节的内容。
DPF或者HADR或者PureScale环境中,需要在每台物理机器或者VM上安装DB2补丁
包。
注意:对于DPF或者PureScale这边,没有什么特别注意的地方,也是按照同样的步骤安
装、更新实例、启动、重新绑定程序包就可以了。(PureScale是多个实例,一个DB,DPF是
1个实例多个partition),就需要在每一台物理机器或者VM上执行相同的步骤安装补丁。在
启动实例之前需要确保所有机器上的补丁都在同一个补丁层次上。
1.1.1 准备工作
1.1.1.1 解压缩补丁包
将下载后的补丁包压缩文件上传到DB2数据库服务器的/tmp/db2v105目录下。
通过root用户登录DB2数据库服务器,具体步骤如下:
# cd /tmp/db2v105
执行解压补丁包命令:
AIX 参考命令
# gzip -d | tar -xvf -
Linux 参考命令
# tar -zxvf
1.1.1.2 停止DB2实例进程
1. 作为 root 用户登录DB2数据库服务器。
2. 确定与 DB2 副本相关联的所有实例。
发出以下命令:
AIX系统执行如下命令
# /opt/IBM/db2/V10.5/instance/db2ilist
linux系统执行如下命令
# /opt/ibm/db2/V10.5/instance/db2ilist
系统回显出当前DB2安装副本下的所有数据库实例的清单(如果不存在数据库实
例,本节后续步骤不需要执行)。
注:/opt/ibm/db2/V10.5/bin/db2greg -dump也可查看各种版本下的所有实例。
3. 对 DB2 副本中的每个实例运行下列命令:
# su - db2inst1
# . /home/db2inst1/sqllib/db2profile
# db2 force applications all
# db2 terminate
# db2stop
# db2licd -end # run at each physical partition
# exit
其中 db2inst1 表示实例所有者的名称。若存在多个数据库实例,请按照db2inst1实例
的停止步骤,停止每个存在的实例进程。
如果是 PowerHASystemMirror用户,那么必须使用 ha_db2stop 命令而不是 db2stop命
令来停止 DB2。如果使用 db2stop 命令而不是 ha_db2stop 命令,将触发故障事件。
1.1.1.3 停止DB2管理服务器
如果 DB2 管理服务器 (DAS) 属于要更新的 DB2 副本(如果服务器上没有安装
DAS管理服务器,则跳过此步),请停止 DAS:
首先确认是否安装了DAS:
AIX系统执行:
#/opt/IBM/db2/V10.5/instance/daslist
Linux系统执行
#/opt/ibm/db2/V10.5/instance/daslist
如果安装了DAS,将会看到类似于这样的输出结果:dasusr1
如果没有安装,将不会有输出结果显示
停止DAS:
# su - dasusr1
# . $HOME/das/dasprofile
# db2admin stop
# exit
其中 dasusr1 表示 DAS 所有者名称。
注: 由于系统上只能有一个 DAS,因此,这个步骤将影响系统上的所有其他 DB2 副
本。
1.1.1.4 卸载内存共享库
在 AIX上,请在安装前运行 slibclean 以从内存中卸装未使用的共享库:
# /usr/sbin/slibclean
1.1.1.5 禁用故障监视器
1. 如果启动了故障监视器守护程序, 请停止故障监视器守护程序:
第一步:要确定是否启动了FM,请发出以下命令(用root用户运行):
AIX系统执行:
# /opt/IBM/db2/V10.5/bin/db2fm -i db2inst1 -S
Linux系统执行:
# /opt/ibm/db2/V10.5/bin/db2fm -i db2inst1 -S
如果启动了FM,那么将看到类似于以下内容的输出:Gcf module 'fault monitor' state
is AVAILABLE,
如果禁用了FM,那么输出内容将是:Gcf module 'fault monitor' is NOT operable
禁用故障监视器命令如下:
AIX系统执行:
# /opt/IBM/db2/V10.5/bin/db2fm -i db2inst1 -D
Linux系统执行:
# /opt/ibm/db2/V10.5/bin/db2fm -i db2inst1 -D
必须对 DB2 副本中的每个实例执行一次此命令。
2. 如果启动了故障监视器协调程序 (FMC),请阻止实例自动启动(用root用户运行):
第一步:要确定是否启动了 FMC,请发出以下命令:
AIX系统执行:
# /opt/IBM/db2/V10.5/bin/db2fmcu
Linux系统执行:
# /opt/ibm/db2/V10.5/bin/db2fmcu
如果启动了 FMC,那么将看到类似于以下内容的输出:FMC: up: PID = 3415。如果
禁用了 FMC,那么 db2fmcu 命令的输出将是:FMC: down。
禁用FMC命令如下:
AIX系统执行:
# /opt/IBM/db2/V10.5/bin/db2fmcu -d
Linux系统执行:
# /opt/ibm/db2/V10.5/bin/db2fmcu -d
第二步:如果启动了 FMC,请确定是否有实例被配置为在系统每次重新启动之后就
自动启动。 发出以下命令:
AIX系统执行:
# /opt/IBM/db2/V10.5/instance/db2iset -i db2inst1 -all
Linux系统执行:
# /opt/ibm/db2/V10.5/instance/db2iset -i db2inst1 -all
必须对 DB2 副本中的每个实例执行一次此命令。如果 db2iset 命令的输出包含以下内
容,那么这表示该实例已配置为自动启动:DB2AUTOSTART=YES
第三步:阻止这些实例自动启动。 发出以下命令:
AIX系统执行:
# /opt/IBM/db2/V10.5/instance/db2iauto -off db2inst1
Linux系统执行:
# /opt/ibm/db2/V10.5/instance/ db2iauto -off db2inst1
在完成了补丁包的安装之后,可以重新启动实例的自动启动:
AIX系统执行:
# /opt/IBM/db2/V10.5/instance/db2iauto -on db2inst1
Linux系统执行:
# /opt/ibm/db2/V10.5/instance/ db2iauto -on db2inst1
3. 确保对要更新的实例清除了所有 DB2 进程间通信。作为实例所有者,在每个物理分
区中运行以下命令:
# su - db2inst1
# ipclean
系统回显:/home/db2inst1/sqllib/bin/ipclean: Removing DB2 engine and client's IPC
resources for db2inst1.则执行成功。
1.1.2 安装补丁包
要安装补丁包:
DPF或者HADR或者PureScale环境中,需要在每台物理机器或者VM上安装DB2补丁
包:
1. 对于 root 用户安装,请作为 root 用户登录。
2. 切换至包含补丁包映像的目录。
3. 通过发出 installFixPack 命令来启动安装。 例如:
AIX系统执行:
# ./installFixPack -f update -b /opt/IBM/db2/V10.5
Linux系统执行:
# ./installFixPack -f update -b /opt/ibm/db2/V10.5
系统回显:
DBI1017I installFixPack is updating the DB2 product(s) installed in location
/opt/IBM/db2/V10.5.
DB2 installation is being initialized.
……
The execution completed successfully.
出现【The execution completed successfully.】后,补丁安装成功。
注: 缺省情况下,installFixPak 命令将落实 AIX 上所有已更新的文件集。在 AIX 上,如
果不希望落实更新,则应按如下所示发出带 -a 选项(用于“应用”而不是“落实”)的
installFixPak 命令, 一般情况下不用。
注意:如果是刚安装的DB2,还没有创建实例,则不需要进行下面的步骤。如果是在现有
DB2系统上进行更新,有实例存在,installFixPak之后,必须更新所有实例。
1.1.3 更新实例和DAS级别
更新该DB2副本(版本)下的所有实例和DAS以使用新的 DB2 级别:
步骤:
1. 备份db2profile or db2cshrc 文件。由于 db2iupdt 命令覆盖 db2profile 和 db2cshrc 脚本,
因此此操作是必需的。它不覆盖 userprofile 和 usercshrc 脚本。2.
2. 以 root 用户登录更新实例,对于每个实例,发出下列命令:
# install_home/instance/db2iupdt iname
其中iname 表示实例名,install_home 表示适用于DB2软件的安装目录。
3. 如果数据库管理服务器(DAS)实例存在并且是 DB2 版本 10.5 DAS 实例,要更新 DAS
实例,发出以下命令:
install_home/instance/dasupdt dasname
(好像install_home/instance/dasupdt 也可以)
其中dasname 表示 DAS 所有者名(dasusr1),install_home 表示DB2软件的安装目录。
1.1.4 更新数据库级别
升级数据库到最新FixPack Level:
以实例用户执行:
DB2V9里面:
$ db2updv9 -d dbname
DB2V10.5里面:
$ db2updv105 -d dbname
1.1.5 重启DB2实例和DAS
以实例用户执行:
1. 启动许可证服务器
$ db2licd -d
2. 启动实例(把该DB2副本下所有的实例都启动起来)
$ db2start
3. 启动DAS数据库管理器,以 DAS 所有者身份 (dasusr1) 执行:
# su - dasusr1
# db2admin start
# exit
1.1.6 绑定程序
所有实例的下的所有数据库都需要做这个操作。
1. 实例用户连接数据库:
$ db2 terminate
$ db2 connect to dbname
2. 绑定, 和 文件
注意: 和 包含 DB2 UDB 使用所必需的绑定文件的列表,@符号不能
少,因为bind只能操作.bnd文件,如果是.lst文件,必须带@符号。
执行:
$ db2 bind path/ BLOCKING ALL GRANT PUBLIC SQLERROR CONTINUE
$ db2 bind path/@ BLOCKING ALL GRANT PUBLIC ACTION ADD
$ db2 bind path/@ BLOCKING ALL GRANT PUBLIC ACTION ADD
其中path表示绑定文件所在的目录的全路径名,例如 $HOME/sqllib/bnd(如:
/db2home/db2inst1/sqllib/bnd)。
如:
$ db2 bind /home/db2inst1/sqllib/bnd/ blocking all grant public SQLERROR
CONTINUE
$ db2 bind /home/db2inst1/sqllib/bnd/@ blocking all grant public ACTION ADD
$ db2 bind /home/db2inst1/sqllib/bnd/@ blocking all grant public ACTION ADD
或:
$ db2 BIND $DB2DIR/bnd/ BLOCKING ALL GRANT PUBLIC SQLERROR
CONTINUE
$ db2 BIND $DB2DIR/bnd/@ BLOCKING ALL GRANT PULIC ACTION ADD
$ db2 bind $DB2DIR/bnd/@ BLOCKING ALL GRANT PULIC ACTION ADD
其中 $DB2DIR表示DB2副本(版本)的安装目录。
或:
$ db2 BIND $HOME/sqllib/bnd/ BLOCKING ALL GRANT PUBLIC
SQLERROR CONTINUE
$ db2 BIND $HOME/sqllib/bnd/@ BLOCKING ALL GRANT PUBLIC ACTION
ADD
$ db2 BIND $HOME/sqllib/bnd/@ BLOCKING ALL GRANT PUBLIC ACTION
ADD
其中 $HOME 表示数据库服务器实例的主目录。
3. 如果有嵌入式C/C++程序,也需要绑定:
db2rbind dbname -l logfile all
不管有没有都最好进行rbind一次,因为存储过程也需要rbind
4. 退出:
$ db2 terminate
1.1.7 验证版本以及状态
到这里补丁安装以及完成,需要进行DB2版本、数据库状态、完整性和有效性验证。
1.
执行db2版本检查命令(root用户运行)
AIX执行:
# /opt/IBM/db2/V10.5/bin/db2level
Linux 执行:
# /opt/ibm/db2/V10.5/bin/db2level
2. 数据库状态、完整性和有效性验证(实例用户运行):
$ db2 force applications all
$ db2 terminate
$ db2dart dbname /db
1.1.8 可能出现的问题
1. db2start出错
解决办法:
1. kill所有跟这个instance相关的进程、
2. IPClean
3. Run db2iupdt
如果kill之后还有db2fmxx这样京城,可以用:
fmcu -d 关掉db2fmcd进程,fm -i inst_name -D 关掉db2fmp进程,
再用ipclean命令清空进程间通信。
详细命令请参考1.1.1.5节
再用ipcs检查一下操作系统下有没有共享内存没被释放,用ipcrm -m/s来释放。
2. db2admin start 出错
解决办法:
1. kill所有跟这个admin server相关的进程、
2. IPClean
3. Run dasupdt
3. 在1.1.1.2节中停止实例后,使用ipcs检查一下有多少共享内存还没被释放
ipcs | grep db2
手动释放:
# ipcrm -m/s/ sid
自动释放的脚本(将如下代码写入.sh中,再用sh 执行):
for i in `ipcs |grep db2|awk '{print $2}'`
do
ipcrm -m $i
ipcrm -s $i
done
1.1.9 回退保障
本例是摘自DB2V9的补丁升级。
不可回退到DB2 9.1版本,只能回退到一个比FP5更低的Fix Pack,比如FP4、FP3、
FP1等。
在安装FP4、FP3、FP1等时,用以下命令:
./installFixPack -f -b DB2DIR
例如,要卸载 DB2 V9.1 FP2,请在 DB2 V9.1 FP1 安装映像中运行 installFixPack 命令,
如下所示:
./installFixPack -f -b DB2DIR
其中 DB2DIR 是要强制为较低级别的修订包映像的 DB2 数据库产品的位置。例如:
./installFixPack -f -b /opt/ibm/db2/V9.1
1.1.10 其他参考(以root用户执行)
无法停止实例强制杀进程:
Db2_ps
Db2_kill
ps -ef|grep db2inst1 |awk '{print $2}'|xargs kill -9
1) 安装前应运行 slibclean 来从内存中卸装未使用的共享库:
/usr/sbin/slibclean
如果ipcs | grep db2的输出结果仍然有未卸装的共享内存,那么执行以下命令
ipcs -m| grep db2 | awk '{print $2}'|xargs -i ipcrm -m {}
ipcs -s| grep db2| awk '{print $2}'|xargs -i ipcrm -s {}
2) 禁用故障监视器进程。 要停止故障监视器守护程序,请发出以下命令:
/opt/ibm/db2/V9.5/bin/db2fm -i db2inst1 -D
return non-zero rc, please see log file '/home/db2inst1/sqllib/db2dump/'
3) 如果启用了故障监视器协调程序(FMC),那么请阻止您的实例自动启动:
a. 要确定是否启用了 FMC,请发出以下命令:
/opt/ibm/db2/V9.5/bin/db2fmcu
FMC: down
如果启用了 FMC,那么您将看到类似于以下内容的输出:FMC: up: PID = 3415。使用
/opt/IBM/db2/V9.5/bin/db2fmcu –d 停止FMC
如果禁用了 FMC,那么 db2fmcu 命令的输出将是:FMC: down。
b. 如果启用了 FMC,请确定是否有实例配置为在每次系统重新启动之后自动启动。 发
出以下命令:
/opt/ibm/db2/V9.5/instance/db2iset -i db2inst1 -all 每个实例执行一次(用
/opt/ibm/db2/V9.5/bin/db2ilist 查看当前DB2副本下所有实例)
[i] DB2COMM=TCPIP
[i] DB2AUTOSTART=YES
[g] DB2SYSTEM=ibmdb2
[g] DB2INSTDEF=db2inst1
[g] DB2ADMINSERVER=dasusr1
如果 db2set 命令的输出包含以下内容,那么这表示该实例已配置为自动启动:
DB2AUTOSTART=YES
阻止这些实例自动启动。 发出以下命令:
/opt/ibm/db2/V9.5/instance/db2iauto -off db2inst1
/opt/ibm/db2/V9.5/instance/db2iset -i db2inst1 -all
[i] DB2COMM=TCPIP
[g] DB2SYSTEM=ibmdb2
[g] DB2INSTDEF=db2inst1
[g] DB2ADMINSERVER=dasusr1
如果有需要,请在完成修订包安装之后重新启用实例自动启动:
/opt/ibm/db2/V9.5/instance/db2iauto -on db2inst1
7)确保对要更新的实例清除了所有 DB2 进程间通信。作为实例所有者,在每个物理分
区中运行以下命令:
$HOME/sqllib/bin/ipclean
Removing DB2 engine and client's IPC resources for db2inst1.
版权声明:本文标题:DB2数据库补丁安装步骤 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1722319581a925892.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论