<IBM DB2>《IBM DB2进程清理 for AIX》

这篇具有很好参考价值的文章主要介绍了<IBM DB2>《IBM DB2进程清理 for AIX》。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、说明

IBM DB2出现异常终止后,可能出现无法使用DB2命令,无法更新实例的情况。如何才能彻底的停止DB2数据库相关的进程?这是本文探究的问题。
命令的几个级别:

级别 命令
会话 commit
terminate
quit
connect reset
进程 db2stop
db2_kill
kill
信号 ipcs
ipcrm

2、对会话操作

2.1 commit

1、提交数据。
2、断开数据库连接。
3、退出CLP。

1、查看会话是否自动提交;ON为开启;OFF为关闭。

-- 临时关闭或开启自动提交;ON开启;OFF关闭。
[db2inst1@localhost ~]$ db2 list command options | grep Auto-Commit
   -c    Auto-Commit                               ON
[db2inst1@localhost ~]$ db2 update command options using C off
DB20000I  The UPDATE COMMAND OPTIONS command completed successfully.
[db2inst1@localhost ~]$ db2 update command options using C on
DB20000I  The UPDATE COMMAND OPTIONS command completed successfully.

-- 永久关闭或开启自动提交;+C 开启;-C 关闭。
[db2inst1@localhost ~]$ db2set -lr|grep -i db2option
DB2OPTIONS
[db2inst1@localhost ~]$ db2set DB2OPTIONS=+C
[db2inst1@localhost ~]$ db2set 
DB2OPTIONS=+C
DB2COMM=TCPIP
[db2inst1@localhost ~]$ db2set DB2OPTIONS=-C
[db2inst1@localhost ~]$ db2set 
DB2OPTIONS=-C
DB2COMM=TCPIP

2、手动提交命令

[db2inst1@localhost ~]$ db2 commit work
DB20000I  The SQL command completed successfully.
[db2inst1@localhost ~]$ db2 commit
DB20000I  The SQL command completed successfully.
db2 => commit
DB20000I  The SQL command completed successfully.
db2 => commit work
DB20000I  The SQL command completed successfully.
[db2inst1@localhost ~]$ db2 "commit work"
DB20000I  The SQL command completed successfully.
[db2inst1@localhost ~]$ db2  "commit"
DB20000I  The SQL command completed successfully.
[db2inst1@localhost ~]$ 

3、未提交时,几种情况。

对象 会话窗口A 会话窗口B
创建表 [db2inst1@localhost ~]$ db2 “create table t2 (no1 int,tname1 char(8))”
DB20000I The SQL command completed successfully.
[db2inst1@localhost ~]$ db2 list tables for all 卡住,出不来结果。
插入数据 [db2inst1@localhost ~]$ db2 “insert into t1 values (1,‘wang’)”
DB20000I The SQL command completed successfully.
[db2inst1@localhost ~]$ db2 “select * from t1”


NO SNAME
----------- --------
0 record(s) selected.

2.2 terminate

1、提交数据。
2、断开数据库连接。
3、退出CLP。
说明:CLP backend process会在从CLP提交命令和SQL语句时启动,其作用就是将Directory file的内容读到内存中,这样不用每次connect都去读一次I/O,以提高效率。

---执行命令:
[db2inst1@localhost ~]$ db2 terminate
DB20000I  The TERMINATE command completed successfully.
[db2inst1@localhost ~]$ db2 "terminate"
DB20000I  The TERMINATE command completed successfully.
[db2inst1@localhost ~]$ db2
db2 => terminate
DB20000I  The TERMINATE command completed successfully.

2.3 quit

1、提交数据。
2、断开数据库连接。
3、退出CLP。

db2 => quit
DB20000I  The QUIT command completed successfully.
[db2inst1@localhost ~]$ 

2.4 connect reset

1、提交数据。
2、断开数据库连接。
3、退出CLP。

3、对进程操作

3.1 db2stop

1、停止db2sysc:主系统控制器 EDU;它处理关键的 DB2 服务器事件
2、停止db2vend:这是代表 EDU 执行供应商代码的进程;例如,执行用户出口程序以进行日志归档(仅适用于 UNIX)。
3、停止db2fmp

说明:EDU - 引擎可分派单元

