数据库技术方案.docx
《数据库技术方案.docx》由会员分享,可在线阅读,更多相关《数据库技术方案.docx(16页珍藏版)》请在冰豆网上搜索。
![数据库技术方案.docx](https://file1.bdocx.com/fileroot1/2023-4/19/502cf064-9738-4acf-ba60-0524d0118a0b/502cf064-9738-4acf-ba60-0524d0118a0b1.gif)
数据库技术方案
广西区质量技术监督局数据库
维保服务方案
南宁秦唐科技有限公司
2016年8月
1项目背景及目标
1.1项目背景
广西区质量技术监督局信息化建设经过多年的发展和完善,已经建立成熟的网络环境及生产经营管理的各类应用系统,目前质监局拥有多套不同类型的数据库(多种操作系统)混合使用(Oracle,Mysql,SqlServer),共十几个节点,其中最大的oracle生产数据库已高达3TB;随着质监工作的业务发展,各系统数据量逐年增加,作为业务核心的数据库,安全性,可靠性的要求也变得越来越高,需要更加专业细致地对数据库维护,以便更好地为全区质监工作提供IT服务。
1.2项目目标
通过建立规范的维护作业体系,及时发现数据库运行中的风险问题,防患于未然,保障数据库运行健康持续。
对数据库运行性能进行监测分析,及时发现瓶颈,通过外部资源调优、行的重新安排调优、SQL性能调优、表格和索引存储参数设置调优等方式,及时对性能问题进行处理,保障数据库稳定高效工作;
对各个系统数据库进行补丁升级服务,安装补丁前需要对补丁的可行性及风险性进行分析,并制定升级计划和应急回退计划。
同时要做好系统备份准备及详细的测试工作,确保系统的稳定性、安全性,保障系统业务数据的安全;
2需求分析
广西区质量技术监督局项目现场多种数据库共存,相互为多个应用系统服务。
为保证数据库系统的稳定、安全、合理和高效,减低故障对生产的影响,消除生产故障的薄弱环节,现需购买对以下数据库的保修和维护服务。
ID
数据库节点
数据库类型
应用说明
保障级别
1
oraclerac双节点(HP主机)
oracle10g
金质工程核心数据库
重要
2
oraclerac双节点(Linux)
oracle10g
金质工程核心数据库
重要
3
Oracle单节点
Oracle10g
边界交换数据库
重要
4
Oracle单节点
Oracle10g
云平台数据库(内网)
重要
5
Oracle单节点
Oracle10g
云平台数据库(外网)
重要
6
SQLSERVERMSCS1
mssqlserver2008
外部门户数据库
重要
7
SQLSERVERMSCS2
mssqlserver2008
外部门户数据库
重要
8
SQLSERVERMSCS3
mssqlserver2008
OA考核
重要
10
SQLSERVERMSCS4
mssqlserver2008
——
重要
11
mysql集群1
——
——
普通
12
mysql集群2
——
——
普通
3维保范围
1)提供常态化服务和技术支持,并配备资深工程师,工程师熟悉oracle/sqlserver/mysql等各种主流数据库技术,保证能快速、有效的解决各类故障。
2)配置和优化系统安全、加固,故障的诊断与排除等。
3)数据库系统恢复服务,确保系统崩溃后的快速恢复。
4)为客户提供各个版本数据库系统运行和维护的合理建议。
5)数据库系统软件升级(用户要求)和不限次(或配合用户)安装。
6)对数据库系统本身存在的安全隐患和安全问题,进行修复;对系统配置和数据定期备份
7)提供系统维修及维护报告。
4数据库维保方案
数据库维保工作主要包括:
数据库健康状态检查、数据库性能分析与调整、数据库备份与恢复、数据库补丁分析与安装、7*24小时数据库救援等工作。
4.1系统健康状态检查
检查内容包括:
ØOracle数据库和CRS错误日志和分析;
Ø文件系统空间使用情况检查;
ØOracle数据库及RAC系统运行情况状态、性能分析和优化建议;
Ø检查其OS状况,包括CPU、内存和交换区使用情况,硬盘和网络的IO情况检查;
Ø记录Oracle数据库存储空间的逻辑结构;
ØOracle数据库备份情况检查;
等
根据检查结果分析并给出数据库可行的调整建议和实施;
每月至少进行一次系统健康状态的检查,根据制定的维保服务内容和流程对Oracle、Mysql,SqlServer进行一次全面巡检,包括检查数据库设备、系统的运行情况;每月25日之前提供数据库巡检报告。
4.1.1Oracle数据库运维主要核查项
数据库的运维主要结合广西质量技术监督局的实际情况,提供切实可行的运维建设机制,内容覆盖ORACLE数据库的日常维护、紧急故障处理,软件升级等,客户可依据服务内容进行相应的定制。
我们将会提供全面的、针对性的服务解决方案,以保客户系统稳定、高效、可靠的运行,以达到对业务系统的有效支持。
4.1.1.1检查数据库cpu、I/O、内存性能
记录数据库的cpu使用、IO、内存等使用情况,使用vmstat,iostat,sar,top
等命令进行信息收集并检查这些信息,判断资源使用情况。
4.1.1.2检查rman备份的有效性
restorepreview/restoredatabasepreview命令
此命令用来查看还原需要使用哪个备份集来执行特定的恢复
使用validate和checklogical参数的restore命令,检查备份集,以确认数据库是可恢复的
restoredatabasevalidate;
使用checklogical参数可以更完全的检查最新备份集
run
{
restoredatabasechecklogicalvalidate;
}
使用validatebackupset命令
使用具有validate参数或checklogical参数的restore命令只能检查最新的备份集,如果要检查任意的备份集,就需要用validatebackupset命令。
首先必须确认要检查的备份集的键(backupsetkey)
listbackupset;
再执行检查
validatebackupset141;
或
validatebackupset141checklogical;
4.1.1.3检查oracle数据库集群运行状况
用crs_stat–t命令检查oracle数据库的几个集群模块是否有offline的
4.1.1.4检查数据库的Alert.log日志,是否有ora错误
对每个数据库,cd到bdump目录,通常是$ORACLE_BASE/admin//bdump
查看最新时候有ora错误,找出来分析
4.1.1.5收集每个数据库的AWR报告,根据报告内容,优化数据库
排查是否存在影响系统性能的等待事件、top5SQL、硬解析是否太高、缓冲区命中率是否高
4.1.1.6检查ASM磁盘组空间是否足够
selectinstance_name,host_name,startup_time,status,database_statusfromgv$instance;
确保数据磁盘组有足够的空间给数据库使用,如果是用于归档日志用的ASM磁盘组空间满,必须及时用rman备份并删除旧的归档日志。
4.1.1.7检查各个数据库操作系统的磁盘空间利用率
df–h或者df–m
文件系统空间使用率超过80%,必须要清理磁盘无用的文件或者日志
4.1.1.8检查数据库各个节点都处于读写模式
selectname,log_mode,open_modefromgv$database;
各个节点都正常,数据库才能实现负载均衡和失败切换的功能
4.1.1.9查看表空间使用率,及时添加数据文件
SELECTUPPER(F.TABLESPACE_NAME)"表空间名",
D.TOT_GROOTTE_MB"表空间大小(M)",
D.TOT_GROOTTE_MB-F.TOTAL_BYTES"已使用空间(M)",
TO_CHAR(ROUND((D.TOT_GROOTTE_MB-F.TOTAL_BYTES)/D.TOT_GROOTTE_MB*100,
2),
'990.99')"使用比",
F.TOTAL_BYTES"空闲空间(M)",
F.MAX_BYTES"最大块(M)"
FROM(SELECTTABLESPACE_NAME,
ROUND(SUM(BYTES)/(1024*1024),2)TOTAL_BYTES,
ROUND(MAX(BYTES)/(1024*1024),2)MAX_BYTES
FROMSYS.DBA_FREE_SPACE
GROUPBYTABLESPACE_NAME)F,
(SELECTDD.TABLESPACE_NAME,
ROUND(SUM(DD.BYTES)/(1024*1024),2)TOT_GROOTTE_MB
FROMSYS.DBA_DATA_FILESDD
GROUPBYDD.TABLESPACE_NAME)D
WHERED.TABLESPACE_NAME=F.TABLESPACE_NAME
ORDERBY4DESC;
密切关注各个表空间使用情况,使用率查过85%以上的,要及时添加数据文件到表空间,并与上个月巡检结果对比,估算主要业务表空间增长增长情况,一次性添加做过数据文件
4.1.1.10检查失效的索引
Select* from dba_indexes where status='UNUSABLE';
如果有失效索引,alterindexindex_namerebuildonline在线重建。
4.1.1.11检查大表,分析是否需要转换成分区表存放
SELECTSEGMENT_NAME,ROUND(SUM(BYTES)/1024/1024/1024,2)G
FROMDBA_SEGMENTS
WHEREOWNERNOTIN('SYS','SYSTEM')
ANDsegment_typeNOTIN
('INDEX','INDEXPARTITION','INDEXSUBPARTITION')
GROUPBYSEGMENT_NAME
ORDERBYGDESC;
对于日志大表,建议改造成采用按时间分区的分区表,提升数据库读写效率。
4.1.1.12检查oracle每个实例的的实际连接数和数据库配置的连接数
Selectcount
(1)fromv$session;--实际连接的session数量
showparametersession;
如果实际连接的session连接数快要达到系统配置的session数量,需要增加session的数量,以免有业务无法正常连接数据库
4.1.1.13检查数据库运行慢的SQL
SELECTUSERNAME,
SID,
OPNAME,
ROUND(SOFAR*100/TOTALWORK,0)||'%'ASPROGRESS,
TIME_REMAINING,
SQL_TEXT
FROMV$SESSION_LONGOPS,V$SQL
WHERETIME_REMAINING<>0
ANDSQL_ADDRESS=ADDRESS
ANDSQL_HASH_VALUE=HASH_VALUE;
4.1.1.14检查占用CPU比较多的SQL
SELECTP.PIDPID,
S.SIDSID,
P.SPIDSPID,
S.USERNAMEUSERNAME,
S.OSUSEROSNAME,
P.SERIAL#S_#,
P.TERMINAL,
P.PROGRAMPROGRAM,
P.BACKGROUND,
S.STATUS,
RTRIM(SUBSTR(A.SQL_TEXT,1,80))SQLFROMV$PROCESSP,
V$SESSIONS,
V$SQLAREAAWHEREP.ADDR=S.PADDRANDS.SQL_ADDRESS=A.ADDRESS(+)ANDP.SPIDLIKE'%&1%';
4.1.1.15检查最消耗内存资源的SQL
selectb.pga_alloc_mem/1024/1024,a.*
fromv$sessiona,v$processb
wherea.PADDR=b.addr
andpga_alloc_mem/1024/1024>100;
4.1.2Mysql数据库运维主要检查项
4.1.2.1检查数据库备份是否正常
检查是否有备份机制,已有备份机制,且最后一个备份成功为正常
4.1.2.2检查数据库后台日志,最近是否有error错误
检查data目录下host_name.err近期是否有错误
4.1.2.3检查MySQL数据库连接统计
show status; 检查
Aborted_clients 由于客户没有正确关闭连接已经死掉,已经放弃的连接数量。
Aborted_connects 尝试已经失败的MySQL服务器的连接的次数。
Threads_connected 当前打开的连接的数量。
Max_used_connections 同时使用的连接的最大数目
以 Max_used_connections 远小于f中的最大连接数目则正常。
如果接近则考虑增大最大数目。
4.1.2.4检查MySQL数据库表锁统计(包括立即锁及等待锁)
show status like 'table%';
如果 waited的数值比较高,说明数据库锁争用比较严重
4.1.2.5主库查看状态
Showmasterstatus
4.1.2.6查询从服务器状态
Showslavestatus,经常检查从服务器的复制状态,防止复制过程中出现故障从而导致进程停止
4.1.2.7Mysql连接数排查
Showvariableslike‘%max_connectins%’
Showgloablestatuslike‘max_use_connections’
当前数据库已经使用的最大连接数不能超过阀值
4.1.2.8Mysql文件打开数检查
Showglobalstatuslike‘open_files’;
Showvariableslike‘open_files_limit’
打开数量要小于limit值
4.1.3SqlServer数据库运维主机检查项
4.1.3.1检查数据库自动备份是否正常
检查是否有备份机制,以有备份机制,且最后一个备份成功为正常
4.1.3.2验证备份集
验证备份集(RESTOREVERIFYONLY)
4.1.3.3检查数据库集群是否能正常工作
4.1.3.4检查磁盘空间是否足够
检查数据文件所在的磁盘空间使用情况
检查日志文件所在的磁盘空间使用情况
检查备份的磁盘空间使用情况
4.1.3.5检查系统日志
使用“事件查看器”,查看系统日志,关注错误信息排查错误。
重点关注与SQLServer相关的日志信息。
及时备份与清理过期的日志信息。
4.2数据库性能分析与优化调整
根据用户需要进行数据库的性能分析,针对发现的问题提出合理的解决方案;每月巡检中包含对数据库运行性能的分析。
主要包括:
数据库性能的监控和调整、系统资源的监控及管理。
如:
●优化服务器配置
根据现有硬件配置及用户访问量及服务器性能指标,确定是否存在系统(cpu,内存,硬盘)瓶颈及数据库配置问题,提出解决瓶颈的方法及建议。
●优化应用程序
根据应用程序配置,确定是否存在应用程序问题使系统运行缓慢,提出应用程序优化建议(如:
负载均衡)。
●数据库及应用程序整合
分析数据库与应用布局是否合理,提出整合建议。
●数据库参数调整
优化参数,使数据库在最优的环境下运行。
●数据库潜在重要问题
数据库是否存在潜在问题,对数据库有什么重要的影响,或深圳广西质量技术监督局方面认为紧急的。
●优化内存配置与系统后台进程
●优化物理文件的存放,对大型数据库考虑用磁盘阵列柜存放
●优化数据库逻辑结构
优化表空间、临时表空间、回滚段
●优化数据库对象
优化表结构、建立分区表,优化索引结构、更新统计信息
●优化SQL语句
查询运行慢的SQL语句,并给出优化建议
●提供数据库优化方案及实施方案、报告等
4.3数据库备份以及恢复服务
根据现场情况,制定合理的备份计划,定期备份各个数据库。
具备条件的情况下,要定期对备份集进行异机恢复,测试备份集是否可用。
数据库发生重大故障时(如磁盘阵列故障导致的数据库瘫痪),以最快的速度从备份系统中恢复数据,并使系统能够在最短的时间内恢复正常运行。
4.4数据库补丁分析与安装
根据用户需要提供相关系统软件升级服务;当数据库ORACLE、MYSQL、SQLSERVER软件有最新更新升级时,维保方须及时通知广西质量技术监督局,并根据广西质量技术监督局的要求和安排到现场进行更新升级(每年一般不超过两次)。
4.57*24小时数据库救援服务
提供7×24小时应急响应热线,由具有丰富工作经验的资深OCP认证工程师在用户的Oracle产品出现重大故障时提供现场紧急救援服务。
重大故障包括:
OS故障,导致Oracle不能正常启动或运行
硬件故障(包括CPU、硬盘等),导致数据库崩溃
人为故障,包括维护人员不小心删除数据库文件,或人为将Table中的数据删除等等
导致数据库不能正常运行的情况,如控制文件遭破坏,RedoLog文件遭破坏,数据文件遭破坏等等
其他故障,包括影响数据库正常运行的各类紧急故障
5技术支持以及服务体系
5.1故障处理要求
25分钟内故障处理电话响应服务,故障服务的现场响应时间小于1小时,即1小时内有能够处理故障的技术人员到达现场,并立即投入对故障的处理,并能够在2个小时内恢复故障系统的正常运行。
如果用户的问题不能通过电话解决,客户服务部会立刻派经验丰富的工程师到现场为用户解决问题,客户服务人员对解决的过程进行记录,并向用户提供解决问题的报告.包括问题原因、解决方法、解决问题的方式和进程,以及建议用户对系统进行正常使用的指导和培训.问题解决后需要用户进行确认。
5.2重大活动现场护航
敏感时期、重大节假日、领导巡查,维护技术原因提前入场做详细巡检,并于活动时间段内入驻客户驻地,提供5*8小时的现场保障服务。
在国家节假日期间前一个星期,提供节日值班表,包含:
当日负责人姓名及联系电话、反应时间、到现场时间、处理好时间等内容。
以发电子邮件方式告知客户负责人。
5.3维护作业计划
为保障数据库系统的长效运行。
我们制定日、周、月的检查内容,通过自动、远程、现场相结合的方式,形成日常作业计划,对数据库运行情况检查,及早发现问题和处理问题。
如:
每日的数据库表自动分析、每周的远程备份情况检查、每月的现场设备检查等。
5.4信息安全保障
系统的安全性是业务正常运行的保障,其重要性不言而喻。
我公司会根据标准的安全规范和成功经验,为用户的系统进行安全性检查,包括文件权限的设置、用户访问的限制、增补软件的更新等技术方面,同时对系统安全策略进行评估,将发现的问题隐患及改进建议以报告的形式提交给用户。
通过系统安全性检查,可以提高系统的安全级别,防止系统遭到恶性攻击口。
5.5第三方协助服务
协助用户或第三方完成对系统设备、软件的维护、升级、扩容等技术支持工作,确保客户生产系统的安全平稳运行。
5.6服务质量分析
提供每月1次对oracle、sqlserver、mysql全面巡检服务,对维保范围系统进行细致全面地监视、检查、隐患排除等。
并按照用户要求提供特殊时段保障要求的巡检。
每月提交月度服务报告、包括并不限于服务天数、次数、电话接通延迟时间、报修故障及原因、恢复措施报告等定量数据;根据用户需要召开服务质量分析例会,对该阶段服务进行总结。
并对例会纪要中的意见与建议部分于7日内反馈并跟踪落实。
工程师将在巡检后进行日志分析,及时发现潜在故障隐患以及系统错误日志,并提供巡检报告一册,巡检报告内容包括设备运行状态、错误日志、以及针对问题的优化建议等。
6项目实施以及管理
6.1项目实施策略
项目的实施成功与否主要表现为“两个机制、一个测试”:
顺畅沟通机制和技术转移机制、模拟测试。
顺畅沟通机制:
建立和用户方的良好顺畅的协调机制;技术转移机制:
系统在移交后,日常的管理工作有比较大的专业性,成功的技术转移是以后系统良好运作的前提和保证。
建议用户方的技术牵头人和系统管理员对项目的全程深入参与。
模拟测试:
通过在模拟环境完成系统调试后并在真实环境完成试运行测试。
因而在本次Oralce日常运行维护服务的过程中,我公司将按照软件项目实施的策略来进行管理,从而保证整个项目的维护就如同开发过程一样严格管理。
6.2项目实施计划
ORACLE产品日常运行维护年度服务项目是一个长期的优化维护项目,我公司根据多年的开发维护经验可分为两个阶段。
第一个阶段为优化实施阶段,包括各个应用系统的环境情况调查,应用系统的统计登记、数据库系统的优化等。
第二个阶段为运维阶段,主要包括相关应用的培训,数据库管理培训、数据库备份恢复的培训以及后期系统运维、检查等保护措施,定期对全厂数据库及系统进行巡检,巡检内容包括:
系统日志、网络状况、系统空间状况、存储设备状态、系统性能、产品参数与配置、数据库各种文件的状态与配置、数据库安全审计、数据对象配置的合理性、实例的运行效率、SQL代码性能调优等。
6.3项目交付文档
6.4交付要求
我公司提供的资料将使用国家法定单位制即国际单位制,语言为中文。
提供的纸介质文件时需同时提供Office电子版文件。
资料的组织结构清晰、逻辑性强。
资料内容正确、准确、一致、清晰完整,满足项目要求。
6.5提交文件资料
文档的内容至少包括系统的维护手册、数据库定期巡检记录、数据库日常运维手册、文档介质包括:
Ø系统信息表
Ø数据库日常运维手册
Ø数据库定期巡检记录表
Ø应用系统巡检记录
Ø其他相关的技术资料