企业数据库平台监控运维与自动化治理平台建设技术方案.docx

上传人:夺命阿水 文档编号:1146942 上传时间:2024-03-24 格式:DOCX 页数:48 大小:218.38KB
返回 下载 相关 举报
企业数据库平台监控运维与自动化治理平台建设技术方案.docx_第1页
第1页 / 共48页
企业数据库平台监控运维与自动化治理平台建设技术方案.docx_第2页
第2页 / 共48页
企业数据库平台监控运维与自动化治理平台建设技术方案.docx_第3页
第3页 / 共48页
企业数据库平台监控运维与自动化治理平台建设技术方案.docx_第4页
第4页 / 共48页
企业数据库平台监控运维与自动化治理平台建设技术方案.docx_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《企业数据库平台监控运维与自动化治理平台建设技术方案.docx》由会员分享,可在线阅读,更多相关《企业数据库平台监控运维与自动化治理平台建设技术方案.docx(48页珍藏版)》请在课桌文档上搜索。

1、项目编号:企业数据库PAAS平台监控运维与自动化治理平台建设技术方案目录1 项目总体概况41.1 项目建设内容52 项目实施方案82.1 项目需求实现方案82.1.1 MySQL实时监控82.1.2 自动故障处理142.1.3 数据库分析报表182.2 项目开发实施方案192.2.1 需求分析192.2.2 软件开发202.2.3 安装调测202.2.4 系统验收222.2.5 其他措施252.3 项目实施进度安排252.3.1 项目进度管理262.3.2 项目质量管理262.3.3 项目风险管理272.3.4 项目沟通管理282.4 网络与信息安全保障292.4.1 总体方案292.4.2

2、系统安全302.4.3 数据安全312.4.4 应用安全322.5 项目实施质量控制332.5.1 质量管理方法332.5.2 质量管控思路332.5.3 质量管理计划352.5.4 质量保障措施383 项目服务方案413.1 保修服务期413.2 保修服务方案413.2.1 服务内容413.2.2 服务方式423.2.3 问题优先级423.2.4 服务响应433.2.5 应急响应443.2.6 服务组织机构473.2.7 每月的总结483.2.8 支持流程483.3 培训服务方案493.3.1 培训目的493.3.2 培训形式493.3.3 培训内容50503.3.4 培训计划1项目总体概况

3、随着云和大数据技术的不断演进,传统分散模式建设的IT系统已无法满足数字化时代的发展要求;集中化建设的IT支撑系统可充分利用全新技术、匹配全新运营模式、支撑全新数字化业务,己构建数字化时代的核心竞争力;系统集中化后,企业将重点聚焦在业务本身的建设及创新,而支撑中系统大体谅、分布式的云化架构及灵活快速的需求响应、标准化的服务以及全网一点发布及运维能力可由PaaS平台来提供和支撑。实现MySQL实时监控及配套数据库分析报表,并实现数据库故障自动处理。提供可视化的管理界面供相关人员使用,提高开发运维效率;并提供HTTP接口服务可供外部第三方进行调用。(1)数据库是PaaS最核心的能力,SQL数据库仍是

4、主流,数据库尤其是关系型SQL数据库的稳定服务能力成为PaaS平台最核心的诉求。(2)分布式架构、去IOE形式下,业务异常SQL对系统稳定性带来挑战。以某电信CRM重构为例,PaaS平台使用集团基于MySQL自研的分布式数据库,承载了包括CRM重构后的CPC配置引擎、营服协同引擎、营销资源引擎、客户引擎、受理引擎、基础运营管理引擎,以及VC等周边小系统,自5月上线以来,多次故障均因慢SQL和异常SQL导致。(3) MySQL等数据库的监控与自动化治理缺乏工具。与OraCIe相比,MySQL等数据库在完善的监控、运维、治理配套工具方面存在很大的空缺,如AWR运行报告,自动化的快速故障处理等,因此

5、对能自动、实时进行SQL的监控与治理平台提出了需求,以提升数据库服务可用性,进而保证PaaS上各业务系统的稳定运行。(4) PaaS平台缺少web应用防护能力。企业PaaS原子能力平台作为基础能力平台,支撑着企业的业务开展,作为基础能力平台,缺少Web应用安全防护的基础能力,云防护为政企PaaS原子能力平台提供基础的Web防护能力,通过能力调用,实现PaaS平台用户的Web防护能力。1.1项目建设内容系统架构图:MySQL实时监控通过轻量级可配置的监控代理实现SQL服务指标与事务等监控信息的采集,存储到非结构化存储系统中,通过时间线、快照、健康度、主从关联等纬度对SQL服务运行状态进行实时的展

