还剩43页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
ORACLE数据库日常运行维护年度服务项目方案书TIME_REMAINING0AND SQL_ADDRESS=ADDRESS ANDSQL_HASH_VALUE=HASH_VALUE;
3.
1.
1.6检查消耗CPU最高的进程SET LINE240SET VERIFYOFF COLUMN SID FORMAT999COLUMN PIDFORMAT999COLUMNS_#FORMAT999COLUMN USERNAME FORMAT A9HEADING ORAUSER COLUMNPROGRAM FORMAT A29COLUMN SQLFORMAT A60COLUMN OSNAMEFORMAT A9HEADING OSUSER SELECTP.PID PID,S.SID SID,P.SPID SPID,S.USERNAME USERNAME,S.OSUSER OSNAME,P.SERIAL#S_#,P.TERMINAL,P.PROGRAM PROGRAM,P.BACKGROUND,S.STATUS,RTRIMSUBSTRA.SQL_TEXT,1,80SQLFROM V$PROCESS P,V$SESSION S,V$SQLAREA AWHERE P.ADDR=S.PADDR ANDS.SQL_ADDRESS=A.ADDRESS+AND P.SPID LIKE%1%;
3.
1.
1.7检查碎片程度高的表SQL SELECTsegment_name table_name,COUNT*extents FROM dba_segments WHEREowner NOTIN SYS;SYSTEM GROUPBY segment_name HAVINGCOUNT*=SELECT MAXCOUNT*FROMdba_segments GROUPBY segment_name;
3.
1.
1.8检查表空间的I/O比例SQLSELECT DF.TABLESPACE_NAME NAME,DF.FILE_NAME FILE,F.PHYRDS PYR,F.PHYBLKRD PBR,F.PHYWRTS PYW,F.PHYBLKWRT PBWFROM V$FILESTAT F,DBA_DATA_FILES DFWHERE F.FILE#=DF.FILEJD ORDER BY DF.TABLESPACE_NAME;
3.
1.
1.9检查文件系统的I/O比例SQLSELECT SUBSTRA.FILE#,1,2SUBSTRA.NAME,l,30NAME,A.STATUS,A.BYTES,B.PHYRDS,B.PHYWRTS FROM V$DATAFILE A,V$FILESTAT BWHERE A.FILE#=B.FILE#;
3.
1.
1.10检查死锁及处理查询目前锁对象信息col sidfor999999col username for a10col schemaname for a10col osuserfor al6col machinefor al6col terminalfor a20col ownerfor alOcol object_namefor a30col object_type fora10select sid,serial#,username,SCHEMANAME,osuser,MACHINE,terminal,PROGRAM,owner,object_name,object_type,o.objectjd from dba_objects o,v$locked_object lzv$session swhere o.object_id=l.object_id ands.sid=l.session_id;oracle级kill掉该sessionalter systemkill sessionsid,serial#;操作系统级kill掉session#kill-9pid
3.
1.
1.11检查数据库cpu、I/O、内存性能记录数据库的cpu使用、
10、内存等使用情况,使用vmstat,iostat,sar,lop等命令进行信息收集并检查这些信息,判断资源使用情况■CPU使用情况[root@sale8top top-10:29:35up73days,19:54,1user,load average:
0.37,
0.38,
0.29Tasks:353total,2running,351sleeping,0stopped,0zombie Cpus:
1.2%us,
0.1%sy,
0.0%ni,
98.8%id,
0.0%wa,
0.0%hi,
0.0%si Mem:16404472k total,12887428k used,3517044k free,60796k buffersSwap:8385920k total,665576k used,7720344k free,10358384k cachedPID USERPR NlVIRT RESSHR S%CPU%MEM TIME+COMMAND30495oracle1508329m866m861m R
105.417:
53.90oracle32501oracle1508328m
1.7g
1.7g S
210.61:
58.38oracle32503oracle1508329m
1.6g
1.6g S
210.22:
06.62oracle注意上面的蓝色字体部分,此部分内容表示系统剩余的cpu,当其平均值下降至10%以下的时视为CPU使用率异常,需记录下该数值,并将状态记为异常■内存使用情况:#free-m totalused sharedbuffers cachedMem:202619580761556-/+buffers/cache:3261700Swap:5992925900如上所示,蓝色部分表示系统总内存,红色部分表示系统使用的内存,黄色部分表示系统剩余内存,当剩余内存低于总内存的10%时视为异常■系统I/O情况:#iostat-k13Linux
2.
6.9-
22.ELsmp ASM07/29/2012avg-cpu:%user%nice%sys%iowait%idle
0.
160.
000.
050.
3699.43Device:tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda
3.
3313.
1650.2594483478360665804%user%nice%sys%iowait%idle avg-cpu:
0.
000.
000.
000.
00100.00Device:tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda
0.
000.
000.0000如上所示,蓝色字体部分表示磁盘读写情况,红色字体部分为cpuio等待情况■系统负载情况uptime12:08:37up162days,23:33,15users,load average:
0.01,
0.15,
0.10如上所/蓝体季部分表示系统负载,后面的3个数值如果看高N
2.5的时候就表明系统在超负荷运转了,并将此值记录到巡检表,视为异常
3.
1.
1.12查看是否有僵死进程select spidfrom v$process where addr notin selectpaddr from v$session;有些僵厂进程有阻塞其他业务的正常运行,定期杀掉僵厂进程
3.
1.
1.13检查行链接/迁移Sqlselect table_name,num_rows,chain_cnt Fromdba_tables Whereowner=CTAIS2And chain_cnt0;一注含有long raw司的表有行链接是正常的我到迁移行保存到chained_rows表中,如没有该表执行../rdbms/admin/utlchain.sql Sqlanalyzetable tablenamelist chainedrows;可通过表chained_rows中table_name,head_rowid看出哪些行是迁移行如:Sqlcreate tableaa asselect a.*from sb_zsxx a,chained_rows bwherea.rowid=b.head_rowid andb.table_name-SB_ZSXX;sqldclete fromsb_zsxx whererowid inselect head_rowid from chained_rows wheretable_name=SB_ZSXX;sqlinsert intosb_zsxx select*fromchained_row wheretable_name=SB_ZSXX;
3.
1.
1.14定期做统计分析对于采用Oracle Cost-Based-Optimizer的系统,需要定期对数据对象的统计信息进行采集更新,使优化器可以根据准备的信息作出正确的explain plane在以下情况更需要进行统计信息的更新■应用发生变化;■大规模数据迁移、历史数据迁出、其他数据的导入等;■数据量发生变化查看表或索引的统计信息是否需更新,如SqlSelect table_name,num_rows,last_analyzed Fromuser_tables wheretable.name=DJ_NSRXX sqlselectcount*from DJ_NSRXX如num_rows和count*如果行数相差很多,则该表需要更新统计信息,建议一周做一次统计信息收集,如Sqlexec sys.dbms_stats.gather_schema_statsownname=CTAIS2,cascade=TRUE,degree=4;
3.1,
1.15检查缓冲区命中率SQL SELECTa.VALUE+b.VALUE logical_reads,c.VALUE phys_reads,round100*l-c.value/a.value+b.value,4hit_ratio FROMv$sysstat a,v$sysstat b,v$sysstat cWHERE a.NAME=db blockgets ANDb.NAME=consistent getsAND c.NAME=physical reads;LOGICAL_READS PHYS_READS HIT_RATIO
12736457057119143094.4104如果命中率低于90%则需加大数据库参数db_cache_size
03.
1.
1.16检查共享池命中率SQL selectsumpinhits/sumpins*100fromv$librarycache;SUMPINHITS/SUMPINS*
10099.5294474716798如低于95%,则需要调整应用程序使用绑定变量,或者调整数据库参数shared pool的大小
3.
1.
1.17检查排序区SQL selectname,value fromv$sysstat wherename like%sort%;NAME VALUEsorts memory6135534sorts disksorts rows2264742084如果disk/memoty+row的比例过高,则需要调整sort_area_sizeworkarea_size_policy=false或pga_aggregate_targetworkarea_size_policy=trueo
3.1,
1.18检查日志缓冲区SQL selectname,value fromv$sysstat wherename inredo entries,redo buffer allocation redoentries redo bufferallocation retries27663705如果redobufferallocationretries/rcdo entries超过1%,则需要增大log_buffer
3.
1.2性能调优及方法性能调优主要有主动调优和被动调优,主动调优在前面我们已经进行了阐述,被动调优主要有以下方法进行■确定合理的性能优化目标■测试并记录当前的性能指标■确定当前存在的Oracle性能瓶颈(Oracle中何处存在等待,哪个SQL语句与此有关)■确定当前的操作系统瓶颈■优化相关的组件(应用、数据库、I/O、连接OS及其它)■跟踪并实施变化管理制度■测试并记录目前的性能指标■重复第3到第7步直至达到既定的优化目标不要对并非性能瓶颈的部分进行优化,否则可能引起额外的问题正如任何聪明的人会告诉你的“如果还未坏,千万不要修”更重要的是,一旦既定的优化目标已经达到,就务必停止所有的优化获取Oracle的性能指标(测试前及测试后)必须在峰值处理时测试并获取系统在优化前和优化后的性能指标数据采集不应在数据库instance刚刚起动后进行同时,测试数据应在峰值期间每过15分钟进行一次初始化参数TIMED-STATISTICS应该被设为TRUE通过运行以卜脚本开始快照$ORACLE_HOME/rdbms/admin/utlbslat.sqL通过运行以下脚本结束快照$ORACLE_HOME/rdbms/admin/utlestat.sqL完成utlestat.sql操作后,会在当前目录中生成名为“report.txt”的文件,包含系统的性能数据该报告包括每15分钟捕获的所有与Oracle例程相关的参数
3.
1.
2.1寻找问题根源如上所述,通过查看v$system_event事件开始系统事件的问题诊断下一步是查看v$session_evcnt,找出引起或经历等待事件的进程最后一步是通过v$session_wait获得事件的细节同时,应该进一步通过OS进行深入分析,了解核心的CPU、内存和10状态参数最后,结合两种不同的诊断的结论,找出系统瓶颈所在
3.
1.
2.2System_Event事件v$system_event可以从全局的角度查看Oracle系统中的所有事件尽管它并不包括任何进程级的信息(当前或历史),但却可以显示上次例程弹出后总的等待时间这种动态性能视图中的数据,会在下次例程起动时清零出于这种原因,这种视力中的数据应该在不同时段进行抽样
3.
1.
2.3Session_Event事件v$scssion_cvcnt视图在进程级提供与v$systcm_cvcnt相同的信息(即,SID等)这种视图可以从“system-wide events”级进一步钻取,到达进程级,以确哪个进程引起或经历了等待事件
3.
1.
2.4Session_Wait v$session_wait视图在特定事件的进程级提供低层次的信息挖掘不同于其它一些视图,这种方式可以“实时”获取进程级的等待信息这是真正有用的信息切记,每次查看这一视图得到的结果可能不一样这可能与数据库中当前的活动有关
3.
1.
2.5应用优化从统计和现实的角度看,80%的Oracle系统性能问题可以通过SQL代码优化来解决任何应用优化的过程,不外乎是索引优化、全表扫描、并行机制改进和选择正确数据组合方法的过程这正是要达到最佳应用性能所必须考虑的因素没有SQL的优化,就无法实现高性能的应用良好的SQL语句可以减少CPU资源的消耗,提高响应速度同时,优化后的SQL语句还可以提高应用的可扩展性,这是除增加大量内存外,任何其它硬件手段也无法实现的3・1・
2.
5.1例程调优■需要配置的主要初始化参数以下是一些已知与例程优化关系最密切的一些核心Oracle初始化参数它们都会影响Oracle及SGA区的活动任何对这些参数的改动,在实施到生产环境之前,都必须进行测试一旦改变了生产环境的参数,就必须对相关的Oracle动态性能指标和操作系统的性能进行监测,寻找可能由此产生的异常现象1DB_BLOCK_SIZE该参数在数据库建立前设定,决定了数据库中每个数据块的大小只有重新建立数据库,才有可能改变该参数db_block_size的配置应遵循以下公式DB_BLOCK_SIZE=FILESYSTEM BLOCKSIZE=O-S PAGESIZE这可以确保Oracle获得最佳I/O性能,同时不会由于冗余或不必要的I/O,给I/O子系统带来压力2DB_BLOCK_BUFFERS该参数决定了SGA区数据库缓冲区中的块数量由于这是Oracle读取和写入的区域,它的不正确配置会引起严重的I/O性能问题尽管缓冲区的大小与应用性质、数据库大小、同步用户数等无关,它的确是SGA区中最大的组件经常可以看到缓冲区占用75-80%SGA区内存的情况另外,这一参数设置过大,也会引起整个系统的内存不足,引起操作系统过多的读写操作该参数及SHARED_POOL_SIZE通常是两个最重要的SGA优化目标只有当数据库缓冲率长时间低于7%时,才需要增加其大小说即使在这种情况下,也需要进一步审查应用的性能和整个系统的吞吐性若存在延迟性的应用设计问题,则无论数据库缓冲区的大小如何,缓冲和读写率都不会有太大改变为在实调优中,也曾发现由于SQL语句的问题,出现缓冲率很高,但仍存在全系统性能问题的情况3SHARED_POOL_SIZE该参数按字节数设定,定义了SGA中共享区的大小该组件的大小严重依赖于应用的类型即该应用是重用SQL,还是生成动态SQL,等等同时它也取决于同步用户的数量,以及实例是否被配置成支持多线程服务器MTS如果该应用采用了MTS配置,则共享区应该明显增加,因为光标状态和用户进程数据等程序全局区域PGA都被置入了共享区有关多数应用的SHARED_POOL_SIZE大小设置,可以从每1个同步用户16MB共享区开始这不是一成不变的,因为应用的性质最终会决定该组件的大小只有当库缓冲和字典缓冲使用率一直低于90%时,才需要关注这一参数但如果应用并未采用变量合并和/共离图标时,内存的数量并不会使缓冲使用率高于90%o共享区过大会导致处理时间增加,甚至SQL语句的挂起如果应用不能有效地重用SQL,则无论配置多大的库缓冲或字典缓冲都无济于事,不能改善缓冲使用率另一个值得考虑的因素是需要随时使用的存储PL/SQL代码数量应用的核心包可以通过查看DBA_SOURCE、USER.SOURCE得以确认,其大小通过查询DBA_OBJECT_SIZE了解另外,为了确定存储PL/SQL是否被置于内存,可以查询动态性能视图V$DB_OBJECT_SIZEo内时,包DBMS_SHARED_POOL中的程序大小可被用于确定应用中大包的规模4LOG.BUFFER根据字节设定,该参数定义了SGA缓冲区中redo log的大小缺省值通常是数据库块大小的四倍,这对于多数环境并不是最佳的对于中型的Oracle环境,其结构应该为512Kb左右对该存储结构而言,更大并不意味着更好超过1MB就可能有问题需要监控V$SESSION_WAIT中log bufferspace的等待事件,以优化该内存结构需要提醒的是,在线redo log文件的大小设置不当,会引起redo请求的等待5DB_WRITERS该参数可以针对所有文件系统支持,且不可使用Direct L0的Oracle实施设定这并不需要与raw partitions一起使用,因为异步1-0更加建议将该参数设定为(2*独立磁盘驱动器数量/卷)该参数只有在report.txt中的“average writequeue length”持续高于1时,才需要设定在Oracle
8.0和更高版本中,该参数已不再被支持,而为其它两个名为DB_WR1TER_PROCESSES和DBWRJO.SLAVES的参数取代若需要设置DB_WRITER_PROCESSES值高于8,则DB_WRITER_PROCESSES可被设为1,且DBWR_IO_SLAVES可被设为“n”,其中n的值必须设置为(2*独立磁盘驱动器数量/卷)
3.
1.
2.
5.21-0优化1-0优化是系统优化中的一个关键步骤,还涉及到其它任务,将文件在不同驱动器/卷中进行分布,采用优化分区技术、确定1-0子系统瓶颈、确定控制器瓶颈并根据应用的类型选择最佳的RAID级1-0优化应该在全面了解Oracle及Oracle RDBMS结构之后进行应该在进行L0优化前后实施1-0数据监控,如平均服务时间,IOPS,平均磁盘队列长度等
3.
1.
2.
83.
83.
1.
93.
1.
3.
1.
93.
1.
93.
1.
3.
1.
103.
1.
103.
1.
103.
1.
103.
1.
103.
1.
113.
1.
123.
1.
133.
1.
133.
1.
143.
1.
143.
1.
143.
1.
153.
153.
1.
163.
1.
163.
1.
163.
1.
3.
1.
173.
1.
2.
173.
1.
2.
193.
1.
2.
193.
1.
2.
213.
213.
2.
213.
2.
223.
2.
3.
1.
2.
5.4O-S监控数据库忙时,应该对操作系统进行监控,因为操作系统的性能指标会揭示数据库活动的性质及其对系统的影响例如,为了了解CPU的利用率,可以通过system activityreporter sar-u intervalfrequency、mpstat SunSolaris,top多数UNIX、osvicw SGIIrix及vmstat等命令Sar和vmstal也可被用于确定包括内存使用率、1-0参数、队列等待、读取/交换区活动等信息在Solaris上,mpstat utility也可用于获取前面提到的CPU利用率数据Solaris上的Adrian性能管理工具也很有用可以利用其中的一到多个工具来确定系统的性能状况,找出可能存在的瓶颈Oracle数据库性能的管理需要遵循系统的方法论,以确保所有核心问题得以解决多数问题可以事先得以管理“了解与0-S相关的问题是成功的关键勿需置疑,系统硬件配置上的良好平衡也是至关重要的必须承认,80%的系统性能问题可以通过书写更好的SQL语句来解决来文试图探究其余20%中可能覆盖的内容同时,必须遵守严格的规定,在调优目标达到后终止所有努力了解自己想到何处是重要的,更重要的是,要知道自己何时到达了目的地
3.2数据库备份恢复为了保证客户数据库系统的数据安全性,降低各种故障、灾难给客户带来的数据丢失,根据客户系统实际情况,协助客户规划实施符合客户工作要求的完善的备份恢复方案,以确保客户数据库系统的安全可靠运行数据库的恢复与备份主要有以下几点■恢复管理器RMAN,能使备份恢复操作自动化■Oracle数据泵,用以数据库的逻辑备份■用户管理允许用户通过操作系统命令手动备份数据库■各种各样的其他的数据库备份和恢复软件,增强了Oracle的备份实用程序Oracle备份时应注意事项当数据库处于运行状态时的热备份时,不备份活动事务;使用比如Oracle工具Oracle RAMN或者其他的第三方软件IBM/Tivoli的数据存储管理器压缩Oracle备份数据;如果维持数据存储空间比备份和恢复数据库时间更重要的话,可以考虑使用二进制压缩
3.
2.1检查Oracle数据库备份结果检查Oracle数据库备份结果,是日常运维中必不可少的一个环节包含检查数据库备份日志信息,检查backup卷中文件产生的时间,检查oracle用户的email,总共三个部分
3.
2.
1.1检查数据库备份日志信息假设备份的临时目录为/backup/hotbakup,我们需要检查2012年7月22日的备份结果,则用下面的命令来检查#cat/backup/hotbackup/hotbackup-09-7-
22.log|grep-i error备份脚本的日志文件为hotbackup-月份.日期.年份Jog,至备份的临时目录.下面如果文件中存在“ERROR:,则表明备份没有成功,存在问题需要检查
3.
2.
1.2检查backup卷中文件产生的时间#ls-It/backup/hotbackup backup卷是备份的临时目录,查看输出结果中文件的日期,都应当是在当天凌晨由热备份脚本产生的如果时间不对则表明热备份脚本没执行成功
3.
2.
1.3检查oracle用户的email#tail-n300/var/mail/oracle一热备份脚本莫通过Oracle前占的cron区执行的cron执行完后操作系统就会发一条Email通知Oracle用户任务已经完成查看Oracle email中今天凌晨部分有无ORA-,Error,Failed等出错信息,如果有则表明备份不正常
3.3数据库迁移数据迁移是日常运维过程中存在的一个必不可少的应急方案日常维护过程中,由于硬件的原因或其它一些外在因素需要对数据进行迁移,迁移到更加高级的主机上、迁移到远程的机房上、迁移到不同的平台下等等一些情况对于数据迁移XXX科技公司有非常成熟的方案,从以下几种方式我们可以充分了解其优缺占.J、、、•■exp/imp这也算是最常用最简单的方法了,一般是基于应用的wner级做导出导入;♦优点是可以跨平台使用;♦缺点是停机时间长,停机时间为从exp到网络传输到新库,再加上imp的时间;■存储迁移这种情况下,数据文件、控制文件、日志文件、spfile都在存储上(一般情况下是裸设备),我们可以直接把存储挂到新机器上,然后在新机器上启动数据库;♦优点是该迁移方式非常简单,主要的工作是主机工程师的工作,dba只需配合即可,停机时间为当库、切存储、起库的时间♦缺点是要求新老库都是同一平台,是相同的数据库版本■利用data guard迁移;♦优点是停机时间短,停机时间为switch over的时间♦缺点主机必须双份、存储必须双份■用rman做迁移,这种方式比较适合于跨文件系统的迁移,如同平台下的不同文件系统
3.4数据库运维数据库的运维主要结合XXX系统的实际情况,提供切实可行的运维建设机制,内容覆盖ORACLE数据库的日常维护、紧急故障处理,软件升级等,客户可依据服务内容进行相应的定制我们将会提供全面的、针对性的服务解决方案,以保证客户系统稳定、高效、可靠的运行,以达到对业务系统的有效支持
3.
4.1检查数据库基本状况对数据库的基本状况进行检查,其中包含检查Oracle实例状态,检查Oracle服务进程,检查Oracle监听进程,共三个部分
3.
4.
1.1检查Oracle实例状态SQL selectinstance_name/host_name,startup_time/status/database_status fromv$instance;INSTANCE_NAME HOST_NAME STARTUP_TIME STATUSDATABASE_STATUS CKDBAS142012-5-79:3OPEN ACTIVE其中“STATUS”表示Oracle当前的实例状态,必须为“OPEN”;“DATABASE_STATUS”表示Oracle当前数据库的状态,必须为“ACTIVE”SQL selectname,log_mode,open_mode fromv$database;NAME LOG_MODE OPEN.MODE CKDBARCHIVELOG READWRITE其中“LOG_MODE”表示Oracle当前的归档方式“ARCHIVELOG”表示数据库运行在归档模式下,“NOARCHIVELOG”表示数据库运行在非归档模式下在我们的系统中数据库必须运行在归档方式下
3.
4.
1.2检查Oracle服务进程$ps-ef|grep ora_|grep-v grepps-ef|grep ora_|grep-v grep|wc-I oracle296010May0700:01:02ora_pmon_CKDB oracle296210May0700:00:22ora_pspO_CKDB oracle296410May0700:00:00ora_mman_CKDB oracle296610May0700:03:20ora_dbw0_CKDB oracle297210May0700:03:45ora_smon_CKDB oracle297410May0700:00:00ora_reco_CKDB oracle297610May0700:01:24ora_cjqO_CKDB oracle297810May0700:06:17ora_mmon_CKDB oracle298010May0700:07:26ora_mmnl_CKDB oracle298210May0700:00:00ora_d000_CKDB oracle299410May0700:00:28ora_arcO_CKDB oracle299610May0700:00:29ora_arcl_CKDB oracle300010May0700:00:00ora_qmnc_CKDB oracle362510May0700:01:40ora_q000_CKDB oracle3159410Jul2000:00:00ora_q003_CKDB oracle238021005:0900:00:33oraJ000_CKDB在检查Oracle的进程命令输出后,输出显示至少应包括以下一些进程:■Oracle写数据文件的进程,输出显示为“ora_dbwO_CKDB”■Oracle写日志文件的进程,输出显示为“ora」gwr_CKDB”■Oracle监听实例状态的进程,输出显示为“ora_smon_CKDB”■Oracle监听客户端连接进程状态的进程,输出显示为“ora_pmon_CKDB”■Oracle进行归档的进程,输出显示为“ora_arcO_CKDB”■Oracle进行检查点的进程,输出显示为“ora_ckpt_CKDB”■Oracle进行恢复的进程,输出显示为“ora_reco_CKDB”
3.
4.
1.3检查Oracle监听状态/home/oraclelsnrctl statusLSNRCTL for Linux:Version
10.
2.
0.
2.0-Production on23-JUL-201214:11:53Copyright c1991,2005,Oracle.All rightsreserved.Connecting toADDRESS=PROTOCOL=tcpHOST=PORT=1521STATUS ofthe LISTENERAlias LISTENERVersion TNSLSNRforLinux:Version
10.
2.
0.
2.0-Production StartDate07-MAY-201209:35:52Uptime77days4hr.36min.0sec TraceLevel offSecurity ON:Local OSAuthentication SNMPOFF ListenerParameter File/data/oracle/product/
10.
2.0/network/admin/listener.ora ListenerLog File/data/oracle/product/
10.
2.0/network/log/listener.log ListeningEndpoints Summary...DESCRIPTION=ADDRESS=PROTOCOL=tcpHOST=AS14PORT=1521Services Summary...Service CKDBhas1instances.Instance CKDB,status READY,has1handlers forthis service...Service CKDBXDBhas1instances.Instance CKDB,status READY,has1handlers forthis service...Service CKDB_XPT has1instances.Instance CKDB,status READY,has1handlers forthis service...The commandcompleted successfully“Services Summary”项表示Oracle的监听进程正在监听哪些数据库实例,输出显示中至少应该1TCKDB”这一项检查监听进程是否存在:[oracle@AS14〜]$ps-ef|grep Isn|grep-v grep oracle295410May0700:01:17/data/oracle/product/
10.
2.0/bin/tnslsnr LISTENER-inherit
3.
4.2检查系统和oracle日志文件检查相关的日志文件,包含检查操作系统的日志文件,检查Oracle日志文件,检查Oracle核心转储目录,检查Root用户和Oracle用户的email,总共四个部分
3.
4.
2.1检查操作系统日志文件#cat/var/log/messages|grep failed查看是否有与Oracle用户相关的出错信息
3.
4.
2.2检查oracle日志文件[oracle@AS14~]$cat/data/oracle/admin/CKDB/bdump/alert_CKDB.Iog|grepora-[oracle@AS14~]$cat/data/oracle/admin/CKDB/bdump/alert_CKDB.Iog|grep err[oracle@AS14~]$cat/data/oracle/admin/CKDB/bdump/alert_CKDB.Iog|grep failOracle在运行过程中,会在警告日志文件alert_SID.log中记录数据库的一些运行情况数据库的启动、关闭,启动时的非缺省参数;数据库的重做日志切换情况,记录每次切换的时间,及如果因为检查点checkpoint操作没有执行完成造成不能切换,会记录不能切换的原因;对数据库进行的某些操作,如创建或删除表空间、增加数据文件;数据库发生的错误,如表空间不够、出现坏块、数据库内部错误ORA-600等定期检查日志文件,根据日志中发现的问题及时进行处理问题处理启动参数不对检查初始化参数文件因为检查点操作或归档操作没有完成造成如果经常发生这样的情况,可以考虑增加重做日志文重做日志不能切换件组想办法提高检查点或归档操作的效率有人未经授权删除了表空间检查数据库的安全问题,是否密码太简单;如有必要,撤消某些用户的系统权限出现坏块检查是否是硬件问题如磁盘本生有坏块,如果不是,检查是那个数据库对象出现了坏块,对这个对象进行重建表空间不够增加数据文件到相应的表空间出现ORA-600根据日志文件的内容杳看相应的TRC文件,如果是Oracle的bug,要及时打上相应的补丁Listener日志$ORACLE_HOME/network/log3・
4.
2.3检查Oracle核心转储目录$ls$ORACLE_BASE/admin/CKDB/cdump/*.trc|wc-I$ls$ORACLE_BASE/admin/CKDB/udump/*.trc|wc-I~~如果上面命令的结果每天都在增长,则说明Oracle进程经常发生核心转储二这说明某些用户进程或者数据库后台进程由于无法处理的原因而异常退出频繁的核心转储特别是数据库后台进程的核心转储会导致数据库异常终止
3.
4.
2.4检查Root用户和Oracle用户的email#tail-n200/var/mail/root#tail-n200/var/mail/oracle~~查看有无与Oracle而相关的出错信息
3.
4.3检查Oracle对象状态检查相关Oracle对象的状态,包含检查Oracle控制文件状态,检查Oracle在线日志状态,检查Oracle表空间的状态,检查Oracle所有数据文件状态,检查Oracle所有表、索引、存储过程、触发器、包等对象的状态,检查Oracle所有回滚段的状态,总共六个部分
3.
4.
3.1检查Oracle控制文件状态SQL selectstatus,name fromv$controlfile;STATUS NAME/data/oradata/CKDB/controlOl.ctl/data/oradata/CKDB/control
02.ctl/data/oradata/CKDB/control
03.ctl输出结果应该有3条以上(包含3条)的记录,“STATUS”应该为空状表为空表示控制文件状态正常3・
4.
3.2检查Oracle在线日志状态SQL selectgroup#,status,type,member fromv$logfile;GROUP#STATUS TYPEMEMBER3ONLINE/data/oradata/CKDB/redo
03.log2ONLINE/data/oradata/CKDB/redo
02.log1ONLINE/data/oradata/CKDB/redo
01.log4ONLINE/data/oradata/CKDB/redo
04.log5ONLINE/data/oradata/CKDB/redo
05.log6ONLINE/data/oradata/CKDB/redo
06.log6rows selected输出结果应该有3条以上(包含3条)记录,“STATUS”应该为非“INVALID,非“DELETED”注“STATUS”显示为空表示正常3・
4.
3.3检查Oracle表空间的状态SQL select tablespace_name,status from dba_tablespaces;TABLESPACE_NAME STATUSSYSTEM ONLINEUNDOTBS1ONLINE SYSAUXONLINE TEMPONLINE USERSONLINE SJ1ONLINE ADMJNDEXONLINE HOME_DATA ONLINEHOMEJNDEX ONLINEPHOTO_DATA ONLINEPHOTOJNDEX ONLINEO O0O O0o输出结果中STATUS应该都为ONLINE3・
4.
3.4检查Oracle所有数据文件状态SQL selectname,status fromv$datafile;NAME STATUS/data/oradata/CKDB/systemOl.dbf SYSTEM/data/oradata/CKDB/undotbsOl.dbf ONLINE/data/oradata/CKDB/sysauxOl.dbf ONLINE/data/oradata/CKDB/usersOl.dbf ONLINE/data/oradata/CKDB/sj.dbf ONLINE/data/oradata/CKDB/HOME_DATAl.dbf ONLINE/data/oradata/CKDB/HOME_INDEXl.dbf ONLINE/data/oradata/CKDB/PHOTO_DATAl.dbf ONLINE/data/oradata/CKDB/PHOTO_INDEXl.dbf ONLINE/data/oradata/CKDB/BLOG_DATAl.dbf ONLINE/data/oradata/CKDB/BLOG_INDEXl.dbf ONLINE/data/oradata/CKDB/AUDIO_DATAl.dbf ONLINE/data/oradata/CKDB/AUDIO_INDEXl.dbf ONLINE/data/oradata/CKDB/VIDEO_DATAl.dbf ONLINE/data/oradata/CKDB/VIDEOJNDEXl.dbf ONLINE/data/oradata/CKDB/SYS_DATAl.dbf ONLINE/data/oradata/CKDB/SYS_INDEXl.dbf ONLINE/data/oradata/CKDB/ADM_DATAl.dbf ONLINE/data/oradata/CKDB/ADMJNDEXl.dbf ONLINE/data/oradata/CKDB/perfstat.dbf ONLINE输出结果中“STATUS”应该都为“ONLINE或者:SQL selectfile_name,status from dba_data_files;FILE_NAME STATUS/data/oradata/CKDB/usersOl.dbf AVAILABLE/data/oradata/CKDB/sysauxOl.dbf AVAILABLE/data/oradata/CKDB/undotbsOl.dbf AVAILABLE/data/oradata/CKDB/systemOl.dbf AVAILABLE/data/oradata/CKDB/sj.dbf AVAILABLE/data/oradata/CKDB/perfstat.dbf AVAILABLE/data/oradata/CKDB/HOME_DATAl.dbf AVAILABLE/data/oradata/CKDB/HOME_INDEXl.dbf AVAILABLE/data/oradata/CKDB/PHOTO_DATAl.dbf AVAILABLE输出结果中“STATUS”应该都为“AVAILABLE”3・
4.
3.5检查无效对象sqlselect owner,object_name,object_type from dba_objects wherestatus!=VALID andowner!=SYS andowner!=SYSTEM;no rows selected―如果有记录返回,则说明存在无效对象若这些对象与应用相关,那么葡妻重新编译生成这个对象,或者SELECT owner,object_name,object_type FROMdba_objects WHERE status=INVALID,;
3.436检查所有回滚段状态SQL selectsegment_name,status fromdba_rollback_segs;SEGMENT_NAME STATUSSYSTEM ONLINE
233.
233.
4.
233.
4.
243.
4.
243.
253.
4.
253.
4.
263.
4.
273.
271.
1.
271.
271.
283.
283.
293.
293.
303.
4.
303.
4.
313.
4.
323.
4.
323.
4.
333.
4.
333.
4.
343.
343.
4.
353.
4.
353.
363.
4.
363.
4.
363.
4.
373.
4.
373.
4.
384.
384.
384.
394.
394.
405.
405.
3.
4.4检查Oracle相关资源的使用情况检查Oracle相关资源的使用情况,包含检查Oracle初始化文件中相关的参数值,检查数据库连接情况,检查系统磁盘空间,检查Oracle各个表空间使用情况,检查一些扩展异常的对象,检查system表空间内的内容,检查对象的下一扩展与表空间的最大扩展值,总共七个部分
3.
4.
4.1检查Oracle初始化文件中相关参数值SQL selectresource_name,max_utilization,initial_allocation.limit_value fromv$resource_limit;RESOURCE_NAME MAX_UTILIZATION INITIAL_ALLOCAT LIMIT_VALUE processes162500500sessions168555555enqueue_locks13669306930enqueue_resources1112660UNLIMITED ges_procs000ges_ress00UNLIMITED gesjocks00UNLIMITED ges_cache_ress00UNLIMITED ges_reg_msgs00UNLIMITED ges_big_msgs00UNLIMITED ges_rsv_msgs000gcs_resources000gcs_shadows000dmljocks762440UNLIMITED temporary_table Jocks26UNLIMITED UNLIMITEDtransactions13610UNLIMITED branches0610UNLIMITED cmtcallbk3610UNLIMITED sort_segment_locks5UNLIMITED UNLIMITEDmax_rollback_segments1161065535RESOURCE_NAME MAX_UTILIZATION INITIAL_ALLOCAT LIMIT_VALUE max_shared_servers1UNLIMITED UNLIMITEDparallel_max_servers1680360022rows selected若L1MIT_VALU-MAX_UTILIZATION=5,则表明与RESOURCE.NAME相关的Oracle初始化参数需要调整可以通过修改Oracle初始化参数文件$ORACLE_BASE/admin/CKDB/pfile/inilORCL.ora来修改
3.
4.
4.2检查数据库连接情况查看当前会话连接数,是否属于正常范围select sid,serial#,username,program,machine,status fromv$session;SID SERIAL#USERNAME PROGRAMMACHINE STATUS13oracle@xzl5saledb PMONxzlSsaledb ACTIVE23oracle@xzl5saledb DBW0xzlSsaledb ACTIVE33oracle®xzl5saledb DBW1xzlSsaledb ACTIVE43oracle@xzl5saledb LGWRxzlSsaledb ACTIVE53oracle@xzl5saledb CKPTxzlSsaledb ACTIVE63oracle@xzl5saledb SMONxzlSsaledb ACTIVE73oracle@xzl5saledb RECOxzlSsaledb ACTIVE81oracle@xzl5saledb CJQOxzlSsaledb ACTIVE93oracle@xzl5saledb ARCOxzlSsaledb ACTIVE103oracle@xzl5saledb ARC1xzlSsaledb ACTIVE1111319ZK AccPrtlnv_svr@xzl5tuxedo2TNS V1-V3xzl5tuxedo2INACTIVE1348876ZG upload@xzl5saleap TNSV1-V3xzlSsaleap INACTIVE1720405ZK AccCreateRpt@xzl5tuxedol TNSV1-V3xzlStuxedol INACTIVE2012895ZK OweScanSvr@xzl5billdb TNSV1-V3xzl5billdb INACTIVE■其中SID会话session的ID号;■SERIAL#会话的序列号,和SID一起用来唯一标识一个会话;■USERNAM建立该会话的用户名;E■这个会话是用什么工具连接到数据库的;PROGRA M■STATUS当前这个会话的状态,ACTIVE表示会话正在执行某些任务,INACTIVE表示当前会话没有执行任何操作;如果建立了过多的连接,会消耗数据库的资源,同时,对一些“挂死”的连接可能需要手工进行清理如果DBA要手工断开某个会话,则执行(一般不建议使用这种方式去杀掉数据库的连接,这样有时候session不会断开容易引起死连接建议通过sid查到操作系统的spid,使用ps-eflgrep spidno的方式确认spid不是ORACLE的后台进程使用操作系统的kill-9命令杀掉连接)alter systemkill sessionSID,SERIAL#;注意上例中SID为1到10(USERNAME列为空)的会话,是Oracle的后台进程,不要对这些会话进行任何操作
1.
1.
1.3检查系统磁盘空间如果文件系统的剩余空间过小或增长较快,需对其进行确认并删除不用的文件以释放空间[oracle@AS14~]$df-h FilesystemSize UsedAvail Use%Mounted on/dev/sda
59.7G
3.9G
5.4G42%//dev/sdal479M16M438M4%/boot/dev/sda249G19G28G41%/data none1014M01014M0%/dev/shm
1.
1.
1.4检查表空间使用情况SQL selectf.tablespace_name,a.total,f.free,roundf.free/a.total*100%Free select tablespace_name,sumbytes/1024*1024total fromdba_data_files groupby tablespace_name a,select tablespace_name,roundsumbytes/1024*1024free fromdba_free_space groupby tablespace_namefWHERE a.tablespace_name=f.tablespace_name+order by%Free;TABLESPACE_NAME TOTALFREE%Free OPERATION_DATA180054730WAPWEB_DATA103636OPERATIONJNDEX50018637SYSTEM102451550SYSAUX102453452SALE8_TEMP1006262SJ13487050035671PERFSTAT500HOME_DATA1007777SYSJNDEX100100100VIDEOJNDEX100100100VIDEO_DATA100100100BLOG_DATA10010010039rowsselected如果空闲率%Free小于10%以上(包含10%),则注意要增加数据文件来扩展表空间而不要是用数据文件的自动扩展功能请不要对表空间增加过多的数据文件,增加数据文件的原则是每个数据文件大小为2G或者4G,自动扩展的最大限制在8Go
1.
1.
1.5检查一些扩展异常的对象sqlselect Segment_Name,Segment_Type,TableSpace_Name,Extents/Max_extents*100Percent Fromsys.DBA_Segments WhereMax_Extents!=0and Extents/Max_extents*100=95order ByPercent;no rowsselected如果有记录返回,则这些对象的扩展已经快达到它定义时的最大扩展值对于这些对象要修改它的存储结构参数
1.
1.
1.6检查system表空间内的内容select distinctownerfromdba_tables wheretablespace_name=SYSTEM andowner!=SYS andowner!=SYSTEM unionselect distinctownerfromdba_indexes wheretablespace_name=SYSTEM andowner!=SYS andowner!=SYSTEM;no rowsselected如果记录返回,则表明system表空间内存在一些非system和sys用户的对象应该进一步检查这些对象是否与我们应用相关如果相关则把这些对象移到非System表空间,同时应该检查这些对象属主的缺省表空间值
1.
1.
1.7检查对象的下一扩展与表空间的最大扩展值sqlselect a.table_name,a.next_extent,a.tablespace_name fromall_tables a,select tablespace_name,maxbytes asbig_chunk fromdba_free_space groupby tablespace-namef wheref.tablespace_name=a.tablespace_name anda.next_extentf.big_chunk unionselect a.index_name,a.next_extent,a.tablespace_name fromalljndexes a,selecttablespace_name,maxbytes asbig_chunk fromdba_free_space groupby tablespace_namef wheref.tablespace_name=a.tablespace_name anda.next_extentf.big_chunk;no rowsselected—如果有记录返回,则表明这些对象的下一个扩展大于该对象所属表空间的同大扩展值,需调整相应表空间的存储参数
3.
4.5检查数据库安全性检查Oracle数据库的安全性,包含检查系统安全信息,定期修改密码,总共两个部分
3.
4.
5.1检查系统安全日志信息系统安全日志文件的目录在/var/log下,主要检查登录成功或失败的用户日志信息检查登录成功的日志[root@rac2〜]#grep-i accepted/var/log/secure Jan808:44:43rac2sshd
[29559]:Accepted passwordfor rootfrom::ffff:
10.
10.
10.6port1119ssh
2.......检查登录失败的日志[root@rac2〜]#grep-i inval/var/log/secure grep-i failed/var/log/secure Jan910:30:44rac2sshd
[3071]:Invalid user ydbuser from::ffff:
192.
168.
3.5Jan910:30:56rac2sshd[3071:Failed passwordfor invaliduser ydbuserfrom::ffff:
192.
168.
3.5port36005ssh2Jan910:30:56rac2sshd
[3071]:Failed passwordfor invaliduserydbuserfrom::ffff:
192.
168.
3.5port36005ssh2Jan1022:44:38rac2sshd
[21611]:Failed passwordfor rootfrom::ffff:
10.
10.
10.6port1723ssh2在出现的日志信息中没有错误Invalid、refused提示,如果没有Invalid、refused视为系统正常,出现错误提示,应作出系统告警通知3・
4.
5.2检查用户修改密码在数据库系统上往往存在很多的用户,如第三方数据库监控系统,初始安装数据库时的演示用户,管理员用户等等,这些用户的密码往往是写定的,被很多人知道,会被别有用心的人利用来攻击系统甚至进行修改数据需要修改密码的用户包括■数据库管理员用户SYS,SYSTEM;其他用户■登陆系统后,提示符下输入cat/etc/passwd,在列出来的用户中查看是否存在已经不再使用的或是陌生的帐号若存在,则记录为异常修改密码方法Sqlalter userUSER_NAME identifiedby PASSWORD;
3.
4.6其他检查检查当前crontab任务是否正常,检查Oracle Job是否有失败等共六个部分
3.
4.
6.1Oracle Job是否有失败Sqlselect job,what,last_date,next_date,failures,broken fromdbajobs Whereschema_user=CAIKE;如有问题建议重建job,如exec sys.dbmsjob.removel;commit;exec sys.dbms Job.isubmit1;REFRESH_ALL_SNAPSHOT;,S YSDATE+l/1440;SYSDAT E+4/1440;commit;
3.
4.
6.2监控数据量的增长情况SQL select2A.tablespace_name,l-A.total/B.total*100used_percent3from selecttablespace_name,sumbytes total4fromdba_free_space groupby tablespace_name A,5selecttablespace_name,sumbytes total6fromdba_data_files groupby tablespace_name B7where A.tablespace_name=B.tablespace_name;TABLESPACE_NAME USED_PERCENT
1.
50.375HOMEJNDEX BLOG_DATA
0.25VIDEO_DATA VIDEOJNDEX
0.25SYS.DATA SYSJNDEX
9.5CURRENCYJNDEX UNDOTBS
10.4375SYSAUX
132.
305555555547.875976562根据本周每天的检查情况找到空间扩展很快的数据库对象,并采取相应的措施■删除历史数据移动规定数据库中至少保留6个月的历史数据,所以以前的历史数据可以考虑备份然后进行清除以便释放其所占的资源空间■扩表空间alter tablespacetablespace_name adddatafile filesize sizeautoextend off;一星总至数据扇基构发星变化时;如增加了表空间,施川亍数据受件或鎏做.日志文件这些操作,都会造成Oracle数据库控制文件的变化,DBA应及进行控制文件的备份,备份方法是执行SQL语句alter databasebackup controlfileto/home/backup/control.bak;或,alter databasebackup controlfileto trace;这样,会在USER_DUMP_DEST(初始化参数文件中指定)目录下生成创建控制坟件的SQL命令
3.
4.
6.3检查失效的索引Sqlselect index_name,table_name,tablespace_name,status Fromdbajndexes Whereowner=CTAIS2And statusoVALID;注分区表上的索引status为N/A是正常的,如有失效索引则对该索引做.rebuild,如Sqlalter indexINDEX_NAM rebuildtablespace ETABLESPACE.NAME;3・
4.
6.4检查不起作用的约束SELECT owner,constraint_name,table_name,constraint_type,status FROMdba_constraints WHERNtatiB三DISABLE司id constraintJype^T*;*如有失效约束则启用,如Sqlalter TableTABLE.NAME EnableConstraints CONSTRAINT.NAME;
3.
4.
6.5检查无效的trigger SELECTowner,trigger name,table name,status FROMdba trigRersWHEREstatus=DISABLED;如有失效触发器则启用,如:Sqlalter TriggerTRIGGER_NAME Enable;4项目实施及管理
4.1项目实施方案
4.
1.1项目实施策略项目的实施成功与否主要表现为“两个机制、一个测试“顺畅沟通机制和技术转移机制、模拟测试■顺畅沟通机制建立和用户方的良好顺畅的协调机制;■技术转移机制系统在移交后,日常的管理工作有比较大的专业性,成功的技术转移是以后系统良好运作的前提和保证建议用户方的技术牵头人和系统管理员对项目的全程深入参与■模拟测试通过在模拟环境完成系统调试后并在真实环境完成试运行测试因而在本次Oralce日常运行维护服务的过程中,我们xxx科技也将按照软件项目实施的策略来进行管理,从而保证整个项目的维护就如同开发过程一样严格管理
4.
1.2项目实施计划ORACLE产品日常运行维护年度服务项目是一个长期的优化维护项目,本项目XXX科技根据多年的开发维护经验可分为两个阶段第一个阶段为优化实施阶段,包括各个应用系统的环境情况调查,应用系统的统计登记、数据库系统的优化等第二个阶段为运维阶段,主要包括相关应用的培训,数据库管理培训、数据库备份恢复的培训以及后期系统运维、检查等保护措施,定期对全厂数据库及系统进行巡检,巡检内容包括系统日志、网络状况、系统空间状况、存储设备状态、系统性能、产品参数与配置、数据库各种文件的状态与配置、数据库安全审计、数据对象配置的合理性、实例的运行效率、SQL代码性能调优等
4.
1.3项目交付文档
4.
1.
3.1交付要求XXX科技提供的资料将使用国家法定单位制即国际单位制,语言为中文提供的纸介质文件时需同时提供Office电子版文件资料的组织结构清晰、逻辑性强资料内容正确、准确、一致、清晰完整,满足项目要求
4.
1.
3.2提交文件资料文档的内容至少包括系统的维护手册、数据库定期巡检记录、数据库日常运维手册、文档介质包括■系统信息表■数据库日常运维手册■数据库定期巡检记录表■应用系统巡检记录■其他相关的技术资料
5.
405.
415.
415.
416.
426.
426.
446.
5.
1.1售后服务XXX科技设有专门的技术支持中心,为客户提供快捷周到的服务技术支持中心有完善的售后服务体系,包括电话支持、电子邮件、远程网络支持、现场响应、紧急恢复等可快速响应各用户的服务请求,随时为客户提供优质的技术服务
5.
1.2电话支持当系统发生问题时,用户可以从XXX科技客服专线得到及时有效的24小时电话支持客户服务人员做好客户服务需求的记录,并向用户明确服务需求的解决方式、进程和最终的解决办法xxx科技将提供终身7x24小时热线电话支持提供远程服务器接入、邮件和电话服务支持
5.
1.3现场服务如果用户的问题不能通过电话解决,客户服务部会立刻派经验丰富的工程师到现场为用户解决问题,客户服务人员对解决的过程进行记录,并向用户提供解决问题的报告.包括问题原因、解决方法、解决问题的方式和进程,以及建议用户对系统进行正常使用的指导和培训.问题解决后需要用户进行确认
5.
1.4电子邮件支持用户可以通过邮件地址向客户服务人员发送电子邮件获得支持对于用户通过电子邮件反馈的信息,客户服务人员将在信息发出的30分钟内给予回复,并告知用户问题的解决方法、方式和具体操作流程
5.
1.5紧急故障处理当系统出现紧急情况时,无论是正常工作时间或非工作时间,我公司在确认后立即派工程师进行电话支持和远程支持,同时派工程师赴现场提供紧急技术支持如Oracle系统不能正常工作,发生严重影响正常生产经营管理的紧急故隙,要求10分钟内通过电话、远程控制工具远程响应,指导客户方工程师操作,在1小时内提交解决方案,2小时内派出技术专家到客户现场,并以最快的速度解决系统故障
5.
1.6ORACLE定期巡检服务(24次/年)根据招标文件的技术要求,XXX科技将提供为期一年的Oracle运维技术服务,在此xxx科技郑重承诺,每月2次对xxx的数据库以及要求的MIS数据库和门户平台进行健康检查并出具巡检报告,发现并预防可能产生的问题;巡检完成后,于次月的5日前提交上月度的巡检报告巡检内容包括系统日志、网络状况、系统空间状况、存储设备状态、系统性能、产品参数与配置、数据库各种文件的状态与配置、数据库安全审计、数据对象配置的合理性、实例的运行效率、SQL代码性能调优等6培训方案良好的培训是项目成功进行的必要条件XXX科技建立了完善的培训制度,有专业的培训教师提供Oracle数据库日常使用管理和维护培训,针对特定开发完成的系统,xxx科技进行必要的现场培训和试运行帮助支持,保证系统的顺利实施如项目需要,用户方相关技术人员在项目开始时可与XXX科技的项目组同期进入,XXX科技负责培训用户方技术人员,并在项目实施的过程中进行“实战”培训,用户方相关技术人员也可以共同进行项目的实施,例如权限配置、数据库空间的管理、数据迁移工作等当系统建设完毕后,可以针对具体的应用给普通使用者提供日常操作的培训
6.
1.1培训|方式XXX科技为客户提供现场培训和定制培训两种技术培训方式用户可根据自身要求或项目需求选择任意一种培训方式
1、现场培训可以根据客户需求,对客户实施现场培训,培训时间、地点、课时、课程内容和目的、培训人数等由双方协商制定
2、定制培训提供定制培训服务,根据项目的需要及客户的要求,对客户培训产品和系统,包括第三方产品的培训培训时间、地点、课时、课程内容和目的、培训人数等由双方协商制定
6.
1.2教师、教材使用及授课语言为了搞好培训工作,XXX科技将选派具有多年实施及开发经验的工程师承担培训的授课任务,教师将使用中文进行授课培训教材将使用针对该项目的专用教材,教材内容丰富并通俗易懂,图文并茂,语言表述形式为中文,加深对教材各知识点的理解.,教材可长期保存,并可作为技术资料随时查阅♦培训教材培训教材的准备是培训工作的前提,培训教材的好坏直接影响培训的质量XXX科技将培训教材细化分为培训讲义、培训教程、系统操作手册和系统技术手册对于每一种培训教材又根据不同的应用侧重点细分为软件系统安装维护、软件系统功能介绍为操作人员准备上机操作的实例数据,供操作人员上机操作使用
1、培训讲义采用幻灯片PPT的模式制作,主要用于授课时的讲解,将从软件的原理介绍、安装维护和功能介绍三方面分别阐述授课内容
2、培训教程采用Word文档的模式制作,主要详细描述数据库的设计原则和基本设置通过培训教程,系统操作人员可以掌握系统数据库的设计原则和基本设置,有效地指导系统操作人员使用系统
3、数据库手册采用Word文档的模式制作,主要针对各级系统管理员数据库手册主要详细描述系统数据库的维护功能,以及后台数据库服务器和应用服务器的日常维护工作通过数据库手册可以有效地指导各级系统管理员的日常维护工作
4、培训实际案例以系统的实际业务为例,尽可能涵盖数据库管理的各项操作,同时准备相应的外部环境供参加培训的业务人员实际操作,理论与实践相结合加深对系统的认识
6.
1.3培训计划Oracle产品的管理培训,包括数据库体系结构、Oracle门户集成产品知识、日常管理、备份与恢复、性能优化等课程1课程名Oracle数据库管理知识培训时间3天培训内容数据库体系结构、Oracle门户集成产品知识、H常管理、备份与恢复、性能优化等课程2课程名口常系统运维紧急处理培训时间2天培训内容培训日常运维过程中数据库简单问题的处理知识及技巧等课程3课程名Oracle门户集成产品知识及日常管理培训时间:1天培训内容培训Oracle门户集成相关产品的知识以及日常的管理等
6.
1.4培训分工培训阶段的最后工作就是使用编制的培训教材根据培训计划执行培训,在培训的执行阶段,后勤支持工作是非常重要的,它们包括♦培训场地♦培训教员♦足够的培训计算机系统♦培训教材的制作和打印♦其它支持项目(如投影仪、幻灯等)这一阶段的最终提交文档是记录了培训工作开展情况和最终培训执行情况的《培训进展状态报告》1项目背景及目标
1.1项目背景XXX信息化建设经过多年的发展和完善,已经建立成熟的网络环境及生产经营管理的各类应用系统,目前全厂在线运行的PC近600台,近年来建设的企业资产管理、基建MIS管理系统、全面预算管理系统、生产综合管理系统技术监督管理系统等若干应用信息系统多数是基于Oracle数据库系统的应用这些Oracle数据库产品的标准服务都已经过了服务期而各系统随着数据量的逐年增加,陆续出现了性能问题,有必要进行数据库系统的升级及性能优化,以确保应用系统的正常运行,为全厂员工提供更好的信息服务
1.2项目目标■尽早发现性能瓶颈,及时调整,保障数据库稳定高效工作;对各个系统数据库进行补丁升级服务,安装补丁前需要对补丁的可行性及风险即你想那个分析,并制定升级计划和应急回退计划同时要做好系统备份准备及详细的测试工作,确保系统的稳定性、安全性,保障系统业务数据的安全;■数据库架构的合理化;■提升应用系统性能,完成各系统数据库的性能调优工作,包括外部资源调优、行的重新安排调优、SQL性能调优、表格和索引存储参数设置调优等■各业务持续性得到有效的保证2需求分析通过对XXX技术要求进行详实的分析以及XXX科技对XXX信息系统建设的了解,xxxOracle产品日常运行维护项目主要从如下几个方面进行:
1、由于xxx有些系统软件建设的较早,目前存在不同版本的数据库共存的现象,包括Oralce
8、Oracle9l以及OraclelOg等而Oracle)版本之前的数据库SQL编程语句还不是业界通用的标准化的语句,它与后面版本的SQL编程语句有很大的差别,所以在这方面的性能优化需要做好充分备份的准备
2、正是由于这些系统建设的较早,基于当时的实际情况,应用系统或数据库都还存在一些不足,针对这些情况软件开发商都开发出相应的补丁提供给用户进行升级以防范风险所以在对各个系统数据库进行补丁升级服务之前,需要对补丁的可行性、安全性及风险进行充分的测试和分析并制定相关的应急预案及数据库升级计划和应急回退计划,同时还需要做好系统备份准备和详细的测试工作,以确保系统的稳定性、安全性,从而保证系统业务数据的安全;
3、如上所说,这些系统建设的较为长久,由于长时间的运行各个系统存在一些冗余,由于冗余的存在使得这些系统数据库需要进行性能的优化,包括外部资源优化、行的重新安排以及SQL性能优化、表格和索引存储参数等需要重新进行设置优化
4、对于当前的一些应用如企业资产管理系统(EAM)、基建MIS管理系统、全面预算管理系统、生产综合管理系统、企业门户(EIP/EAI)系统、综合指标统计分析系统、燃料管理信息系统、标准化管理信息系统、档案管理信息系统、安健环管理系统、技术监督管理子系统、IT运维服务系统、SIS系统接口数据库、生产图纸管理系统等等所有这些系统都需要重新进行整理并形成一个完善的文档资料
5、由于这些数据库系统承载着xxx非常重要的业务系统数据,所以在日常维护中需要非常仔细,每周、每月、每季都需要有相应的巡检记录,需要详细记载以下一些内容■监控数据库对象的空间扩展情况■监控数据量的增长情况■系统健康检查,检查以下内容■数据库对象有效性检查■查看是否有危害到安全策略的问题■查看alert、Sqlnet等日志并归档报错日志■分析表和索引■查看对数据库会产生危害的增长速度■检查表空间碎片■数据库性能调整■预测数据库将来的性能■调整和维护工作■后续空间3项目总体方案建立在Oracle数据库上的关键业务系统,是当今企业的核心应用如何改善其性能和可用性,是包括系统设计、维护和管理人员的最大挑战为了更好地维护系统和数据库,必须随时了解系统和数据库的运行状况但由于数据库维护具有一定的复杂性,增加了维护工作的难度所以数据库维护需要借助一些相关的工具,优秀的数据库管理工具,可以大大简化生产环境下的应用维护和管理,提高IT人员的工作效率数据库管理人员借助相应的工具可以主动、迅速、方便的监控系统的运行基于我公司多年在Oracle数据库的使用及研究经验上,对于Oracle数据库的管理,主要包括三方面的内容■系统诊断了解当前运行的Oracle的状态,发现数据库性能瓶颈;■空间管理即数据库存储结构的调优,包括定期检查数据库的存储结构,发现Oracle数据库存储中的主要问题(如数据库碎片),进行碎片重组和数据分布以及容量规划等;■调优SQL,分析对系统性能影响比较大的SQL语句,调整SQL语句的执行效率使SQL存取尽可能少的数据块下面我们将从以下这几个方面详细阐述
3.1数据库性能优化Oracle性能管理既是一种艺术,也是一种科学从实用角度讲,它可以分为两种类型,主动式和被动式性能管理主动式性能管理涉及到特定系统实施初期的设计和开发,包括硬件选择、性能及容量规划,海量存储系统的选择,1-0子系统配置及优化,以及如何对不同组件进行定制,以满足Oracle数据库和应用系统的复杂要求被动式性能管理涉及到现有环境中不同组件的性能评估、故障排除和Oracle环境的优化本文旨在探讨如何进行被动式性能调优,以便为Oracle性能调优提供必要的指导,从而避免仅仅通过反复尝试的方式进行性能调优,提高Oracle性能管理的效率所以ORACLE数据库性能恶化表现基本上都是用户响应时间比较长,须要用户长时间的等待获得满意的用户响应时间有两个途径一是减少系统服务时间,即提高数据库的吞吐量;二是减少用户等待时间,即减少用户访问同一数据库资源的冲突率对于以上的两个问题,通常我们采用以下几个方面来进行改善■调整服务器内存分配例如,可以根据数据库运行状况调整数据库系统全局区(SGA区)的数据缓冲区、日志缓冲区和共享池的大小;还可以调整程序全局区(PGA区)的大小■调整硬盘I/O问题,达到I/O负载均衡■调整运用程序结构设计■优化调整操作系统参数和使用资源管理器■SQL优化、诊断latch竞争、Rollback(undo)Segment优化、提升block的效率等等
3.
1.1检查Oracle数据库性能检查Oracle数据库性能情况,包含检查数据库的等待事件,检查死锁及处理,检查cpu、I/O、内存性能,查看是否有僵死进程,检查行链接/迁移,定期做统计分析,检查缓冲区命中率,检查共享池命中率,检查排序区,检查日志缓冲区,总共十个部分
3.
1.
1.1检查数据库的等待事件set pages80set lines120col eventfora40select sid,event/plzp2,p3,WAIT_TIME,SECONDS_IN_WAIT fromv$session_wait whereevent not like SQL%and eventnotlikerdbms%;如果数据库长时间持续出现大量像latch free,enqueue,buffer busywaits,db filesequential read,db filescattered read等等待事件时,需要对其进行分析,可能存在问题的语句
3.
1.
1.2Disk Read最高的SQL语句的获取SQLSELECT SQL_TEXT FROM SELECT*FROM V$SQLAREA ORDERBY DISK_READS WHERE R0WNUM=5desc;
3.
1.
1.3查找前十条性能差的sql SELECT*FROM SELECTPARSING_USER_ID EXECUTIONS,SORTS,COMMAND_TYPE,DISK_READS,SQL_TEXT FROMV$SQLAREA ORDERBY DISK_READS DESCWHERE ROWNUM10;
3.
1.
1.4等待时间最多的5个系统等待事件的获取SELECT*FROMSELECT*FROMV$SYSTEM_EVENT WHEREEVENT NOTLIKE SQL%ORDERBYTOTAL_WAITS DESCWHERER0WNUM=5;
3.
1.
1.5检查运行很久的SQL COLUMNUSERNAMEFORMAT A12COLUMN OPNAMEFORMATA16COLUMN PROGRESSFORMATA8SELECT USERNAME,SID,OPNAME,ROUNDSOFAR*100/TOTALWORK,11%AS PROGRESSJIME_REMAINING,SQL_TEXT FROMV$SESSION_LONGOPS,V$SQL WHERE。