--启动:
[db2inst1@localhost ~]$ db2start 
04/17/2023 15:46:25     0   0   SQL1063N  DB2START processing was successful.
SQL1063N  DB2START processing was successful.
[db2inst1@localhost ~]$ ps -ef|grep db2sys | grep -v grep
db2inst1   5700   5698  3 15:46 pts/2    00:00:00 db2sysc 0
--停止:
[db2inst1@localhost ~]$ db2stop
2023-04-17 15:46:39     0   0   SQL1064N  DB2STOP processing was successful.
SQL1064N  DB2STOP processing was successful.
[db2inst1@localhost ~]$ ps -ef|grep db2sys | grep -v grep
[db2inst1@localhost ~]$ 

3.2 db2_kill

分区数据库命令,普通数据库不能使用

突然停止正在多个数据库服务器上运行的所有进程,并清除所有数据库分区服务器上的所有资源。此命令使数据库变得不一致。除非在 IBM 软件支持机构的指导下,否则,请不要发出此命令;或者按指示从持续陷阱进行恢复。

db2_kill
ipclean

3.3 删除进程 - kill

--查看db2inst1用户的进程
[db2inst1@localhost bin]$ ps -fu db2inst1
UID         PID   PPID  C STIME TTY          TIME CMD
db2inst1   2912   2911  0 14:57 pts/1    00:00:00 -bash
db2inst1   3449   3448  0 15:02 pts/2    00:00:00 -bash
db2inst1   3783      1  0 15:06 pts/1    00:00:00 /home/db2inst1/sqllib/bin/db2bp 2912A1001 5 A
db2inst1   5216   2912  0 15:36 pts/1    00:00:00 db2
db2inst1   8370      1  0 16:38 pts/2    00:00:00 /home/db2inst1/sqllib/bin/db2bp 3449A1001 5 A
db2inst1  10077  10075  0 16:53 pts/2    00:00:00 db2sysc 0
db2inst1  10087  10075  0 16:53 pts/2    00:00:00 db2vend (PD Vendor Process - 1) 0
db2inst1  10100  10075  0 16:53 pts/2    00:00:00 db2acd 0 ,0,0,0,1,0,0,00000000,0,0,0,0000000000000000,0000000000000000,00000000,00000000,00000000,00000000,00000000,000000
db2inst1  10563   3449  0 17:01 pts/2    00:00:00 ps -fu db2inst1
-- 查看实例用户DB2INST1中USE1用户的进程
[db2inst1@localhost bin]$ ps -fu db2inst1 | grep use1 | awk '{print "kill -9", $2}'
kill -9 2912
kill -9 3449
kill -9 3783
kill -9 5216
kill -9 8370
kill -9 10077
kill -9 10087
kill -9 10100
kill -9 10635
kill -9 10636
kill -9 10637

-- 执行命令
[db2inst1@localhost bin]$ ps -fu db2inst1 | grep db2inst1 | awk '{print "kill -9", $2}' | sh 

3.4 删除信号 - ipcs

ipcs 多进程间通信常用的技术手段包括共享内存、消息队列、信号量等等。
其实只是一种信号

ipcrm
描述
ipcrm 命令删除一个或更多的消息队列、信号量集或者共享内存标识。
标志
-m SharedMemory ID 删除共享内存标识 SharedMemoryID。与 SharedMemoryID 有关联的共享内存段以及数据结构都会在最后一次拆离操作后删除。
-M SharedMemoryKey 删除用关键字 SharedMemoryKey 创建的共享内存标识。与其相关的共享内存段和数据结构段都将在最后一次拆离操作后删除。
-q MessageID 删除消息队列标识 MessageID 和与其相关的消息队列和数据结构。
-Q MessageKey 删除由关键字 MessageKey 创建的消息队列标识和与其相关的消息队列和数据结构。
-s SemaphoreID 删除信号量标识 SemaphoreID 和与其相关的信号量集及数据结构。
-S SemaphoreKey 删除由关键字 SemaphoreKey 创建的信号标识和与其相关的信号量集和数据结构。
msgctl、shmctl 和 semctl 子例程提供了删除操作的细节。标识和关键字可以用 ipcs 命令找到。
示例
如果要删除和 SharedMemoryID 18602 相关的共享内存段,请输入:
ipcrm -m 18602