6、现与监控,及时发现问题支持快速定位原因与排障。自动故障处理根据数据库故障处理场景,通过调用代理自动化运维接口的能力,实现以下场景的自动故障处理,并具备快速灵活扩展的能力空间问题处理长事务问题处理长查询故障处理CPU/连接数/Threadrunning问题处理主从复制错误问题处理数据库分析报表基于监控数据与数据库维护经验,形成SQL/事务/锁分析等分析报表,基于指标,生成数据库AWR实时运行报表,为数据库性能调优分析、故障分析提供依据。2项目实施方案1 .1项目需求实现方案2 .LlMySQL实时监控为公司将通过轻量级可配置的监控代理实现SQL服务指标与事务等监控信息的采集,存储到非结构化存储系

7、统中,通过时间线、快照、健康度、主从关联等纬度对SQL服务运行状态进行实时的展现与监控,及时发现问题支持快速定位原因与排障。服务指标监控1. 系统mysql的进程数PS-efIgrepmySq1grep-vgrepwc-12. Slave_runningmysqlshowstatuslikeSlavejunning;如果系统有一个从复制服务器,这个值指明了从服务器的健康度3. Threads_connectedmysqlshowstatuslike,Threads-connected,;当前客户端已连接的数量。这个值会少于预设的值,但你也能监视到这个值较大,这可保证客户端是处在活跃状态。4.

8、Threads_runningmysqlshowstatuslike,Threads-running,;如果数据库超负荷了,你将会得到一个正在(查询的语句持续)增长的数值。这个值也可以少于预先设定的值。这个值在很短的时间内超过限定值是没问题的。当ThreadSjunning值超过预设值时并且该值在5秒内没有回落时,要同时监视其他的一些值。5. AbOrted_cIientsmysqlshowstatuslike,Aborted_clients,;客户端被异常中断的数值,即连接到mysql服务器的客户端没有正常地断开或关闭。对于一些应用程序是没有影响的,但对于另一些应用程序可能你要跟踪该值,因为

9、异常中断连接可能表明了一些应用程序有问题。6. Questionsmysqlshowstatuslike,Questions,;每秒钟获得的查询数量,也可以是全部查询的数量,根据你输入不同的命令会得到你想要的不同的值。7. Handlej*mysqlshowstatuslike,Handler-%,;如果你想监视底层(IowTevel)数据库负载,这些值是值得去跟踪的。如果Hand1er_read_rnd_next值相对于你认为是正常值相差悬殊,可能会告诉你需要优化或索引出问题了。Handler.rolIback表明事务被回滚的查询数量。你可能想调查一下原因。8. Opened_tablesm

10、ysqlshowstatuslike,Opened-tables);表缓存没有命中的数量。如果该值很大,你可能需要增加table_cache的数值。典型地,你可能想要这个值每秒打开的表数量少于1或2。9. Select_full_joinmysqlshowstatuslike,Select-full-join,;没有主键(key)联合(Join)的执行。该值可能是零。这是捕获开发错误的好方法,因为一些这样的查询可能降低系统的性能。10.5 elect_scanmysqlshowstatuslike,Select-scan,;执行全表搜索查询的数量。在某些情况下是没问题的,但占总查询数量该比值应

11、该是常量(即SeIeCt_scan/总查询数量商应该是常数)。如果你发现该值持续增长,说明需要优化,缺乏必要的索引或其他问题。11.510 w_queriesmysqlshowstatuslike,Slow-queries,;超过该值(一long-query-time)的查询数量,或没有使用索引查询数量。对于全部查询会有小的冲突。如果该值增长,表明系统有性能问题。12 .Threads_createdmysqlshowstatuslike,Threads-created);该值应该是低的。较高的值可能意味着你需要增加thread_cache的数值,或你遇到了持续增加的连接,表明了潜在的问题。1

