Cách vô hiệu hóa Flashback trong Oracle
Nếu bạn sử dụng Oracle trong doanh nghiệp của mình, có lẽ để theo dõi hàng tồn kho hoặc doanh số, đôi khi sẽ rất hữu ích khi đi vào quá khứ và xem cơ sở dữ liệu của bạn như trước đây. Điều này có thể là để kiểm tra khi một số thay đổi được thực hiện, để theo dõi nhu cầu theo mùa đối với các sản phẩm hoặc để khôi phục dữ liệu bị hỏng hoặc vô tình bị xóa. Bạn có thể thực hiện việc này bằng lệnh DBMS_FLASHBACK, trong đó hiển thị trạng thái cơ sở dữ liệu của bạn tại thời điểm trước đó hoặc số thay đổi hệ thống. Tuy nhiên, khi bạn đã hoàn thành công việc trong quá khứ, bạn sẽ phải tắt flashback để đưa cơ sở dữ liệu trở lại thời điểm hiện tại.
1.
Khởi chạy Oracle và kết nối với cơ sở dữ liệu trong đó bạn sẽ sử dụng DBMS_FLASHBACK, sử dụng tài khoản quản trị viên hoặc bất kỳ tài khoản nào khác với đặc quyền của EXECUTE.
2.
Chạy lệnh DBMS_FLASHBACK của bạn với cú pháp sau, chỉnh sửa ngày và giờ nếu cần:
EXECUTE DBMS_FLASHBACK.ENABLE_AT_TIME (TO_TIMESTAMP ('28 -11-2012 18:35:00 ', ' DD-MM-YYYY HH24: MI: SS '));
3.
Hoàn thành tất cả các hoạt động bạn cần để chạy tại thời điểm này.
4.
Nhập và chạy lệnh sau để tắt DBMS_FLASHBACK:
DBMS_FLASHBACK.DISABLE;
Sau khi bạn thực hiện lệnh này, cơ sở dữ liệu sẽ trở về thời điểm hiện tại.
Lời khuyên
- Lệnh DBMS_FLASHBACK.ENABLE không thể được lồng bên trong một cặp lệnh ENABLE / DISABLE khác. Nếu bạn cần thực hiện việc này trong một truy vấn phức tạp hơn, trước tiên bạn sẽ phải gọi DBMS_FLASHBACK.DISABLE, chạy chuỗi lệnh tiếp theo của bạn và sau đó bật lại FLASHBACK theo thời gian đồng hồ ban đầu hoặc số thay đổi hệ thống.
- Trạng thái hồi tưởng không được lưu giữa các phiên, do đó bạn cũng có thể tắt DBMS_FLASHBACK bằng cách kết thúc phiên hiện tại, bằng cách ngắt kết nối khỏi cơ sở dữ liệu hoặc kết nối với cơ sở dữ liệu khác.