- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DB2数据库故障处理及其优化的研究
DB2数据库故障处理及其优化的研究
摘 要:随着信息技术的发展,信息的规模和传递速度正在发生着日新月异的变化,面对如此多的数据,如何管理变得至关重要。而大数据量数据的存取和管理目前主要是由数据库来完成的。本文着重介绍了DB2数据库出现的故障与处理技术,及其技术优化研究,对相关领域的研究者有这一定的指导意义和实践价值。
关键词:DB2;数据库;故障;优化
中图分类号:G250.74 文献标识码:A1 概述
DB2数据库是IBM公司研制的一种关系(E-R)型数据库。DB2数据库提供了很好的数据可利用性、数据安全性、数据可恢复性、数据完整性,并且具有很高的数据存取速度。DB2主要应用于大型的服务器系统,具有很好的伸缩性,既可以运行在大型机上,也可以运行在个人PC机上。DB2数据库具有跨平台执行的能力和从小规模数据到大规模数据的执行功能。DB2数据库的设计使用了数据分级技术,可以很方便地将大型机数据库的数据同步下载到本地的数据库服务器,可以使用客户机/服务器的模式和基于LAN的程序访问大型机服务器数据,并实现了本地数据库及远程大型数据库的透明化连接。它拥有一个非常高效的查询优化器,大大地提高了查询性能,并支持多个任务的并发查询。DB2具有强大的网络功能,一个DB2数据库系统可以同时激活上千个活动进程,支持同时连接十几万个远程的分布用户,非常适用于大型的分布式应用系统。
2 数据库实例的问题
数据库实例问题可以分为两种情况
2.1 实例无法启动,运行db2start后,直接返回错误码,如SQL1042C。
如果根据错误码信息无法解决,可以尝试如下方案:
重新更新该实例,以root身份登录,cd/usr/opt/db2_08_01/instance/
./db2iupdt<inst_name>
Tip:常见的产生实例无法启动的原因
数据库安装了新的补丁后没有运行db2iupdt
数据库文件的权限被改成了777,数据库文件的权限是有要求的,所以不能将所有的文件都改成777的权限数据库实例文件被删除或损坏主机名与db2nodes.cfg里记录的不一致。
2.2 运行db2start时,hang在那里,既不报错,也无法启动实例
这种情况一般是由于实例没有正常的停止造成的,一般运行下列命令可以解决:
su-<inst_owner>
db2_kill
ipclean
su- root
(将所有的与该实例有关的db2进程杀死kill-9<pid>)然后重新启动实例。
2.3 数据库实例崩溃问题
遇到实例崩溃的问题,首先查看db2diag.log,根据里面的信息来分析数据库宕机的原因。再看db2dump目录中是否有trap文件。可以根据这些信息来分析原因,一般这类问题都需要IBM工程师协助解决。
宕机的原因可以分为两类,一类是数据库的BUG,即数据库的缺陷引起的,一般如果遇到了数据库的缺陷,都有临时的解决方案,或者通过安装最新的补丁来解决,对某些问题IBM也提供临时的修订来解决(需要付费)。另一类是操作系统,误操作等非产品问题导致的,对非产品问题导致的宕机尽量要避免。
Tip:常见的数据库宕机原因
系统的交换空间(paging space)用尽数据库的某个进程被kill
3 数据库问题
3.1 数据连接问题
无法连接数据库,常见的错误有代码页错误,通讯协议错误,数据库状态错误等。
对代码页类错误,可以通过设置db2codepage,db2country来解决,这两个变量需要用db2set设置成与数据库一致的值。
当发生通讯类错误时,首先要要检查环境变量DB2COMM=TCPIP是否已经设置,然后要检查dbm cfg的SVCENAME,该变量可以直接设置成端口号,或者设置成服务名,该服务名要在services文件中设置成对应的端口号。要检查该端口号是否已经被其他服务占用。在启动数据库后,可以运行netstat- an|grep<port>,来查看该端口处于的状态。
TCP 0.0.0.0:50000 0.0.0.0:0 LISTENING
还有一种情况,当连接数据库时,数据库处于backup pending状态,无法连接。这是只要对数据库做一个备份就可以了。
3.2 数据库损坏
数据库最严重的问题莫过于数据库损坏,那么当数据库损坏时,最好的办法是从备份恢复数据库。
如果无法从备份恢复,可以根据损坏的原因尝试相应的解决方案。
由于存储问题导致部分数据文件损坏,但是数据库还可以连接,这种情况可以采用导出数据库的表结果和数据的方法来恢复数据库。
当然对损坏的表,导出是无法完成的,这是可以使用db2dart的导出
原创力文档


文档评论(0)