(完整版)大数据库维护工作手册簿
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库维护工作手册
文档编号:文档名称:编写:审核:批准: 批准日期:
目录
1概述 (3)
2数据库监控 (3)
2.1 数据库监控工作内容 (3)
2.2 数据库监控工作步骤 (3)
2.2.1 查看数据库日志 (3)
2.2.2 检查是否有失效的数据库对象 (4)
2.2.3 查看数据库剩余空间 (4)
2.2.4 重点表检查 (4)
2.2.5 查看数据库是否正常 (4)
2.2.6 死锁检查 (5)
2.2.7 监控SQL语句的执行 (5)
2.2.8 操作系统级检查 (5)
2.2.9 其他 (5)
3数据库维护 (5)
3.1 数据库维护工作内容 (5)
3.2 数据库维护工作事项 (5)
3.2.1 页面修复 (5)
3.2.2 数据库对象重建 (6)
3.2.3 碎片回收(数据重组) (6)
3.2.4 删除不用的数据 (6)
3.2.5 备份恢复 (6)
3.2.6 历史数据迁移 (6)
3.2.7 定期修改密码 (7)
3.2.8 删除掉不必要的用户 (7)
3.2.9 其他 (7)
4数据库管理常用SQL脚本 (7)
5日常维护和问题管理 (16)
5.1 目的 (16)
5.2 例行工作建议 (16)
5.3 相关填表说明 (16)
1概述
数据库的日常监控是使管理员及时了解系统异常的手段。大部分情况下,系统总是正常运行的。只有对正常情况的充分了解,才能通过对比正常情况发现异常情况。对于数据库的日常监控要有记录,文字记录或者电子文档保存。对于数据库异常进行分析,提出解决方案。
日常工作包括监控和维护两个部分。
此文档中关于数据库的运行命令示例主要针对于ORACLE数据库,但对于SYBASE数据库同样有参考价值,只要换用相对应的语句即可。
数据库监控
2数据库监控
数据库监控工作内容
制定和改进监控方案,编写监控脚本。
对于数据库进行日常监测,提交记录。
根据监测结果进行分析、预测,提交相应的系统改进建议方案。
数据库监控工作步骤
2.1.1查看数据库日志
数据库的日志上会有大量对于管理员有用的信息。ORACLE的Alert日志纪录了数据库系统所报的系统级错误信息,以及数据块失效等严重错误信息。错误信息的产生,会产生相应的跟踪文件,通过查看警告日志和跟踪文件可查找错误原因,对于发现的问题应及时解决和汇报。如:
1.表空间是否满,是否需要进行添加或者扩展。Alert文件中会显示有表块无法扩展
的提示。
2.表的块或者页面是否损坏。(往往这时alert文件中会显示ora-600的错误。)
3.数据库是否进行了异常操作。(如:drop tablespace等等)。
实用命令:
·报警日志文件(alert.log或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 dbms_system.set_sql_trace_in_session(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中,很可能是一些其他异常的应用出错后产生的死连接。