Mục đích khi tắt để bảo trì (hoặc sao lưu lạnh) là cơ sở dữ liệu được để ở trạng thái nhất quán mà không cần phải khôi phục / khôi phục khi khởi động.
Có 3 lệnh SQL * Plus shutdown
đạt được điều này trên lý thuyết, tất cả đều ngăn chặn ngay các phiên mới kết nối với thể hiện:
shutdown normal
hoặc chỉ shutdown
: chờ tất cả các phiên để ngắt kết nối. Chế độ này hiếm khi được sử dụng trong thực tế vì nó phụ thuộc vào các máy khách hoạt động tốt không để các kết nối mở. Đây từng là shutdown
chế độ duy nhất không hủy giao dịch đang chạy.
shutdown transactional
: ngắt kết nối các phiên một khi hiện đang chạy giao dịch hoàn tất, ngăn chặn các giao dịch mới bắt đầu.
shutdown immediate
: ngắt kết nối tất cả các phiên ngay lập tức và khôi phục các giao dịch bị gián đoạn trước khi tắt. Lưu ý rằng việc ngắt kết nối là ngay lập tức, nhưng việc tắt máy có thể không xảy ra vì mọi giao dịch bị gián đoạn có thể mất thời gian để khôi phục.
Chế độ thứ tư của shutdown
là shutdown abort
. Điều này giống như kéo dây nguồn - ví dụ dừng ngay bây giờ mà không cần dọn dẹp. Bạn thường muốn đưa cơ sở dữ liệu trở lại sau đó và tắt sạch ngay lập tức sau đó như trong ví dụ của bạn. Hướng dẫn khái niệm nói :
Chế độ này dành cho các tình huống khẩn cấp, chẳng hạn như khi không có hình thức tắt máy nào khác thành công.
Tất cả các ví dụ bạn đưa ra thực hiện một trạm kiểm soát như một phần của shutdown [normal]
hoặc shutdown immediate
checkpointing nên rõ ràng là có lẽ là để giảm thời gian cần thiết cho việc phục hồi .
lời khuyên chung:
- Không sử dụng
shutdown normal
.
- Chỉ sử dụng
shutdown transactional
cho tắt máy đã tham dự , khi bạn muốn giảm thiểu các giao dịch bị hủy (chỉ tham dự vì loại tắt máy này không được đảm bảo để tắt cơ sở dữ liệu nếu thời gian chờ bị vi phạm).
- Sử dụng
shutdown immediate
cho tắt máy không giám sát hoặc khi bạn không quan tâm đến các giao dịch hiện đang chạy.
- Không sử dụng
shutdown abort
(cộng với khởi động / tắt máy) trừ khi bạn phải - điều này phổ biến hơn trong các phiên bản trước đó của Oracle mà ngày nay. Trong các tình huống khác (không phải vá / nâng cấp), nếu bạn có nhu cầu giảm thiểu thời gian chết , chế độ này có thể phù hợp.
shutdown abort
? Chơi nhân vật phản diện, nếu chúng ta có thể tin tưởng Oracle sẽ phục hồi chính xác khi mất điện, chúng ta có nên tin tưởng nó trong mộtshutdown abort
, đặc biệt là nếu nó nhanh hơn và chúng ta sẽ ngay lập tức làm mộtstartup restrict
và mộtshutdown immediate
? Nói cách khác, có những sự thật chúng ta có thể thấy để sao lưu cảnh báo nghiêm trọng của Oracle chống lạishutdown abort
?