12、3 .客户端连接进程数shellmysqladminprocesslistmysqlshowprocesslist;你可以通过使用其他的统计信息得到已连接线程数量和正在运行线程的数量,检查正在运行的查询花了多长时间是一个好主意。如果有一些长时间的查询,管理员可以被通知。你可能也想了解多少个查询是在LOCked的状态该值作为正在运行的查询不被计算在内而是作为非活跃的。一个用户正在等待一个数据库响应。14 .innodb状态mysqlshowinnodbstatus;该语句产生很多信息,从中你可以得到你感兴趣的。首先你要检查的就是“从最近的XX秒计算出来的每秒的平均负载”。(I)Pendingno

13、rmalaioreads:该值是innodbio请求查询的大小(size)。如果该值大到超过了10-20,你可能有一些瓶颈。(2)reads/s,avgbytes/read,writes/s,fsyncs/s:这些值是io统计。对于reads/writes大值意味着io子系统正在被装载。适当的值取决于你系统的配置。(3)Bufferpoolhitrate:这个命中率非常依赖于你的应用程序。当你觉得有问题时请检查你的命中率(4) inserts/s,updates/s,deletes/s,reads/s:有一些Innodb的底层操作。你可以用这些值检查你的负载情况查看是否是期待的数值范围。15.

14、主机性能状态shelluptime16. CPlJ使用率shelltopshellvmstat17. 磁盘IOshellvmstatshelliostat18. swap进出量(内存)shellfree19. MySQL错误日志在服务器正常完成初始化后,什么都不会写到错误日志中,因此任何在该日志中的信息都要引起管理员的注意。20. InnoDB表空间信息InnoDB仅有的危险情况就是表空间填满一一日志不会填满。检查的最好方式就是:showtableStatUs;你可以用任何InnODB表来监视InnoDB表的剩余空间。21. QPS每秒QUeCr量QPS=Questions(orQueries

15、)/secondsmysqlshow*global*/statuslike,Question,;22. TPS(每秒事务量)TPS=(COm+Com_roIlback)/secondsmysqlshowstatuslikeCom_commit;mysqlshowstatuslike,Com-rollback,;23. keyBuffer命中率key_buffer_read_hits=(l-key_reads/key_read_requests)*100%key_buffer_write_hits=(l-key_writes/key_write_requests)*100%mysqlshowst

16、atuslikeKey%;24. InnoDBBuffer命中率Innodb_buffer_read_hits=(1-innodb_buffer_pool_reads/innodb_buffer_pool_read_requests)*100%mysqlshowstatuslikeinnodb_buffer-pool-read%,;25. QueryCache命中率Query_cache_hits=(Qcahce_hits/(Qcache_hits+Qcache_inserts)*100%;mysqlshowstatuslike,Qcache%,;26. TableCache状态量mysqls

17、howstatuslikeopen%;27. ThreadCaChe命中率Thread_cache_hits=(1-Threads_created/connections)*100%mysqlshowstatuslike,Thread%,;mysqlshowstatuslike,Connections,;28. 锁定状态mysql show statuslike , %lock%,;29. 复制延时量mysqlshowslavestatus30. TmpTabIe状况(临时表状况)mysqlshowstatuslike,Create-tmp%,;31. BinlogCaChe使用状况mysql

18、showstatuslike,Binlog-cache%,;32. Innodb_1og_waits量mysqlshowstatuslikeinnodb_1og_waits,;事务监控MySQL事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!一般来说,事务是必须满足4个条件(ACID):原子性(Atomicity,或称不可分割性)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)0原子性:

19、一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。一致性:在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。隔离性:数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读未提交(ReadUnCOmmitted)、读提交(readc

20、ommitted)、可重复读(repeatabIeread)和串行化(Serializable)o持久性:事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。在MySQL命令行的默认设置下,事务都是自动提交的,即执行SQL语句后就会马上执行COMMIT操作。因此要显式地开启一个事务务须使用命令BEGIN或STARTTRANSACTION,或者执行命令SETAUTOCOMMIT=O,用来禁止使用当前会话的自动提交。BEGIN或STARTTRANSACTION显式地开启一个事务;COMMIT也可以使用CoMMlTTyORK,不过二者是等价的。COMMIT会提交事务,并使己对数据库进行的

