Oracle

Xử lý sự cố corrupt redo log khi database bị mất điện đột ngột

XỬ LÝ SỰ CỐ CORRUPT REDO LOG SAU KHI DATABASE BỊ MẤT ĐIỆN ĐỘT NGỘT

1. Mô tả trường hợp lỗi

Một bạn nhờ tôi trợ giúp khi không thể bật được database.

Câu chuyện như sau:

  • Hệ thống bị mất điện đột ngột dẫn đến database cũng bị tắt “bất thình lình”
  • Khi bật lại database thì chỉ có thể lên được mức MOUNT
  • Thực hiện Alter database OPEN xuất hiện lỗi
  • SQL> alter database open;
    alter database open
    *
    ERROR at line 1:
    ORA-00742: Log read detects lost write in thread 1 sequence 2 block 91086
    ORA-00312: online log 2 thread 1: ‘/u01/app/hoanganh/oradata/orcl/redo02.log’

2. Kiểm tra và phương án xử lý

  • Kiểm tra thông tin redo log đang bị cảnh báo. Phát hiện đây là Redo log ở trạng thái CURRENT (các dữ liệu thay đổi vẫn còn cần thiết cho CSDL).SQL> select group#, thread#, sequence#, status from v$log;GROUP# THREAD# SEQUENCE# STATUS
    ———- ———- ———- —————-
    1 1 1 INACTIVE
    3 1 0 UNUSED
    2 1 2 CURRENT
  • Thực hiện Recover databaseSQL> recover database until cancel;
    ORA-00279: change 1438016 generated at 04/16/2021 22:01:06 needed for thread 1
    ORA-00289: suggestion :
    /u01/app/hoanganh/product/12.2.0.1/dbhome_1/dbs/arch1_2_1070055328.dbf
    ORA-00280: change 1438016 for thread 1 is in sequence #2Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
    /u01/app/hoanganh/oradata/orcl/redo02.log  
    Log applied.
    Media recovery complete.
  • Thực hiện Open reset logsSQL> alter database open resetlogs;
    Database altered.SQL> select status from v$instance;
    STATUS
    ———-
    OPEN
  • Database đã có thể sử dụng lại

3. Một số bài học rút ra từ sự cố trên

  • Ngay sau khi Open reset logs chúng ta nên thực hiện sao lưu Cơ sở dữ liệu
  • Cần tuân thủ các nguyên tắc thiết kế an toàn cho Cơ sở dữ liệu.
  • Trường hợp sự cố mất điện trên cũng tương tự với việc bạn sử dụng lệnh Shutdown Abort. Các sự cố về I/O, corruption hoàn toàn có thể gặp phải khi chúng ta tắt đột ngột. Trong quá trình vận hành, hãy ưu tiên sử dụng lệnh Shutdown immediate.
  • Các bạn quan tâm và muốn đặt câu hỏi cho tôi thì có thể tham gia cộng đồng: Cộng đồng học CNTT qua dự án
  • Các bạn quan tâm đến kỹ thuật thuật thiết kế và phương án xử lý các sự cố Cơ sở dữ liệu trọng yếu có thể tham khảo lộ trình học DBA chuyên nghiệp do tôi trực tiếp xây dựng và hướng dẫn: Trở thành DBA chuyên nghiệp

Leave a Reply

avatar
  Subscribe  
Notify of