Những bài học đau thương trong nghề DBA - phần 1

   Sáng thứ 7…

Chuông điện thoại bỗng réo ầm ĩ, khi tôi đang ăn dở bữa sáng.

Nhìn số điện thoại, của một ông anh bên đối tác.

DBA sense báo cho tôi biết có chuyện chẳng lành, tôi bấm nút trả lời và alo với 1 giọng chậm rãi đầy giả tạo:

– Alo, em nghe anh ơi.

– Cứu anh với em ơi, anh xoá database xong mà nó xoá luôn cả bản backup của anh. Không biết có cách nào khôi phục lại không em ơi.

– Bình tĩnh anh ơi, anh kể lại các bước anh đã làm đi

   Thế rồi câu chuyện bắt đầu…

Hàng ngày ông anh tôi vẫn export full database bằng Data Pump, coi đó là 1 bản backup.

Hôm nay vì 1 yêu cầu nào đó, ông ấy xoá database cũ đi (bằng dbca) và mang bản export hàng ngày, import lại vào 1 database khác.

Tuy nhiên, sau khi xoá xong, ông ấy mới tá hoả, cả bản export cũng bị xoá theo luôn!!

Tôi mới hỏi: Thế anh dùng câu lệnh như thế nào để export?

Rất đơn giản thôi. Nó đây:

expdp "'/ as sysdba'" dumpfile=db_full.dmp logfile=db_full.log full=y

Một câu lệnh export full database mà không có chỉ ra directory. Như vậy, Data pump sẽ lựa chọn directory mặc định là DATA_PUMP_DIR, thường nó sẽ trỏ vào thư mục /u01/app/oracle/admin/<db_name>/dpdump/ trên local disk.

Như vậy, khả năng khi dbca xoá database, nó cũng sẽ xoá tất cả các file nằm dưới /u01/app/oracle/admin/<db_name>

  Tái hiện lại trên máy test

Tôi đã thử reproduce lại case này trên máy test xem có đúng thế không.

Và kết quả đây:

Câu lệnh export:

expdp "'/ as sysdba'" dumpfile=db_full.dmp logfile=db_full.log full=y

Sau khi export:

Bản backup được lưu tại: /u01/app/oracle/admin/orcl/dpdump/

Sau đó, tôi dùng dbca để xoá database đi

Đến tận bước cuối, nó vẫn khẳng định chắc nịch là “Tao chỉ xoá những file này thôi”

dbca delete files

 

Vậy mà, sau khi xoá xong, và đây là kết quả:

ket qua sau khi delete

Nó bị xoá thật anh em ạ!

   Sau đó…

Kể từ ngày đó, tôi không thấy anh hỏi tôi thêm câu nào nữa.

Chắc là database đã được khôi phục (bằng 1 phép màu nào đó)…

Chắc anh đã được lên chức nên không vướng bận gì kỹ thuật nữa…

hoặc anh đã …

Mà thôi, tôi chắc chắn anh vẫn sống tốt (mà không cần đến cái database chết tiệt đó), và có khi không có nó, anh không còn thấy đau đớn gì nữa ấy chứ.

 

Bài học rút ra: Luôn đặt bản backup vào nơi an toàn.

Bài tiếp theo:

Đọc thêm  Những bài học đau thương trong nghề DBA – Phần 2
0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận