tech_memo / ORACLE / TroubleShooting


tech_memo/ORACLE

サーバ再起動時にBus error

  • 停電による、再起動後、数日してからracserver1を覗いたところ、以下のエラーで、ロクにコマンドも打てない状況。(サーバ再起動直後の状態は未確認)
    [root@racserver1 ~]# fdisk -l
    Bus error (core dumped)
    [root@racserver1 ~]# shutdown -r now
    Bus error (core dumped)
    [root@racserver1 ~]# less /var/log/messages
    Bus error (core dumped)
     
    [root@racserver1 defrag]# pwd
    /u01/oracle/dump_file/myapp/defrag
    [root@racserver1 defrag]# ls
    ls: reading directory .: Input/output error
  • 数日後、金くんに直接サーバを強制再起動してもらったところ、正常にアクセスできるようになった。
  • しかし、Diskのwriteが走り続けている
    05/22/2015 02:04:31 PM
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               0.17    0.00    0.08    3.55    0.00   96.20
    
    Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await  svctm  %util
    sdb               0.00  1016.00    0.00 1003.00     0.00     7.87    16.07    11.06   10.92   0.97  96.80
    sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
    sdc               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
    sde               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
    sdd               0.00     0.00    0.00    1.00     0.00     0.00     1.00     0.00    2.00   2.00   0.20
    dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
    dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
    dm-2              0.00     0.00    0.00 2015.00     0.00     7.87     8.00    16.36    8.07   0.48  96.90
  • kjounaldプロセスが頑張っていることから、Disk修復が行われている?
    [root@racserver1 data_pump]# iotop -o
    Total DISK READ: 0.00 B/s | Total DISK WRITE: 11.40 M/s
      TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND
     2091 be/4 root        0.00 B/s   11.52 K/s  0.00 % 99.99 % [kjournald]
     3707 rt/4 root        0.00 B/s    7.47 M/s  0.00 %  0.47 % ologgerd -m racserver2 -r -d /u01/app/11.2.0/grid/crf/db/racserver1

OracleサーバごとのDownし、再起動した後、Oracleが起動できなくなった。

  • startupを実行したときに、controlファイルとバックアップのそれとのversionに差分があり、mountできなくなった。
    SQL> startup
    ORACLE instance started.
    
    Total System Global Area 2.0310E+10 bytes
    Fixed Size                  2235256 bytes
    Variable Size            6777996424 bytes
    Database Buffers         1.3220E+10 bytes
    Redo Buffers              309329920 bytes
    ORA-00214: control file
    '/u01/oracle/app/fast_recovery_area/TESTDB/control02.ctl' version 1049228
    inconsistent with file '/u01/oracle/oradata/TESTDB/control01.ctl' version 1049215
  • 以下の手順で、復旧。
  1. Oracle shutdown
  2. 最新のcontrolファイルがどちらであるか、Timestampを比較
    [oracle@dbserver ~]$ ll /u01/oracle/app/fast_recovery_area/TESTDB/control02.ctl
    -rwxrwxr-x 1 oracle oinstall 12402688 Aug  7 16:25 /u01/oracle/app/fast_recovery_area/TESTDB/control02.ctl
    [oracle@dbserver ~]$ ll /u01/oracle/oradata/TESTDB/control01.ctl
    -rwxrwxr-x 1 oracle oinstall 12402688 Aug  7 16:25 /u01/oracle/oradata/TESTDB/control01.ctl
  3. 時刻が同じであったため、startup実行時のエラーメッセージで表示された、versionを比較し、数値の大きい方を最新と判断し、コピー
    [oracle@dbserver ~]$ cp -p /u01/oracle/oradata/TESTDB/control01.ctl . # 念のためbackUp
    [oracle@dbserver ~]$ cp -p /u01/oracle/app/fast_recovery_area/TESTDB/control02.ctl . # 念のためbackup
    [oracle@dbserver ~]$ cp -p /u01/oracle/app/fast_recovery_area/TESTDB/control02.ctl /u01/oracle/oradata/TESTDB/control01.ctl # バックアップファイルを、メインファイルにコピー
  4. startupでOracleが正常起動した