可以通过Onmode -u 将数据库服务器强行进入单用户模式,来释放被锁的表。对于正式运行的设备,该方法就不可取了,必须找到锁表的session或进程,然后根据具体情况进行处理。这里简单介绍一下如何根据被锁表找到锁表的进程及其session id。
以INFORMIX用户登录后,具体操作步骤如下:
1、取得当前锁情况
[informix] :/opt/informix/etc>onstat -k
Informix Dynamic Server Version 7.31.UC4 -- On-Line -- Up 07:53:32 -- 101328 Kbyte
s
Locks
address wtlist owner lklist type tblsnum rowid key#/bsiz
c0f06c20 0 c60a363c 0 HDR+S 100002 204 0
c0f5f214 0 c60a363c c0f06c20 HDR+IX 200020 0 0
c0f64528 0 c60a363c c0f5f214 HDR+X 200020 100 0
3 active, 200000 total, 65536 hash buckets
根据tabnum(16进制的partnum)及查找systabnames表得到的partnum(10进制)和tabname的对应关系,可得到该锁的onwer,如 c60a363c ,实际上表示Userthread address。
0
2、根据Userthread address得到session id和其他信息。
[informix] :/opt/informix/etc>onstat -u
[informix] :/opt/informix>onstat -u |grep c60a363c
c60a363c Y-BP--- 322 informix ttyp1 c6203700 0 3 1 0
322 既为session id
3、根据ses id得到进程ID
[informix] :/opt/informix/etc>onstat -g ses 322
Informix Dynamic Server Version 7.31.UC4 -- On-Line -- Up 10:13:44 -- 93136 Kbytes
session #RSAM total used
Id user tty pid hostname threads memory memory
322 informix ttyp2 7817 smcp1 1 73728 63096
。。。。。
由此,可得到锁表进程的PID 7817。
4、 得到锁表进程
smcp1 [informix] :/opt/informix/etc>ps -ef |grep 7817
informix 12141 11613 0 19:09:51 ttyp3 0:00 grep 7817
informix 7817 7260 0 09:47:16 ttyp2 0:00 dbaccess test
由此,我们可得到锁表的进程,可根据实际锁表进程的重要程度的具体情况采取相映处理方法:
对于重要且该进程可以自动重联数据库的进程,可以用onmode -z 322(sesid)的方法杀掉锁表session,否则也可直接杀掉锁表的进程 kill 7817(PID)。
通过上述过程,也可以比较清楚的理解维护中使用工具Onstat 的几个基本命令的使用。
http://blog.chinaunix.net/u1/59737/article.php?frmid=91853&page=2
分享到:
相关推荐
本文将讨论 Informix 数据库锁表问题的解决方案,包括锁表的定位和处理。 一、锁表问题的原因 锁表问题的原因是多方面的,包括: 1. 并发访问:多个用户同时访问同一个表时,可能会导致锁表。 2. 事务处理:长...
本篇文章将深入探讨Informix锁表相关的知识,包括锁的类型、工作原理以及如何有效地管理和使用锁。 一、锁的类型 Informix 支持多种类型的锁,这些锁主要分为两大类:行级锁和表级锁。 1. 行级锁:这种锁针对...
本文将深入探讨“informix数据库表记录加解锁的常用方法”,这对于数据库管理员和开发人员来说是非常实用的知识。 Informix数据库支持事务处理,这使得对数据的操作具有原子性、一致性、隔离性和持久性(ACID属性...
### INFORMIX锁技术详解 #### 一、概述 INFORMIX数据库系统为了确保数据的一致性和准确性,提供了多种锁机制来控制并发访问中的数据修改行为。锁是数据库管理系统用来控制用户之间的数据共享和独占访问的一种手段...
总结,Informix 数据库的日常维护和问题处理需要对系统有深入理解,包括监控日志状态、诊断锁冲突和管理长事务。通过合理的配置、优化和及时响应,可以有效地避免和解决这些问题,确保数据库系统的稳定运行。
【标题】:Informix数据库健康检查与锁表处理 【正文】: Informix数据库作为一款高效、可靠的数据库管理系统,其健康检查是确保系统稳定运行的关键环节。健康检查可以帮助管理员识别潜在的问题,预防性能下降和...
5. **事务处理与并发控制**:讲解Informix的事务管理机制,包括ACID属性、锁机制和并发控制策略,确保数据的一致性和完整性。 6. **备份与恢复**:提供Informix的备份策略和恢复技术,包括增量备份、完整备份和热...
总的来说,处理 Informix 并发问题的关键在于理解数据库的并发控制机制,合理利用事务、锁和游标等工具,同时考虑系统的整体性能和用户体验。通过实例分析和实践,我们可以不断优化并发处理策略,以适应高并发的核心...
4. **性能监控与调优**:理解Informix的性能指标,如查询执行计划、缓冲区管理和锁管理,学习如何通过监控和调整这些参数来提升系统性能。 5. **安全性**:学习如何设置用户权限,实施访问控制,以及使用SSL加密...
5. **并发控制**:了解锁机制,包括行级锁、表级锁和页级锁,以及死锁检测和避免策略。 6. **备份与恢复**:学习如何进行全量备份、增量备份和日志备份,以及如何在数据丢失或故障后恢复数据。 7. **性能优化**:...
)可以将文件/dev/null 复以上述文件中,以删除所有表记录的锁。 -108 错误:C—ISAM 错误;关键字已经存在。 * 系统操作:该语句不被处理。 * 更正方法:试图增加一个已定义过的索引,在增加之前,必须删除已存在...
IDS代表Informix Dynamic Server,它是Informix Online的一个重要更新,引入了多线索机制处理请求,增强了并发处理能力。共享内存可以动态增长,提升了系统的灵活性和效率。 - **Informix Online 8.x (IDS)** ...
Informix是一款高性能、可扩展的数据库管理系统,广泛应用于企业级应用和大数据处理。 在 Informix 数据库中,SQL(Structured Query Language)是用于管理关系数据库的标准语言。本教程将涵盖以下几个关键知识点:...
- 锁机制与死锁处理 - 并发控制策略,如多版本并发控制(MVCC) 5. **分布式数据库** - Informix的分布式数据库体系结构 - 数据复制技术,如Informix Dynamic Server (IDS)的Shadow Tables和Data Replication - ...
这份文档阐述了数据库事务处理中的不同隔离级别(读未提交、读已提交、可重复读、串行化),以及Informix如何实现这些级别的锁管理机制,确保数据一致性。 5. **Informix数据库性能优化案例分享** (2.1_Informix...
- 在日志数据库中,对装载表加排他锁,锁定粒度默认为行锁或页锁,具体取决于表的创建方式。当装载大量数据时,可以显式地将锁模式更改为表级锁,在装载过程中不允许对表进行访问。 - 在非日志数据库中,对装载表...
Informix 提供了性能监控工具,如 onstat 和 onmode,用于查看服务器状态、内存使用情况、锁等待等。通过分析这些信息,可以对数据库进行调优,例如调整缓存大小、优化索引、调整并发控制等。 ### 9. 安全性与权限...