-- 启动数据库前
[db2inst1@localhost bin]$ ipcs -a | grep db2inst1
0x3b68f262 2621440    db2inst1   711        0            0           
0x4b0faf7c 2654209    db2inst1   711        0            0           
0x00000000 3145730    db2inst1   711        0            0           
0x3e9c5802 4947971    db2inst1   711        0            0           
0x4e43151c 4980747    db2inst1   711        0            0           
0x00000000 458755     db2inst1   601        34156360   2          目标       
0x00000000 3244039    db2inst1   601        131072     1          目标       
0x276b0369 7405582    db2inst1   661        1         
-- 启动数据库后
[db2inst1@localhost bin]$ ipcs -a | grep db2inst1
0x3b68f262 2621440    db2inst1   711        0            0           
0x4b0faf7c 2654209    db2inst1   711        0            0           
0x00000000 3145730    db2inst1   711        0            0           
0x3e9c5802 4947971    db2inst1   711        0            0           
0x00000000 5636101    db2inst1   601        0            0           
0x00000000 5701638    db2inst1   601        0            0           
0x276b0271 5767176    db2inst1   663        0            0           
0x00000000 5799945    db2inst1   601        0            0           
0x276b0272 5832714    db2inst1   663        0            0           
0x4e43151c 4980747    db2inst1   711        0            0           
0x276b0277 5865484    db2inst1   665        0            0           
0x00000000 458755     db2inst1   601        34156360   2          目标       
0x276b0274 3964932    db2inst1   601        34156360   8                       
0x276b0261 3997701    db2inst1   601        163446784  6                       
0x00000000 3244039    db2inst1   601        131072     1          目标       
0x276b0274 9273344    db2inst1   645        1         
0x00000000 9306113    db2inst1   661        1         
0x00000000 9371650    db2inst1   661        1         
0x00000000 9404419    db2inst1   661        1         
0x00000000 9437188    db2inst1   661        1         
0x00000000 9469957    db2inst1   661        1         
0x00000000 9502726    db2inst1   661        1         
0x00000000 9535495    db2inst1   661        1         
0x00000000 9568264    db2inst1   661        1         
0x276b0273 9601033    db2inst1   667        1         
0x00000000 9633802    db2inst1   661        1         
0x00000000 9666571    db2inst1   661        1         
0x00000000 9699340    db2inst1   661        1         
0x00000000 9732109    db2inst1   661        1         
0x276b0369 9830414    db2inst1   661        1   
-- 移除
[db2inst1@localhost bin]$ ipcrm -s 458755
ipcrm: 已移除的 id (458755)

4、对实例操作

删除实例

# /opt/IBM/db2/V9.7/instance
# db2idrop instancename

如果删除实例失败,可能实例损坏,此时可执行两步:
1、删除/home/db2inst1/sqllib目录
2、删除/var/db2/global.reg文件

[db2inst1@localhost db2]$ cat /var/db2/global.reg 

使用 db2greg 显示和改变全局注册表 (UNIX)

在 UNIX 和 Linux 平台上,可以使用 db2greg 命令来查看全局注册表。

在 DB2® V9.7 及更高版本中,DB2 全局概要文件注册表并非记录在文本文件 /default.env
中。现在,使用全局注册表文件 global.reg 来注册与当前 DB2 安装版本相关的 DB2 全局概要文件设置。

全局注册表只存在于 UNIX 和 Linux 平台上: 对于 root 安装,全局注册表文件为 /var/db2/global.reg(HP-UX 上为 /var/opt/db2/global.reg)。 对于非 root安装,全局注册表文件为 $HOME/sqllib/global.reg,其中 $HOME 是非 root 用户的主目录。
全局注册表由以下三种不同记录类型组成: “服务”:服务记录包含产品级别的信息,如版本和安装路径。
“实例”:实例记录包含实例级别的信息,如实例名、实例路径、版本和“引导时启 动”标志。
“变量”:变量记录包含变量级别的信息,如变量名和变量值。 注释。 可使用 db2greg 工具查看全局注册表。此工具位于
sqllib/bin 和 bin 下的 install 目录中(以供作为 root 用户登录时使用)。

可使用 db2greg 工具编辑全局注册表。在 root 安装中编辑全局注册表需要 root 权限。

仅当 IBM 软件支持人员要求使用 db2greg 工具时,您才应使用该工具。文章来源地址https://www.toymoban.com/news/detail-422643.html

