当前位置:  数据库>oracle

时间同步引起的Oracle故障

    来源: 互联网  发布时间:2017-04-26

    本文导语: 4月6日周五同步了一次服务器时间,谁知一时疏忽把4月6日写成了6月6日,等所有的机器时间同步后才发现改错了,赶紧进行了修改,登陆数据库检查发现有大量的日志切换,回滚表空间急剧增长,时间改正后这两个现象消失,观...

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 id=9365
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 id=18062
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;
    对这个问题的分析,还是粗心大意所导致,在修改时间前多检查几遍是完全可以避免的。不过话有说回来,这个问题不出现上面的知识点也不会熟悉的,不过还是要小心为妙,避免这种低级错误的再次发生。
    希望遇到此类问题的朋友探讨指点,谢谢!













    
 
 

您可能感兴趣的文章:

  • python下用os.execl执行centos下的系统时间同步命令ntpdate
  • 如何让centos系统时间和另外一台window系统时间保持同步
  • Linux下用ntpdate同步时间及date显示设置时间
  • NTP时间同步
  • linux虚拟机时间与windows时间如何同步
  • 请教如何将多台linux的时间,以一台时间为标准达到同步,请高手指教
  • linux服务器之间如何实现时间同步?
  • linux 设置时间同步服务器后,时间未同步
  • 时间不能同步
  • 如何取消开机时的时间服务器同步?
  • AIX下ntp同步时间无效
  • 如何利用crond通过NTP同步系统时间
  • 同步时间服务出错 无法进入系统
  • rsync 时间戳同步的问题
  • 关于时间同步(ntp)的问题
  • 如何让REDHAT ENTE4 U4 下有效的自动调整时钟?即时间同步问题...
  • 急~ 用time()或gettimeofday()得到的系统时间不同步?
  • 局域网内两台linux ntp时间不能同步
  • 修改PHP、MySQL时区设置实现主机时间同步
  • pthread_cond_timedwait带时间的线程同步条件变量用法,请教!谢谢
  • Python语言编写电脑时间自动同步小工具
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 系统时间引起的问题!
  • 模块运行一段时间引起死机
  • php将标准字符串格式时间转换成unix时间戳_strtotime
  • linux设置时间和把时间从UTC转成本地时间的
  • Python将日期时间按照格式转换成字符串
  • Solaris 2.5.1 系统时间和文件保存时间不一致 iis7站长之家
  • Linux/CentOS下的CST和UTC时间的区别以及不一致的解决方法
  • 用户CPU时间 系统CPU时间 时钟时间 不懂
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • 用touch命令修改访问时间时,却发现连修改时间和状态时间也改了.疑惑
  • php将unix时间戳转换成字符串时间函数(date)
  • ★★怎样获得一个文件的创建时间,修改时间,和访问时间?急!在线等待...
  • Linux下gettimeofday()函数和clock()函数:精确到毫秒级的时间
  • arm2440下,系统时间和硬件时间一致,但创建文件得到的时间不一致,想过几种方法,似乎无用
  • mysql中字符串和时间互相转换的方法(自动转换及DATE_FORMAT函数)
  • 获取系统时间和修改系统时间
  • aps.net session全面介绍(生命周期,超时时间)
  • 关于内核时间与用户时间;我在线等你回复,所以你要告诉我!
  • php时间格式化函数date介绍及用法参考
  • 求助,Linux系统时间总比硬件时间慢!
  • php session 原理详解,用法介绍以及如何设置过期时间
  • UNIX的时间为什么会隔一段时间就提前一个小时
  • Solaris 2.5.1 系统时间和文件保存时间不一致


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,