数据库维护工作手册_第1页
数据库维护工作手册_第2页
数据库维护工作手册_第3页
数据库维护工作手册_第4页
数据库维护工作手册_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、创作时间:二零二一年六月三十日数据库维护工作手册之欧侯瑞魂创作文档名创作时间:二零称.文档编号:编写:审核:批准:批准日期:目录1概述22数据库监控3数据库监控工作内容 3数据库监控工作步伐3检查数据库日志3检查是否有失效的数据库对象 5检查数据库剩余空间5重点表检查6检查数据库是否正常6死锁检查7监控SQL语句的执行7把持系统级检查7其他83数据库维护8创作时间:二零二一年六月三十日创作时间:二零二一年六月三十日数据库维护工作内容 8数据库维护工作事项 8页面修复8数据库对象重建8碎片回收(数据重组)9删除不用的数据9备份恢复9历史数据迁移10按期修改密码10删除失落不需要的用户 10其他1

2、14数据库管理经常使用 SQL脚本115日常维护和问题管理 22目的22例行工作建议23相关填表说明241概述数据库的日常监控是使管理员及时了解系统异常的手段.年夜部份情况下,系统总是正常运行的.只有对正常情况的充沛了解,才创作时间:二零二一年六月三十日创作时间:二零二一年六月三十日华通过比较正常情况发现异常情况.对数据库的日常监控要有记录 文字记录或者电子文档保管.对数据库异常进行分析,提出解决方案.日常工作包括监控和维护两个部份 .此文档中关于数据库的运行命令示例主要针对 ORACL嗷据库, 但对SYBAS啜据库同样有参考价值,只要换用相对应的语句即可. 数据库监控2数据库监控数据库监控工

3、作内容制定和改进监控方案,编写监控脚本.对数据库进行日常监测,提交记录.根据监测结果进行分析、预测,提交相应的系统改进建议方案.数据库监控工作步伐2.1.1检查数据库日志数据库的日志上会有年夜量对管理员有用的信息.ORACLE的Alert日志纪录了数据库系统所报的系统级毛病信息,以及数据块失效等严重毛病信息.毛病信息的发生,会发生相应的跟踪文件,通 过检查警告日志和跟踪文件可查找毛病原因,对发现的问题应及时解决和汇报.如:创作时间:二零二一年六月三十日创作时间:二零二一年六月三十日.表空间是否满,是否需要进行添加或者扩展,Alert文件中会 显示有表块无法扩展的提示.表的块或者页面是否损坏,(

4、往往这时alert文件中会显示 ora-600的毛病.).数据库是否进行了异常把持.(如:drop tablespace 等等).实用命令:报警日志文件(alert.log 或 alrt.ora )记录数据库启动,关闭和一些重要的犯错信息 ,数据库管理员 应该经常检查这个文件,并对呈现的问题作出即使的反应,可以通过以下 SQL 找到他 的路径 select value from v$parameter where upper(name) =BACKGROUND_DUMP_DEST或通过参数文件 获得其路径,或者 show parameter BACKGROUND_DUMP_DEST.后台跟踪文

5、件路径与报警文件路径一致,记载了系统后台进程犯错时写入的 信息.用户跟踪文件记载了用户进程犯错时写入的信息,一般不成能读懂,可以通过ORACLE勺TKPROF:具转化为可以读懂的格式,用户跟踪文件的 路径,你可以通过以下SQL找到他的路径 select value fromv$parameter where upper(name) =USER_DUMP_DEST, 或通过参 数文件获得其路径,或者show parameter USER_DUMP_DEST.创作时间:二零二一年六月三十日创作时间:二零二一年六月三十日可以通过设置用户跟踪或dump命令来发生用户跟踪文件,一般在调试、优化、系统分析