到了这里,关于<IBM DB2>《IBM DB2进程清理 for AIX》的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • DB2 数据库监控用户赋权手册

    皮皮运维平台数据统一采集用户(DBAA)需要被监控数据库赋予对应下查询表、表函数以 及获取数据库监控数据的权限,具体授权操作有以下三部分。 实例用户 执行命令,并将结果重定向到 grant_select_to_dbaa.sql 文件中 实例用户 执行 db2 -tvf grant_select_to_dbaa.sql 进行赋权。 实例

    2024年02月07日
    浏览(35)
  • NineData:高效、安全、可靠的DB2数据管理平台

    Db2 是老牌厂商 IBM 研发和维护的关系型数据库管理系统。作为一个拥有悠久历史的数据库系统,Db2 凭借它的高可靠、可扩展和高安全性等诸多优点,在如今的数据库市场依然占据相当大的份额。 对于诸多金融行业的企业而言, Db2 作为承载其核心业务数据的数据库系统,有着

    2024年02月08日
    浏览(36)
  • 技术选型指南:Oracle、SQL Server还是DB2?

    Oracle vs SQL Server vs DB2 - 选哪个好? 在企业级数据管理领域,常用的几个选择有Oracle、SQL Server和DB2。 首先,我们从以下几个方面做一下对比: 1. 性能和稳定性: Oracle: Oracle就像是那种精密的瑞士手表,对于大型企业级应用来讲,它处理复杂的、规模庞大的事务就像切黄油一样

    2024年02月20日
    浏览(53)
  • Linux系统安装DB2数据库的详细步骤

    1、DB2数据库的安装 一、将DB2的安装介质上传至/home目录,并解压:    tar –zxvf v9.5fp3_linuxx64_server.tar.gz 二、执行LANG=C 三、进入解压后的server目录(cd server/),执行./db2setup,步骤如下: # cd /home # tar -zxvf v9.7_linuxx64_server.tar.gz # cd server/ # ./db2setup     请额外注意:这里选择 Do

    2024年02月08日
    浏览(45)
  • python使用odbc连接db2、sqlserver数据库

    先介绍安装odbc驱动,如果已安装跳过次环节 参考链接:linux环境odbc驱动安装 - 哔哩哔哩 也可参考微软官网(Windows驱动也有介绍):安装 Microsoft ODBC Driver for SQL Server (Linux) - ODBC Driver for SQL Server | Microsoft Learn ODBC Driver是一种动态链接库 (DLL),支持 ODBC 的应用程序(如 Excel)可

    2024年02月10日
    浏览(42)
  • Db2的时间转换(字符串,时间戳,Unix时间戳)

    Ubuntu 22.04 Db2 11.5.0 参见 https://www.ibm.com/docs/en/db2/11.5?topic=list-datetime-values Db2有3种时间类型: DATE :例如 03/20/2023 ,当前日期的special register为 CURRENT DATE TIME :例如 21:23:23 ,当前时间的special register为 CURRENT TIME TIMESTAMP :例如 2023-03-20-21.23.49.513704 ,当前时间戳的special register为

    2024年02月08日
    浏览(56)
  • DB2 HADR+TSA运维,TSA添加资源组的命令

    Tivoli System Automation(TSA)是一个高可用性集群管理软件,DB2 TSA+HADR高可用方案可以实现DB2 hadr主备的自动检测切换。本文详细介绍了TSA的常用命令,如何把CDC或者DSG添加到TSA集群中,以及TSA的错误分析方法 常用命令: lsrpdomain/lsrpnode - 查询domain和node信息: [db2inst1@p0-pbd-pbd-db2

    2024年02月10日
    浏览(83)
  • GBASE regexp_replace函数 与 db2 translate函数比较

    以下内容参考自文档: translate 函数 官方示例: 示例1: 上述式子的意思为: 对于字符串:‘Test literal’,使用o 替代 e,使用 m替代 l 示例2: 函数返回在字符串文字“Another test literal”中进行以下替换后生成的字符串:A 替换为 B,t 替换为 f,e 替换为 i 并且 r 替换为 m。 当要

    2024年01月16日
    浏览(33)
  • 按分隔符分割字符串(DB2/mysql/hive/Oracle)

    1、DB2 --substr+locate/instr DB2没有自己按分隔符分割字符串的函数,只能结合使用 或者在DB2里还可以自己写一个split分割字符串的函数 附:instr函数用法--用来查找指定字符在字符串中出现的位置 DB2中的locate 函数可实现同样的功能,用法同 instr ,只是源字符串和目标字符串的位

    2024年02月13日
    浏览(52)
  • SeaTunnel JDBC DB2 Sink Connector支持的工作原理,快来学习吧!

    DB2是IBM的一款关系型数据库管理系统,JDBC DB2 Source Connector是一个用于通过JDBC读取外部数据源数据的连接器。Apache SeaTunnel如何支持JDBC DB2 Sink Connector?请参考本文档。 Spark Flink SeaTunnel Zeta 精确一次性 CDC(变更数据捕获) 使用 Xa 事务 来确保 精确一次性 。因此,只支持对支持

    2024年04月22日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包