数据库维护工作手册
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库维护工作手册文档编号:文档名
称:
编写:审
核:
批准:批准日
期:
目录
1概述
数据库的日常监控是使管理员及时了解系统异常的手段。大部分情况下,系统总是正常运行的。只有对正常情况的充分了解,才能通过对比正常情况发现异常情况。对于数据库的日常监控要有记录,文字记录或者电子文档保存。对于数据库异常进行分析,提出解决方案。
日常工作包括监控和维护两个部分。
此文档中关于数据库的运行命令示例主要针对于ORACLE数据库,但对于SYBASE数据库同样有参考价值,只要换用相对应的语句即可。
数据库监控
2数据库监控
数据库监控工作内容
制定和改进监控方案,编写监控脚本。
对于数据库进行日常监测,提交记录。
根据监测结果进行分析、预测,提交相应的系统改进建议方案。
数据库监控工作步骤
2.1.1查看数据库日志
数据库的日志上会有大量对于管理员有用的信息。ORACLE的Alert日志纪录了数据库系统所报的系统级错误信息,以及数据块失效等严重错误信息。错误信息的产生,会产生相应的跟踪文件,通过查看警告日志和跟踪文件可查找错误原
因,对于发现的问题应及时解决和汇报。如:
1.表空间是否满,是否需要进行添加或者扩展。Alert文件中会显示有表块
无法扩展的提示。
2.表的块或者页面是否损坏。(往往这时alert文件中会显示ora-600的错
误。)
3.数据库是否进行了异常操作。(如:drop tablespace等等)。
实用命令:
·报警日志文件(或alrt
记录数据库启动,关闭和一些重要的出错信息。数据库管理员应该经常检查这个文件,并对出现的问题作出即使的反应。可以通过以下SQL 找到他的路径select value from v$parameter where upper(name) ='BACKGROUND_DUMP_DEST',或通过参数文件获得其路径,或者show parameter BACKGROUND_DUMP_DEST。
·后台跟踪文件
路径与报警文件路径一致,记载了系统后台进程出错时写入的信息。
·用户跟踪文件
记载了用户进程出错时写入的信息,一般不可能读懂,可以通过ORACLE的TKPROF工具转化为可以读懂的格式。用户跟踪文件的路径,你可以通过以下SQL 找到他的路径select value from v$parameter where upper(name) ='USER_DUMP_DEST',或通过参数文件获得其路径,或者show parameter USER_DUMP_DEST。
可以通过设置用户跟踪或dump命令来产生用户跟踪文件,一般在调试、优化、系统分析中有很大的作用。
可在参数文件种用SQL_TRACE=TRUE打开该文件(对所有用户),也可用alter session set sql_trace=true打开当前会话,也可用execute (sid,serial#,true)打开指定会话。
2.1.2检查是否有失效的数据库对象
主要关注索引,触发器,存储过程,函数等等。如:查找user_objects数据字典,看其中是否有状态为invalid的对象。判断失效原因(如:视图失效的原因有可能是由于创建视图的基表被删除等等),找出原因可进行对象重建或修复。实用命令:
Select object_name,object_type
From user_objects
Where object_type=’INVALID’;
2.1.3查看数据库剩余空间
1.剩余空间不足时要扩展空间,一般的,当剩余空间小于10%时,要进行空
间扩展。对于ORACLE数据库,通过查找TABLESPACES相关的数据字典可以看
到有用的信息。
2.检查数据快速增长的表,通过对于DBA_SEGMENTS数据字典的监视可以找到,
当过快增长时,协调开发人员,确定解决方案。
2.1.4重点表检查
1.检查系统核心业务表。
因为这些表健康与否与日常业务的正常运行密切相关。重点检查这些
表的索引是否失效,表的统计信息是否及时更新,如:当这些表进行了大
的数据装载或者删除操作之后。原则上需要检查所有的表,只是由于上面
这些表更关键,建议管理员给以更多的关注。
2.重点检查数据量超过百万行的表,各地的情况可能不一样,当数据超过百
万行之后,如果索引失效会导致表扫描,占用大量系统IO,严重影响系统性能。
2.1.5查看数据库是否正常
包括数据库实例是否正常工作、listener是否工作正常,确保数据库系统环境正常。数据库连接是否正常、检查是否有超出正常水平的连接数。
如:平常500个,某天下午忽然达到600个。应记录这种异常情况。分析产生这种情况的原因,如:在低版本的ORACLE中,很可能是一些其他异常的应用出错后产生的死连接。
2.1.6死锁检查
监控数据库运行过程中,出现的阻塞,记录现象,记录产生阻塞的SQL语句,执行的用户,发生时间,频率,处理(杀掉、等待自然解锁等)。ORACLE版本中的死锁会在alert文件中产生记录,oracle会自动解锁(其实是选择一个杀掉)。对于死锁的处理过程要进行记录。可以使用OEM工具或者查找相关的V$视图来确认产生阻塞的语句。
2.1.7监控SQL语句的执行
查找效率低下的SQL语句,联系协调开发人员,进行相关处理。可使用ORACLE
提供的AWR进行,也可使用ORACLE提供的OEM工具执行,或者自行编制的脚本等等。
2.1.8操作系统级检查
运行vmstat,sar,topas(AIX系统),glance(HP系统)等命令检查CPU、内存、虚拟内存等的使用情况。
运行df,du,iostat检查磁盘使用情况
运行netstat检查网络情况
运行手工编制的监控脚本检查。
针对于操作系统的不同,使用的命令也会有不同,请参考相应的操作系统文档。建议使用man命令察看相应的帮助信息。
2.1.9其他
每天查看晚间定时执行的数据库信息收集作业和备份作业的日志输出,确认都已正常完成。往往不能正常完成是由于如下的原因:请确认脚本是否变动(错误的修改造成等等),设备(主机,磁盘阵列,磁带库,网络等等)是否正常,空间是否足够等等。
建议每天按业务峰值情况,对数据库性能数据进行定时采集及分析。
3数据库维护
数据库维护工作内容
包括维护、故障诊断、错误修复、备份恢复、历史数据迁移等过程。