Restore database ở NOARCHIVELOG

   Giới thiệu

Khi database được đặt ở chế độ NOARCHIVELOG, mỗi khi 1 redo log group được ghi đầy, nó sẽ không được backup thành archive log.

Chế độ này có 3 nhược điểm rất lớn, đó là:

  • Nếu muốn backup, bạn phải tắt database đi và đưa về nó chế độ mount, thì mới backup được.
  • Khi bạn bị mất, dù chỉ 1 datafile, bạn vẫn cần restore lại toàn bộ database.
  • Bạn chỉ restore được database đến thời điểm thực hiện backup, hoặc hơn 1 chút, tuỳ vào độ may mắn của bạn :D.

Do những nhược điểm này, đối với những database lớn, người ta sẽ không sử dụng chế độ NOARCHIVELOG, mà phải dùng ARCHIVELOG.

   Tình huống:

Giả sử database của bạn vẫn chỉ được đặt ở chế độ NOARCHIVELOG và có backup full hàng ngày.

Một ngày nọ, bạn vui vui xoá mất 1 datafile! Hãy yên tâm,  tôi sẽ hướng dẫn các bạn cách khôi phục database ít rủi ro nhất có thể nhé.

   Các bước tiến hành

   Kiểm tra database của bạn đang ở chế độ nào

select log_mode from v$database;

no archive log

   Shutdown database và đưa lên chế độ mount

shutdown abort
startup mount

   Restore database

rman target /
restore database;

restore database

   Recover database

Sau khi restore xong, bạn hãy chạy tiếp lệnh recover database. Oracle sẽ cố gắng tìm trong redo log xem còn có thể recover được thêm ít dữ liệu nào không.

recover database;

recover database

   Open database

Và cuối cùng bạn chạy lệnh sau để open database

sqlplus / as sysdba
alter database open resetlogs;

À quên, bước cuối cùng phải là bạn nhờ đội nghiệp vụ hoặc khách hàng kiểm tra và nhập lại các dữ liệu còn thiếu bằng tay nhé.

Đọc thêm  Các mẹo nhỏ giúp tăng tốc độ Export và Import cho Oracle

Chúc các bạn thành công

Đặng Xuân Duy

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *