時間同步引起的Oracle故障

來源:互聯網
上載者:User

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;
    對這個問題的分析,還是粗心大意所導致,在修改時間前多檢查幾遍是完全可以避免的。不過話有說回來,這個問題不出現上面的知識點也不會熟悉的,不過還是要小心為妙,避免這種低級錯誤的再次發生。
    希望遇到此類問題的朋友探討指點,謝謝!

  • 1
  • 2
  • 下一頁

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.