前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >假期结束了,DBA们又要忙起来了

假期结束了,DBA们又要忙起来了

作者头像
Yunjie Ge
发布2025-02-05 15:16:24
发布2025-02-05 15:16:24
7500
代码可运行
举报
文章被收录于专栏:数据库与编程数据库与编程
运行总次数:0
代码可运行

春节长假结束了,打工人们陆续返回工作岗位了,做为DBA需要做哪些工作呢?

首先,经过春节长假,可能会有积压的告警和日志需要处理。所以第一步应该是检查监控系统的状态,确认是否有未处理的报警。例如,检查OEM或者第三方监控工具中的报警信息,看看是否有数据库宕机、表空间不足、性能问题等。同时,可能需要检查数据库的可用性,确认所有实例是否正常运行,监听器是否正常,避免假期期间有未处理的故障。

接下来,日志审查是关键。比如,查看Oracle的alert日志,是否有ORA-错误,或者其他的异常信息,比如归档日志满、内存问题等。同时,检查操作系统日志,是否有硬件或系统层面的问题,比如磁盘空间不足、内存交换过高等。

然后,性能检查。长假期间可能有批处理作业或者备份任务运行,需要检查AWR、ASH报告,分析是否存在性能瓶颈,比如高负载的SQL语句、锁争用、I/O问题等。同时,检查资源使用情况,比如CPU、内存、磁盘I/O是否正常,是否有突发的资源消耗。

备份和恢复的验证也是必须的。确认备份任务是否在假期期间成功执行,检查RMAN的日志,是否有备份失败的情况。同时,可能需要执行恢复测试,确保备份的有效性,特别是如果假期期间有重要的数据变更,确保可以恢复。

检查数据库对象的状态,比如无效的对象、分区表是否需要维护,索引是否碎片化,统计信息是否过期。可能需要重新编译无效对象,收集统计信息,重建索引等。

安全方面,审计日志的检查也是必要的,是否有未授权的访问尝试,或者异常登录行为。同时,检查用户和权限是否有不必要的变更,确保符合安全策略。

如果数据库在假期期间有变更,比如补丁应用、升级等,需要确认这些变更是否成功,是否有回滚计划,以及后续的验证工作。另外,查看维护任务,比如自动任务是否正常执行,比如统计信息收集、自动备份等。

容量管理方面,检查表空间使用情况,是否有即将达到阈值的表空间,是否需要扩展或清理。归档日志的管理也很重要,确认归档目录是否有足够的空间,避免日志满导致数据库挂起。

最后,制定后续的工作计划,包括未解决问题的处理,性能优化,备份策略的调整,以及可能的系统升级或迁移计划。同时,可能需要与团队沟通,了解假期期间是否有其他需要注意的事项。

一、系统状态检查与告警处理

1、监控系统检查

查看告警信息:

查看OEM、第三方监控工具(如Zabbix)中的未处理告警,确认是否有数据库宕机、表空间满、性能骤降等问题。

验证数据库可用性:

代码语言:javascript
代码运行次数:0
复制
SELECT instance_name, status, database_status FROM v$instance;SELECT * FROM v$database;

检查监听器状态:

代码语言:javascript
代码运行次数:0
复制
lsnrctl status

2、日志审查

Alert日志分析:

定位$ORACLE_BASE/diag/rdbms/<DB_NAME>/<INSTANCE>/trace/alert_<INSTANCE>.log,排查ORA-错误(如ORA-00257归档满、ORA-01555快照过旧等)。

操作系统日志:

检查/var/log/messages或dmesg,确认硬件/系统级异常(磁盘故障、内存不足)。

二、性能与健康检查

1、资源使用分析

实时性能:

使用top、vmstat、iostat查看CPU、内存、I/O负载。

AWR/ASH报告:

生成假期期间的报告,分析高负载SQL、锁争用(vlock)、等待事件(vsession_wait)。

代码语言:javascript
代码运行次数:0
复制
-- 生成AWR报告
@?/rdbms/admin/awrrpt.sql

2、关键指标检查

表空间使用率:

代码语言:javascript
代码运行次数:0
复制
SELECT tablespace_name, used_percent FROM dba_tablespace_usage_metrics;

归档日志状态:

代码语言:javascript
代码运行次数:0
复制
SELECT * FROM v$recovery_area_usage;

三、备份与恢复验证

1、备份完整性检查

查看RMAN日志:

查看RMAN日志($ORACLE_HOME/diag/rdbms/<DB>/<INSTANCE>/trace/),确认假期备份任务是否成功。

验证备份集:

代码语言:javascript
代码运行次数:0
复制
RMAN> LIST BACKUP SUMMARY;

2、恢复测试

随机抽取备份集进行恢复演练(如恢复至测试库),确保备份有效性。

四、数据库对象维护

1、对象状态检查

无效对象修复:

代码语言:javascript
代码运行次数:0
复制
SELECT owner, object_name, object_type FROM dba_objects WHERE status = 'INVALID';
@?/rdbms/admin/utlrp.sql  -- 重新编译

索引碎片分析:

代码语言:javascript
代码运行次数:0
复制
ANALYZE INDEX <index_name> VALIDATE STRUCTURE;
SELECT name, del_lf_rows/lf_rows AS frag_ratio FROM index_stats;

2、统计信息更新

对关键表手动收集统计信息:

代码语言:javascript
代码运行次数:0
复制
EXEC DBMS_STATS.GATHER_TABLE_STATS(ownname=>'SCHEMA', tabname=>'TABLE');

五、安全审计

检查DBA_AUDIT_TRAIL,排查异常登录或高危操作:

代码语言:javascript
代码运行次数:0
复制
SELECT username, action_name, timestamp FROM dba_audit_trail WHERE timestamp >= SYSDATE-7;

确认用户权限变更:

代码语言:javascript
代码运行次数:0
复制
SELECT * FROM dba_role_privs WHERE grantee IN (<关键用户>);

六、变更与维护任务跟进

1、补丁与升级验证

检查 OPatch 记录,确认假期是否应用补丁:

代码语言:javascript
代码运行次数:0
复制
opatch lsinventory

验证补丁后功能及性能影响。

2、自动任务检查

确认自动维护任务(如统计信息收集、备份)正常执行:

代码语言:javascript
代码运行次数:0
复制
SELECT task_name, status FROM dba_autotask_task;

七、容量规划与优化

1、表空间扩展预判

根据历史增长趋势,提前扩展表空间或清理历史数据:

代码语言:javascript
代码运行次数:0
复制
ALTER TABLESPACE <tablespace_name> ADD DATAFILE '<path>' SIZE 10G;

2、归档日志管理

清理过期归档(确保已备份):

代码语言:javascript
代码运行次数:0
复制
RMAN> DELETE ARCHIVELOG UNTIL TIME 'SYSDATE-7';

八、后续计划制定

1、问题跟踪

记录未解决问题并分配优先级(如性能瓶颈、硬件隐患)。

2、优化方案

根据AWR报告制定SQL调优计划(索引优化、SQL重写)。

3、备份策略调整

根据业务需求调整RMAN保留策略或压缩选项。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-02-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 山东Oracle用户组 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档