21、所有修改成为永久性的;ROLLBACK也可以使用ROLLBACKWORK,不过二者是等价的。回滚会结束用户的事务,并撤销正在进行的所有未提交的修改;SAVEPOINTidentifier,SAVEPOINT允许在事务中创建一个保存点,一个事务中可以有多个SAVEPOINT;RELEASESAVEPOINTidentifier删除一个事务的保存点,当没有指定的保存点时,执行该语句会抛出一个异常;ROLLBACKTOidentifier把事务回滚到标记点;SETTRANSACTION用来设置事务的隔离级别。InnoDB存储引擎提供事务的隔离级别有READUNCOMMITTEDREADCOMMITT

22、ED、REPEATABLEREAD和serializable.,2.L2自动故障处理我公司将根据数据库故障处理场景,通过调用代理自动化运维接口的能力,实现以下场景的自动故障处理,并具备快速灵活扩展的能力。空间问题处理提供MySQ空间问题处理功能,对MySQL使用过程中,出现的空间相关问题与故障进行自动的处理。DSMySQL实例日常使用中随着实例的使用,会出现空间使用告警甚至超过实例限额被锁定的情况。1 .原因Binlog文件占用高数据文件占用高临时文件占用高系统文件占用高实例空间使用情况可以在DMS诊断报告中查看:ins_size-实例整体空间other_size-系统文件和临时文件使用空间d

23、ata_size-数据文件使用空间binlog_size-Binlog文件占用空间解决RDS实例支持单独升级磁盘空间,升级磁盘空间是解决空间问题的有效方式之一。下面说明不升级空间的情况下解决空间问题的方法。1Binlog文件Binlog文件记录实例的事务信息,是RDSMySQL实例HA架构以及高可用性、可恢复性的基础。是不可以关闭的。RDS实例会以一定时间间隔自动清理(上传到OSS并从实例空间中删除)最近18小时外的Binlog文件。如果短时间内实例DML操作生成了大量Binlog数据,有可能会导致超过实例磁盘空间上限而被锁定。在这种情况下,可以通过控制台备份与恢复一键上传Binlog来清理(

24、将Binlog文件上传到OSS并从实例空间中删除)。U星511三t日苦份初IEK金件宅画窗钻2016-03-08至201M(M5一哥G日WM刈8川48532016031410:13.1MiTB*1S三三2014812IS522016-031216:104MT三snrIiI20164.|13划201*0341OMQ实在一8.14GOM三3Teet”内2O1M3X)909532016030910:148.35G例MlSOW仿Tffcl三tWM一键上传Binlog会在后台异步提交清理任务,因此点击后会很快返回。清理任务会将完成写入的Binlog(当前正在被写入的Binlog文件由于未完成写入,是不可

25、以被清理的)上传到RDS的OSS(非用户购买OSS)上后才会从实例空间中删除Binlog文件,因此会有一定延迟,建议点击后耐心等待一定时间,不建议非常多次点击该按钮。注:对于实例由于DML等操作(比如涉及大字段的DML操作)导致快速生成Binlog的情况,可能会出现多次点击”一键上传Binlogm按钮但是Binlog空间依旧上涨的情况,这是因为上传Binlog文件到备份空间并且从实例空间中删除的处理速度跟不上实例生成Binlog文件的速度,在这种情况下,建议考虑升级磁盘空间,并且排查Binlog快速生成的原因。2数据文件对于数据文件占用空间高的情况,可以通过清理数据的方式来减少空间占用情况,比

26、如通过droptable和truncatetable来清理不再需要的数据。说明3个常见问题:information_schema.tables查询的数据容量information_schema.tables提供的是根据采样获取的表的部分统计信息,因此通过下面的查询获取的表、库数据尺寸和实际数据文件占用尺寸间会有出入(通常要小于实际数据文件占用空间)selecttable_name,concat(round(dataJength+IndexJength)/1024/1024.2) ,MB,)frominformation_schema.tableswheretable_schema=,rd-te