6、中有很年夜的作用.可在参数文件种用 SQL_TRACE=TRUE开该文件(对所有用户), 也可用 alter session set sql_trace=true翻开以后会话 ,也可用executedbms_system.set_sql_trace_in_session(sid,serial#,true)翻开指定会话.检查是否有失效的数据库对象主要关注索引,触发器,存储过程,函数等等.如:查找 user_objects 数据字典,看其中是否有状态为invalid 的对象.判 断失效原因(如:视图失效的原因有可能是由于创立视图的基表 被删除等等),找出原因可进行对象重建或修复.实用命令:Sele

7、ct object_name,object_type From user_objectsWhere object_type= INVALID;检查数据库剩余空间.剩余空间缺乏时要扩展空间,一般的,当剩余空间小于10% 时,要进行空间扩展.对ORACL散据库,通过查找TABLESPACES 相关的数据字典可以看到有用的信息.创作时间:二零二一年六月三十日创作时间:二零二一年六月三十日.检查数据快速增长的表,通过对DBASEGMEN蹴据字典的监 视可以找到,当过快增长时,协调开发人员,确定解决方案.2.1.4重点表检查.检查系统核心业务表.因为这些表健康与否与日常业务的正常运行密切相关.重点检查这

8、些表的索引是否失效,表的统计信息是否及时更 新,如:当这些表进行了年夜的数据装载或者删除把持之后 原则上需要检查所有的表,只是由于上面这些表更关键,建 议管理员给以更多的关注.重点检查数据量超越百万行的表,各地的情况可能纷歧样, 当数据超越百万行之后,如果索引失效会招致表扫描,占用 年夜量系统IO,严重影响系统性能.检查数据库是否正常包括数据库实例是否正常工作、listener是否工作正常,确保数据库系统环境正常.数据库连接是否正常、检查是否有超越正常 水平的连接数.如:平常500个,某天下午忽然到达 600个.应记录这种异常情况. 分析发生这种情况的原因,如:在低版本的 ORACLE,很可能

9、是一 些其他异常的应用犯错后发生的死连接 .创作时间:二零二一年六月三十日创作时间:二零二一年六月三十日死锁检查监控数据库运行过程中,呈现的阻塞,记录现象,记录发生阻塞 的SQL语句,执行的用户,发生时间,频率,处置(杀失落、等候自 然解锁等).ORACLE版本中的死锁会在alert 文件中发生记录,oracle 会自动解锁(其实是选择一个杀失落).对死锁的处置过程要进行记录.可以使用OEM工具或者查找相关的V喇图来确认发生阻塞的语句.监控SQL语句的执行查找效率低下的 SQL语句,联系协调开发人员,进行相关处置. 可使用ORACLEI供的AWR行,也可使用ORACLEI供的OEMT具 执行,

10、或者自行编制的脚本等等.把持系统级检查运行 vmstat,sar,topas(AIX 系统),glance(HP 系统)等命令检查 CPU内存、虚拟内存等的使用情况.运行df,du,iostat检查磁盘使用情况运行netstat 检查网络情况运行手工编制的监控脚本检查.针对把持系统的分歧,使用的命令也会有分歧,请参考相应的把持 系统文档.建议使用man命令观察相应的帮手信息.创作时间:二零二一年六月三十日创作时间:二零二一年六月三十日其他每天检查晚间按时执行的数据库信息收集作业和备份作业的日志输出,确认都已正常完成.往往不能正常完成是由于如下的原因:请确认脚本是否变更(毛病的修改造成等等),设

11、备(主机,磁盘阵列,磁带库,网络等等)是否正常,空间是否足够等等.建议每天按业务峰值情况,对数据库性能数据进行按时收集及 分析.3数据库维护数据库维护工作内容包括维护、故障诊断、毛病修复、备份恢复、历史数据迁移等 过程.数据库维护工作事项页面修复根据日常监控的结果,进行页面(或者数据库坏块)修复 ,如将 表数据导出后重建表,然后导入数据.提交修复记录.数据库对象重建根据数据库监控的结果,重建失效的对象.如:索引、存储过程、 函数、视图、触发器等等.创作时间:二零二一年六月三十日创作时间:二零二一年六月三十日实用命令:Alter index rebuild online;碎片回收(数据重组)当某

12、些数据库运行一段时间后,表会发生碎片,影响数据库的性 能.可根据日常检查的结果,运用工具或脚本对数据库空间进行重 组或回收.由于ORACL改据库自己的原因,在进行了 DELETE把持 之后也不会使HWM High Water Mark高水位线)降低,因此不会释放所占用的空间,所以建议在进行了数据迁移之后将全库进行 EXP,然后进行IMP把持,以释放占用的空间.删除不用的数据此项工作要获得开发方、设计人员、以及相关人员简直认后,方可执行.备份恢复需要按期对数据库备份进行有效性检测,按期进行数据恢复的演练把持.以防止万一的数据库事故时准备缺乏.数据库需要采纳在线的热备份,不需要关闭数据库进行,在备

13、份 的同时可以进行正常的数据库的各种把持,满足了 7*24的系统的需要.数据库的备份不能影响用户对数据库的访问 .目标需要在线热备份创作时间:二零二一年六月三十日创作时间:二零二一年六月三十日多级增量备份并行备份,恢复减小所需要备份量备份,恢复使用简单可参考如下的方案:1,每月做一个数据库的全备份(包括只读表空间)2,每星期做一次零级备份(不包括只读表空间)3.每个星期三做一次一级备份4,每天做一个二级备份5,任何表空间改成只读状态后彳一个该表空间的备份6.当需要时(如四个小时归档文件系统就要接近满了)备份归档文件.历史数据迁移按期进行历史数据迁移,减少生产数据库的压力.按期修改密码包括SYS

