设为首页 收藏本站
查看: 992|回复: 0

[经验分享] 时间同步引起的oracle故障

[复制链接]

尚未签到

发表于 2018-9-22 12:17:49 | 显示全部楼层 |阅读模式
  4月6日周五同步了一次服务器时间,谁知一时疏忽把4月6日写成了6月6日,等所有的机器时间同步后才发现改错了,赶紧进行了修改,登陆数据库检查发现有大量的日志切换,回滚表空间急剧增长,时间改正后这两个现象消失,观察发现进程、内存、CPU基本正常,就没有太多关注(周末休息)。
  部分oracle告警日志见下:
  Wed Jun 06 18:24:24 2012
  Thread 1 cannot allocate new log, sequence 1505
  Checkpoint not complete
  Current log# 4 seq# 1504 mem# 0: /u01/app/oracle/oradata/ytkdb/redo07.log
  Current log# 4 seq# 1504 mem# 1: /home/oracle/oralog/REDO08.LOG
  Thread 1 advanced to log sequence 1505 (LGWR switch)
  Current log# 3 seq# 1505 mem# 0: /u01/app/oracle/oradata/ytkdb/redo03.log
  Current log# 3 seq# 1505 mem# 1: /home/oracle/oralog/REDO06.LOG
  周一9日早上来检查备份情况,发现备份文件只有日常的20到30分之一,大吃一惊应该有遗漏的错误地方没有被发现,检查日志发现下面的日志部分到4月5日后就没有了,应该是oracle的自动维护任务被停用了。
  Thu Apr 05 22:00:00 2012
  Setting Resource Manager plan SCHEDULER[0x310A]:DEFAULT_MAINTENANCE_PLAN via scheduler window
  Setting Resource Manager plan DEFAULT_MAINTENANCE_PLAN via parameter
  Thu Apr 05 22:00:00 2012
  Starting background process VKRM
  Thu Apr 05 22:00:00 2012

  VKRM started with pid=19, OS>  Thu Apr 05 22:00:02 2012
  Begin automatic SQL Tuning Advisor run for special tuning task  "SYS_AUTO_SQL_TUNING_TASK"
  赶紧检查 sys.dba_jobs 试图发现有 APEX_030200、SYSMAN 用户的3个试图 NEXT_DATE 下次运行时间等于'2012-06-07 19:57:30',分别登陆到 APEX_030200、SYSMAN 下进行了时间修改,修改完后观察运行正常,也就未进行深入分析。
  第二天10日早上来检查备份情况 ,发现备份文件还是很少,日志中也没有oracle的自动维护运行记录,看来还是有问题,检查维护窗口的试图 DBA_SCHEDULER_WINDOWS 、 DBA_SCHEDULER_WINDOW_GROUPS 发现
  next_start_date 下次开始时间等于‘ 07-6月 -12 10.00.00.000000 下午 PRC’,还是时间不对,对这个时间做如下修改,用 DBMS_SCHEDULER 包中的 set_attribute 存储过程来修改:
  --重新设置窗口的运行属性:
  BEGIN
  DBMS_SCHEDULER.set_attribute(name      => 'MONDAY_WINDOW',
  attribute => 'start_date',
  value     => '12-4月 -12 10.00.00.000000 下午 PRC'
  );
  DBMS_SCHEDULER.set_attribute(name      => 'TUESDAY_WINDOW',
  attribute => 'start_date',
  value     => '12-4月 -12 10.00.00.000000 下午 PRC'
  );
  DBMS_SCHEDULER.set_attribute(name      => 'WEDNESDAY_WINDOW',
  attribute => 'start_date',
  value     => '12-4月 -12 10.00.00.000000 下午 PRC'
  );
  DBMS_SCHEDULER.set_attribute(name      => 'THURSDAY_WINDOW',
  attribute => 'start_date',
  value     => '12-4月 -12 10.00.00.000000 下午 PRC'
  );
  DBMS_SCHEDULER.set_attribute(name      => 'FRIDAY_WINDOW',
  attribute => 'start_date',
  value     => '12-4月 -12 10.00.00.000000 下午 PRC'
  );
  DBMS_SCHEDULER.set_attribute(name      => 'SATURDAY_WINDOW',
  attribute => 'start_date',
  value     => '12-4月 -12 10.00.00.000000 下午 PRC'
  );
  DBMS_SCHEDULER.set_attribute(name      => 'SUNDAY_WINDOW',
  attribute => 'start_date',
  value     => '12-4月 -12 10.00.00.000000 下午 PRC'
  );
  END;
  /
  --注:name 的值,来源于 SELECT * FROM DBA_SCHEDULER_WINDOWS; 的 window_name的值。存储过程的详细说明见包中的注释。
  修改后检查试图发现时间已经改正,晚上22点运行,结果只能等第二天看了,试图见下:
  SELECT * FROM DBA_SCHEDULER_WINDOWS t  ;
  SELECT * FROM DBA_SCHEDULER_WINDOW_GROUPS ;
  第二天再次检查备份,发现文件基本合理,日志中出现了下面的内容:
  Thu Apr 12 22:00:00 2012
  Starting background process VKRM
  Thu Apr 12 22:00:00 2012

  VKRM started with pid=42, OS>  Thu Apr 12 22:00:02 2012
  Begin automatic SQL Tuning Advisor run for special tuning task  "SYS_AUTO_SQL_TUNING_TASK"
  --注:VKRM进程 :  Virtual sKeduler for Resource Manager
  检查 select *  from dba_tables t 发现 last_analyzed 最后分析时间为‘2012-04-12 22:00:28’,问题到此基本结束,下来再观察一段时间看是否有异常。
  --补充几个相关的试图见下:
  SELECT * FROM DBA_SCHEDULER_WINDOWS t ;
  SELECT * FROM DBA_SCHEDULER_WINDOW_GROUPS;
  SELECT * FROM DBA_SCHEDULER_WINGROUP_MEMBERS;
  SELECT * FROM V$RSRC_PLAN;
  SELECT JOB_NAME, STATE FROM DBA_SCHEDULER_JOBS;
  SELECT * FROM ALL_SCHEDULER_RUNNING_JOBS;
  SELECT * FROM ALL_SCHEDULER_RUNNING_CHAINS ;
  --运行日志:
  SELECT to_char(log_date, 'DD-MON-YY HH24:MM:SS') TIMESTAMP,
  job_name, job_class, operation, status
  FROM USER_SCHEDULER_JOB_LOG t
  where t.log_date >='04-4月 -12 10.00.00.000000 下午 PRC';
  select to_char(log_date, 'DD-MON-YY HH24:MM:SS') TIMESTAMP ,
  t.owner,t.job_name,t.job_subname,t.status,t.error#
  from dba_scheduler_job_run_details t
  where log_date >= '11-4月-12 10.01.42.998766 下午 +08:00';
  --数据库自动维护任务的试图:
  select * from sys.dba_autotask_client t;
  select * from sys.dba_autotask_client_job t;
  select * from sys.dba_autotask_client_history t;
  select * from sys.dba_autotask_job_history t;
  select * from sys.dba_autotask_window_clients t;
  select * from sys.dba_autotask_window_history t;
  对这个问题的分析,还是粗心大意所导致,在修改时间前多检查几遍是完全可以避免的。不过话有说回来,这个问题不出现上面的知识点也不会熟悉的,不过还是要小心为妙,避免这种低级错误的再次发生。
  希望遇到此类问题的朋友探讨指点,谢谢!


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-599897-1-1.html 上篇帖子: ORACLE字符集完全方案 下篇帖子: 查看oracle数据库的连接情况
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表