27、st,andtable_name=1arge-tab-01,;下图中可以看到:在收集表的统计信息前后反馈出的表数据量大小存在差异。1C398B7-ny)t2dC*tletconct(工OUnd(/1024/1024r2*MB*tdata_fE/1024/1024MBfrominfomtionaa*chn.tableswhrtabl_achnA三,rdtoat,andt.abl_nan=,lar9etabOl,:-tble_naaeIconceit(round(dAa_length*index_length)/1024/1024,21,MB,)IKBI-larg-tab_01jlG02.0Qgc

28、alyNetableIargjtafctJJl;TableIOpIX09typMagfXBrd-tt.large-tb_01IanalyseI0CAtu0IOKI-,rowin-t(0.11mc1.1, r0al1y)rd_Sbt)selecttable_nanecncat,data_free/1024/1024MBfrominfoxnation-ocheta.tableswheretable_9chen-,rd-teot,andtable_nAne,large_tab_01,;-tablaacMMMconcat(sound(dAtalethindexlength)/1024/1024,2r*

29、MB*)MBIaIrg-01IIm。由|134.00000000I4rowint(0.00ec即使通过analyzetable命令,重新收集统计信息,得到的数值通常也小于实际数据文件占用空间;比如本例的16143MB也小于该表的数据文件实际占用空间。由于数据文件在频繁的DML后会出现数据空洞的现象,比较接近实际数据文件占用空间的计算方法请参考:selectsum(datajength+indexjength+data_free)Z1024/1024frominformation_schema.tables;delete操作不能够直接回收被删除数据占用的数据文件空间,这就好比排空泳池中水但泳池的

30、占地面积不会发生改变一样。在delete操作删除数据后,需要通过OPtimiZetabletab_name;操作来回收空间。删除备份RDS备份放置在后台OSS上,不占用用户的RDS实例空间,因此删除备份不能解决实例的空间问题。而且删除备份会影响实例的可恢复性,强烈建议任何情况下不要考虑删除备份。3临时文件临时文件会随查询的结束或者会话的终止而自动释放,因此如果是临时文件导致实例空间满而锁定,可以通过终止会话来释放空间。I实例信息;ISQL畲口命令窗口导出导入实例授权tt三itr!SttSQL111S网余活IGH会备优化CMf次咽B:全都IBUSMKCtrt硼必MHflMMIIDTIMEUSER

31、HOSTOBCOMMAND-SQl11316Rky注my.testQuevyl*ctbfroprf-tt-11.idxjl.Prf.U,QjoJdxJttbhrcrt4-on23520057611316*Qutyl4clb.fraper_ltiteno_dxe01Aprdx.02bhrkill100865335;4系统文件系统文件涉及到ibdata1系统表空间文件和IbJogfiIeOibJogfilel日志文件。ibdata1文件:InnoDB引擎表由于支持多版本并发控制(MVCC),因此会将查询所需的Undo信息保存在系统文件ibdata1中。如果存在对一个InnoDB表长时间不结束的查询

32、,而且在查询过程中表有大量的数据变化,则会生成大量的Undo信息,导致ibdata1文件尺寸增加。由于MySQL内部机制的限制,ibdata1文件目前是不支持收缩的。因此出现这样的情况,在不升级磁盘空间的前提下,比较好的解决方法是在同地域同可用区购买相同配置的RDS实例,通过DTS工具将数据迁移到新实例中。ibjogfile日志文件:ibjogfile0和IbJogfiIeI日志文件保存InnoDB引擎表的事务日志信息,其文件大小尺寸固定,不可以改变。较大的尺寸在高并发事务的场景下有利于减少事务日志文件切换的次数,提高实例性能。长事务问题处理提供长事务问题处理功能,对MySQL使用过程中,出现

33、的长事务问题相关问题与故障进行自动的处理。在访问表时,innodb会自动给加上元数据锁(metadatalock,MDL),MDL是表级锁。如果是读,就是共享锁,写就是排它锁。当执行长事务时,后续的事务如果要获取排它锁就会被阻塞。可能引发系统崩溃严重事故。解决办法:1 .等系统不繁忙时操作2 .检查表information-schema.INNODB,TRX是否有长事务,考虑先暂停DDL,或者kill掉这个长事务。3 .将长事务分解成小批量事务。4 .设置等待获取锁时间,超时时放弃更新。长查询故障处理提供长查询故障处理功能,对MySQL使用过程中,出现的长查询而导致的各类事务、性能等相关问题与

34、故障进行自动的处理。ACPU/连接数/Threadrunning问题处理提供CPU/连接数/Threadrunning问题处理功能,对MySQL使用过程中,出现的CPU/连接数/Threadrunning等相关问题与故障进行自动的处理。A主从复制错误问题处理提供主从复制错误问题处理功能,对MySQL使用过程中,出现的主从复制错误相关问题与故隙进行自动的处理。2.L3数据库分析报表我公司将基于监控数据与数据库维护经验,形成SQL/事务/锁分析等分析报表,基于指标,生成数据库AWR实时运行报表,为数据库性能调优分析、故障分析提供依据。SQL分析报表基于监控数据与数据库维护经验,设计数据库SQL分析

35、报表,为数据库维护人员提供数据支撑,并为数据库性能调优分析、故障分析提供依据。事务分析报表基于监控数据与数据库维护经验,设计数据库事务分析报表,为数据库维护人员提供数据支撑,并为数据库性能调优分析、故障分析提供依据。锁分析报表基于监控数据与数据库维护经验,设计数据库锁分析报表,为数据库维护人员提供数据支撑,并为数据库性能调优分析、故障分析提供依据。AWR实时运行报表基于监控数据与数据库维护经验,设计AWR实时运行报表,为数据库维护人员提供数据支撑,并为数据库性能调优分析、故障分析提供依据。2.2项目开发实施方案221需求分析按比选人的要求,我公司负责开展详细全面的需求调研工作,进行需求分析并形

36、成需求说明书由比选人确认。对于业务部门提出的应用软件升级需求,由现场工程师与业务部门进行沟通,了解业务部门对应用软件的升级需求,形成需求文档,经相关部门确认后,按双方商定的开发进度进行开发和实施。首先需要经双方协调,制定需求调研计划及需求调研大纲,确定准备工作、需求调研的内容、方法方式以及人员和日程安排等内容,用户也须做好准备工作,经双方同意后按此计划开始调研。调研正式开始前,项目开发组应检查所有必要的准备工作已经圆满完成。按调研计划的进度进行现场调研,主要任务是用业务语言描述客户需求。尽可能及早落实主要算法,确定关键参数,掌握客户政策文件,收集需要打印的报表等。每天应将当天调研的内容整理成文

37、档,并及时与用户确认,提高工作效率。及时将访谈记录、用户政策材料整理成规范格式的需求分析报告,向客户项目组长汇报调研结果,共同对需求分析报告内容进行确认。同时明确今后需求变更控制的规程需求变更控制流程。对于调研期间未落实的问题,以待明确问题的形式体现在需求报告中,并确定落实期限。项目开发组根据调研编写系统需求分析报告,并由项目组评审,不合格的部分进一步完善调研;评审通过后由双方共同签署评审意见,并正式生效。对于软件生产过程而言,需求阶段是整个过程中最重要的阶段,需求分析成果的好坏将直接导致项目的成功与否。评审通过后的需求报告将成为系统的设计、开发、测试、实施、试运行和项目验收的基本依据之一,因

38、此原则上用户需求将不再因为其它因素的改变而变更,如需进行此种变更,需经双方项目负责人协商确定。开发组与客户一起制定总体项目计划,共同确定本项目的各项工作进度安排,明确每一阶段的工作内容,以及需要用户配合完成的具体工作。222软件开发项目经理召集项目组全体成员一起讨论和明确系统设计、数据结构、每个人的工作内容、各部分之间的接口关联等。做到每个项目组成员对项目的总体情况、整体工作目标和个人工作目标、工作时间、与其他人的关系、工作的方式方法等都有个清晰的概念,为项目的顺利开展及项目组成员间的良好沟通做好铺垫。全面考虑调研时用户提出的每个功能模块,开发出的程序应贴近用户需求,开发人员应从用户的角度来考

39、虑问题。做到定期检查和总结,来保证整体程序的完整性、一致性和协调性,保证项目按计划进行。如果发现有重大问题可能影响项目进展,向PM和部门负责人员提出。在开发过程中有不明确的需求,应该尽量以书面的形式与用户交流。项目开发组通过对系统的功能、运行和性能要求加以分析,产生一个高层次的系统结构、软件结构、接口和数据格式的设计,形成系统设计报告(其中包括数据库设计),提交项目组评审。对其中评审不合格的部分进一步完善和重新策划,评审通过后,作为后续软件开发和测试的基础。2.2.3 安装调测测试是检验软件开发结果质量的重要手段之一,根据阶段不同,可将测试划分为三个阶段:单元测试、集成测试和系统测试。首先是单

40、元测试,侧重于核实软件的最小可测试元素。单元可以是一个窗口(窗体),也可以是一个函数、菜单、报表或一个存储过程。单元测试应对单元内所有重要的控制路径设计测试用例,以便发现单元内部的错误,保证模块自身的准确性和流畅性。集成测试是把通过单元测试的各个模块组装在一起之后,按设计要求进行的测试,以便发现与接口有关的各种错误,保证系统的初步正确和稳定。系统测试在单元测试和集成测试后,基于系统的整体需求说明书而对系统进行的准确性和完整性的测。根据测试的内容和侧重点不同又可将测试分为:功能测试、性能测试和安全性测试。功能测试是对软件系统的功能需求进行的测试。主要暴露由于系统说明写的不明确或开发人员对系统说明

41、的误解或理解不足造成的功能错误。性能测试是为描述测试对象与性能相关的特征并对其进行评价,而实施和执行的一类测试,如描述和评价计时配置文件、执行流、响应时间以及操作的可靠性和限制等特征。包括负载测试、强度测试、并发测试、恢复测试等内容: 负载测试:核实在保持配置不变的情况下,测试对象在不同操作条件(如不同用户数、事务数等)下性能行为的可接受性; 压力测试:核实测试对象性能行为在异常或极端条件(如资源减少或用户数过多)之下的可接受性; 并发操作测试:核实测试对象在处理多个并发请求时的可接受性; 恢复测试:恢复测试可确保测试对象能成功完成故障转移,并能从导致意外数据损失或数据完整性破坏的各种硬件、软

42、件或网络故障中恢复。通过加强性能测试提高软件可靠性,使系统每年中断工作次数不超过3次,累计时间不超过1小时。安全性测试是测试系统在防止非授权的内部或外部用户的访问或故意破坏等情况时的表现。测试人员在软件开发过程中开始编写测试用例和测试大纲,根据制定的测试计划,在软件功能模块完成后,根据需求和设计结果的要求对软件进行测试,填写测试问题卡,并进行测试总结编制测试总结报告,对测试所发现的问题进行追踪修改和确认测试,直到彻底修改完成并对其它模块没有任何影响。测试过程尽量能够模拟用户环境测试几个周期。测试组测试时,开发人员应密切配合,及时改正测试出的问题,对问题应做备忘录,以便将来查询。测试资料作为项目

43、验收的重要内容之一。为加快项目进度,建议用户方测试组及早介入测试,最晚也应在我公司的系统测试完成之前介入,并按事先双方约定的规范方式进行测试。2.2.4 系统验收整个验收工作包括集成测试、用户接收测试、初验、试运行、终验,验收的方法与步骤按现有标准的项目管理办法执行。验收分两个阶段:安装运行前的用户测试;系统正式运行后的实际业务操作的检验。系统运行满足约定时间后,进行软件的验收工作。验收前和用户沟通好验收的时间和方式,制定验收计划,列出模块清单,并且安排好每个模块验收的时间段,按照这个时间列表与用户逐个模块验收。双方事先商定验收过程要求及参加人员,必要时邀请行业专家和相关领导参与。软件验收以符

44、合需求分析、业务要求作为验收标准。验收结果说明软件满足下列要求:符合通过审核的需求和设计文档中表述的功能要求,以及符合性能和安全性等非功能要求。问题处理:将验收过程中发现的所有错误都必须记录下来;对错误进行分类和确定级别;报告的错误得到修改/处理,或修改错误的计划得到同意。验收工作建议由用户相关部门组织的专家组对软件系统进行全面的验收和鉴定,并出具项目验收小组领导签字的项目验收报告,并签署验收意见,本公司在此过程中将全程参与,在现场进行验收前的维护工作。项目验收的前提条件 所有建设项目按照合同要求全部建成,并满足使用要求 各个分项工程全部初验合格 已通过软件确认测试评审 已通过软件系统测试评审

45、 软件已置于配置管理之下 各种技术文档和验收资料完备,符合合同的内容 系统建设和数据处理符合信息安全的要求 外购的操作系统、数据库、中间件、应用软件和开发工具符合知识产权相关政策法规的要求 经过用户单位同意 合同或合同附件规定的其他验收条件。验收步骤1)编写验收方案。项目实施单位在对项目进行深入的需求分析的基础上编写验收方案(计划书),提交用户单位审定。2)成立项目验收小组。实施测试验收工作时,应当成立项目验收小组,具体负责验收事宜。3)项目验收的实施。严格按照用户审定的验收方案对项目应用软件、网络集成效果、系统文档资料等进行全面的测试和验收。4)提交验收报告。项目验收完毕,对项目系统设计、建设质量、

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号