资源描述
运营支撑系统数据库维护探究
摘要:运营商的运营支撑系统,是其企业运营的基础和重要财富,存放了很多重要及敏感的数据。为了保障数据的安全有效,保障运营支持系统不间断运行,更好地为用户提供服务,做好数据库维护工作至关重要。本文以informix数据库为例详细阐述了数据库需要完成的日常维护工作及方法。
关键词:数据库,监控,维护,优化
数据库系统是用于组织和存取大量数据的管理系统,方便多用户使用计算机软、硬件资源组成的系统。它与文件系统的重要区别是数据的充分共享、交叉访问以及与应用(程序)的高度独立性。
数据库系统由计算机系统、数据库、数据库描述、数据库管理系统、数据库应用程序和用户组成。
计算机系统指的是用于数据库管理的计算机硬件资源和基本软件资源。硬件资源包括CPU、大容量内存(用于存放操作系统,数据库管理系统、应用程序、数据库等)、直接存取的外部存储设备(硬盘)。软件资源包括操作系统和应用程序。
运营商的运营支撑系统,涵盖了运营商的经营数据、用户的资料数据及各项分析数据等各项重要数据,为了支撑众多重要的数据,需要强大的数据库系统作支撑,运营支撑系统一般均采用网络数据库,即可实现数据的共享,同时也方便各种终端的接入,为服务客户提供了多渠道及多地点,为了保障运营支撑系统的7*24小时不间断高效安全地运行,可以方便及时为用户提供各项业务,所以对数据库提出较高要求,既要快速存取又要保证安全,并且数据不被泄露,所以做好数据库的各项维护工作尤其重要。
数据库日常维护工作是系统管理员的重要职责,对已经建好而且正常使用的运营支撑系统而言,不同数据库的维护内容大同小异,现以Informix数据库为例进行,其内容主要包括以下几个部分:
1 数据库备份
Informix-Online数据库因其具有高性能、高可靠性、支持数据完整性定义/检查等特性而得到广泛应用。对于使用中的数据库,数据备份的安全可靠性便成为人们关注的焦点。
运营商使用informix数据库的运营支撑系统一般采用On-Bar实用程序进行数据库备份。
ON-Bar是一个完全可伸缩的备份产品,用于Informix数据库。它让您可以并行地运行备份和恢复,根据您选择要运行的线程数量,这可以让您大大提高它们的速度。ON-Bar适用于任何规模的Informix系统。
ON-Bar能满足减少系统备份和恢复时间的要求。当机器上正在运行其它处理时,ON-Bar也可以运行,因为当备份运行时,它不要求数据库的任何部分脱机。但是,当ON-Bar正在运行时,它确实要消耗大量系统资源,因此建议在运行备份时,尽量减少其它正在运行的处理的数量,一般情况下会根据运营支撑系统的使用情况安排在晚上22:00后至凌晨进行数据库的备份,由于现在备份网络多采用SAN方式,光纤通道速度快,同时也不影响IP网络的使用,常采用每天晚上进行全备份、逻辑日志写满后即刻备份的策略进行数据库备份。
2 数据库备份介质的异地存放
运营商运营支撑系统都应该建有异地容灾系统,为了保证在核心机房遭遇自然灾害及各种意外事故时,可以使用异地的容灾系统进行生产运行。但是由于各种原因实际上并不一定建立有异地容灾系统,在没有时需要将备份介质进行异地存放,存放的周期可以选择每周进行一次。以确保数据库在发生意外时可以将数据库完整地进行恢复。
3 数据库一致性校验
运营支撑系统数据库的一致性是保证数据完全正确的基础,是提供运营支撑的基本要求,为了保证数据库服务器磁盘空间没有不一致性,数据库管理员需要定期对数据库进行一致性检查。
数据库一致性检查包括dbspaces、blobspaces、块、表、索引、磁盘页的检查。
数据库一致性检查常用oncheck实用程序进行,oncheck在检查过程中发现问题时,它会提供一个错误信息,表示问题所在,根据提示的错误信息进行后续处理,oncheck可以解决的问题时索引混乱或者是数据页混乱,对于此类问题oncheck可以解决,但是建议还是用SQL命令删除和重建索引可以快速地解决问题。
oncheck实用程序在运行时,有时会锁定表和索引,影响运营支撑系统的正常使用,建议还是与备份一样安排在访问较少的时间段进行,建议每月至少做一次一致性检查,以保证数据库的完整性,避免以后出现大的问题。
4 数据库优化
运营支撑数据库在建立时需要配置好各项参数,保证主机与阵列、光纤交换机的性能正常。各项配置参数需要经过计算,并通过运行初期即试运行阶段的各项监控,根据计算与监控结果对数据库参数进行调整。在数据库运行稳定后,优化的重点在数据库策略,如部分大表处理性能不佳,索引、SQL、应用的使用不恰当等。
在日常维护过程中,需要重点优化SQL命令及高度的统计更新(高优)及索引的分析与重建等问题。
各项应用的实现最终均由SQL命令实现对表的各项访问,包括查询、插入、修改、删除等,表的访问方式有索引和全表扫描方式,选择度是决定是否使用索引的关键,特别的函数和操作不会使用索引。所以日常的操作一般要使用索引进行访问,效率高而且可以避开锁冲突,批处理时可以考虑全表扫描,当选择记录数>10%时,可以尝试全表扫描。
统计更新即是维护时所说的优化,数据库统计更新信息对帮助informix查询优化器选择查询路径至关重要,查询优化器用这个策略对SQL语句检索数据。如果查询优化器知道表列中数据的分布,则可以大大提高性能,优化包括对数据库表、存储过程、索引的优化。
统计信息的更新方式有高、中、低三种,每种方式收集不同的信息量,存放在systables、sysindexes、syscolumns、sysdistrib等informix系统表中。查询优化器用这些表中的信息确定用哪个策略(查询路径)取得where子句中指定的数据。
在日常维护中建议用medium对整个数据库运行update statistics,在所有头索引列运行update statistics high,这是索引中第一列,这一步生成这些列数据分布的详细信息,对复合索引中的所有列运行update statistics low。
运营支撑系统在运行过程中会有大量信息的增加与更新、删除等操作,所以数据库管理员应经常对数据变化量大且经常访问的数据库表及索引执行优化命令,由于优化命令很费时间,建议放在闲时进行,并且避开数据库备份、一致性检查的时间。
5 监视数据库系统运行状况
运营支撑系统数据库维护过程中,需要监控数据库各项性能数据,用命令onstat实现。Onstat是使用最广泛的命令行实用程序,用来读取数据库服务器实例的共享内存结构并提供当前informix实例状态的大量有用信息,它不对共享内存结构进行锁定,使用很少开销,因此可以随时使用,读取到的信息是发出命令前的当前信息,数据在执行命令的同时改变。常用的命令如下:
·onstat- 可以打印当前IDS的状态,此输出中显示了IDS版本、服务器的运行方式、启动与运行的时间长度、使用的内存量。如果服务器关闭则会出现错误信息shared memory not initialized。
·onstat-p 显示系统的基本I/O与性能配置文件,这些信息包括服务器上次重新启动以来的时间和上次使用onstat-z命令复位统计信息以来的时间。
·onstat-m 显示最后20行IDS日志消息,这个消息文件包含服务器及要监视的系统关键组件的所有信息。
·onstat-u 监视用户正在干什么,关键字段是sessid,标识IDS内部跟踪用户的对话ID,这是删除用户对话和分析用户当前查询和其他对话数据时需要知道的。
·onstat-l 显示当前逻辑日志的状态,检查监视过程中要注意是否有逻辑日常没有备份,若有则需要查找原因并及时进行备份,当所有所以日志都使用完后而没有可重复写入的逻辑日志将会导致数据库hung住,而无法进行任何数据库操作,此时支撑系统将完全无法使用。
·onstat-x 显示当前所有事务
·onstat-k 显示所有活动锁,这个显示可能很长,可能需要用more进行查看,也可以用wc进行计数后再进行查看,从输出结果中可以看出谁拥有锁、锁的是哪个表、是否有人在等待此锁,并且可以看出锁的类型,通过对输出结果的分析对查找死锁有帮助。
·onstat-d 显示两个重要的项目,dbspaces和磁盘块的布局,每个块和dbspaces的状态,应当经常打印和保存此命令的输出。恢复遇到故障时,就需要这个信息,其表示重建系统所需的每个dbspaces和块。
·onstat-D 显示块的I/O,在性能调试时非常有用。
·onstat-g 此命令是IDS7.0以上版本命令的子集,有很多的命令,常用的监视各种状态的进程、虚拟处理器的状态、运行的SQL语句与类型等信息。
6 保证系统数据安全,定期更改用户口令
为保证系统数据的安全,数据库管理员必须依据系统的实际情况,执行一系列的安全保障措施。其中,周期性的更改用户口令是比较常用且十分有效的措施。
7 结束语
为了保障运营支撑系统的安全有效不间断运行,保障在数据库遭遇意外丢失时可以及时恢复有效数据,数据库管理员需要熟练掌握数据库维护的各项重要工作,在日常工作中为企业的正常运行保驾护航。
-全文完-
展开阅读全文