14、,SYSTE僻用户.删除失落不需要的用户对系统装置时的演示用户,如:hr,scott 等.建议每周按期清理和备份一周所发生的Alert日志、跟踪文件和dump 文件,分别位于 $ORACLE_BASE/admin/$ORACLE_SID/bdump, 创作时间:二零二一年六月三十日创作时间:二零二一年六月三十日$ORACLE_BASE/admin/$ORACLE_SID/udump, $ORACLE_BASE/admin/$ORACLE_SID/cdun500;.检查以后会话的UGAEselect sum(value)| bytesTotal session memoryfrom v$myst

15、at, v$statnamewhere name- session uga memory and v$mystat.statistic#=v$statname.statistic#;.检查所有MTS用户的UGAE:select sum(value)| bytesTotal session memoryfrom v$sesstat, v$statnamewhere name- session uga memory and v$sesstat.statistic#=v$statname.statistic#;.检查所有用户使用的最年夜的UGAE:select sum(value)| bytesTo

16、tal session memoryfrom v$sesstat, v$statnamewhere name= session uga memory max and v$sesstat.statistic#=v$statname.statistic#;.检查high-water mark 以下的块数select table_name, blocksfrom dba_tableswhere table_name= table_name;.检查会话的I/O :创作时间:二零二一年六月三十日创作时间:二零二一年六月三十日from v$sess_io io, v$session swhere s.au

17、dsid=USERENV( SESSIONID )and io.sid=s.sid;.检查Buffer pool的命中率selectname,1-(physical_reads/(db_block_gets+consistent_gets)“HIT_RATI。from sys.v$buffer_pool_statisticswhere db_block_gets+consistent_gets0;.检查free list 的竞争select class, count, timefrom v$waitstatwhere class= segment header;select event, to

18、tal_waitsfrom v$system_eventwhere event= buffer busy waits ;buffer busy waits 可在两种情况发生:1dirty queue已 满,2free list 竞争.检查free list竞争发生在哪个 segment上select s.segment_name,s.segment_type, s.freelists,w.wait_time,创作时间:二零二一年六月三十日创作时间:二零二一年六月三十日from dba_segments s, v$session_wait wwhere w.event= buffer busy

19、waits and w.p2=s.header_block;.检查全表扫描发生的次数select name, valuefrom v$sysstatwhere name like %table scan%;.检查年夜把持的执行情况select sid, serial#, opname,to_char(start_time, HH24:MI:Sa ) as start _t, (sofar/totalwork)*100 as percent_completefrom v$session_longops;.检查数据文件的I/Ofrom v$datafile d, v$filestat fwhere

20、 d.file#=f.file# order by ;.检查空闲块数少于 10%勺 segment(blocks 在 high-water mark 以下,empty_blocks 其上)select owner, table_name, blocks, empty_blocksfrom dba_tableswhereempty_blocks/(blocks+empty_blocks)0.1andblocks+empty_blocks!=0;创作时间:二零二一年六月三十日创作时间:二零二一年六月三十日.检查 migration 和 chaininganalyze table tab

21、le_name compute statistics;select num_rows, chain_cntfrom dba_tableswhere table_name= table_name;.检查表的统计信息analyze table table_name compute statistics;select num_rows, blocks, empty_blocks as empty, avg_space,chain_cnt, avg_row_lenfrom dba_tableswhere owner= HR andtable_name= table_name;.检查索引的统计信息ana

22、lyze index index_name validate structure;select (del_lf_rows_len/lf_rows_len)*100 as index_usagefrom index_stats;5日常维护和问题管理目的作为一名数据库管理员,数据库应用的正常稳定运行是保证我们应用系统的重要保证,而数据库的日常监控和维护工作至关重要.做好它的检创作时间:二零二一年六月三十日创作时间:二零二一年六月三十日查工作的文档管理也是数据库管理的必不成少的工作之一于我们追踪问题和对数据库的版本控制非常重要.例行工作建议每天例行工作:1,确定命据库实例处于运行状态2.检查ALER

23、T日志3,确定命据库胜利备份4,确定命据库归档到磁带5,确定有足够的资源使数据库能运行在良好状态6.抽时间阅读DBA!理手册每周例行工作:.检查是否有对象处于非正常状态.检查平安战略.检查SQL*NET日志中是否有毛病4,归档所有ALERT日志每月例行工作:.检查潜在的危害.检查是否需要性能调优及调优时机.检查I/O竞争.检查数据库碎片.制定将来的性能计划创作时间:二零二一年六月三十日创作时间:二零二一年六月三十日.进行数据库调优和维护相关填表说明日常维护检查表:是数据库管理员在平时的日常监控维护工作 后做的工作记录.只填写检查的结果.详细的问题管理记录和解决 过程就填写问题管理记录表.如果在检查过程中正常在相应栏目打 V,如果有异常状况打X,同时在后面写上相对应的问题管理记录的编号.问题

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论