Oracle database instance là một quá trình hoạt động của hệ thống quản lý cơ sở dữ liệu Oracle. Nó điều khiển truy cập và xử lý dữ liệu trong cơ sở dữ liệu. Trong quá trình sử dụng Oracle database instance, chúng ta sẽ cần thực hiện các thao tác khởi động và tắt máy chủ cơ sở dữ liệu. Startup và shutdown Oracle database instance là hai thao tác quan trọng trong quá trình sử dụng Oracle database.
I. Các chế độ startup
1. NOMOUNT: Không kết nối được với database nhưng vẫn có thể tạo ra database.
Trong chế độ này, Oracle database instance không liên kết với cơ sở dữ liệu. Các file dữ liệu và các nhật ký redo không được mở. Chế độ này được sử dụng khi bạn muốn tạo một cơ sở dữ liệu mới hoặc muốn tạo lại cấu trúc của một cơ sở dữ liệu đã tồn tại
2. MOUNT: Kết nối với instance nhưng database chưa được mở.
Trong chế độ này, Oracle database instance đã được khởi động và liên kết với cơ sở dữ liệu. Tuy nhiên, các file dữ liệu và các nhật ký redo vẫn chưa được mở. Chế độ này được sử dụng khi bạn muốn chỉnh sửa cấu trúc của cơ sở dữ liệu, nhưng không muốn cho người dùng truy cập vào cơ sở dữ liệu.
3. OPEN: Kết nối với cả instance và database.
Trong chế độ này, Oracle database instance đã được khởi động, cơ sở dữ liệu đã được liên kết và các file dữ liệu và các nhật ký redo đã được mở. Chế độ này cho phép người dùng truy cập vào cơ sở dữ liệu.
II. Chế độ shutdown:
1. ABORT: Dừng database một cách nhanh chóng nhất nhưng phải thực hiện recovery trước khi khởi động lại.
Chế độ này là chế độ tắt máy cực kỳ nhanh chóng. Nó không cho phép các kết nối đang tồn tại hoàn thành trước khi tắt máy. Trong chế độ này, Oracle database instance không thực hiện bất kỳ thao tác lưu trữ nào trước khi tắt máy. Chế độ này chỉ được sử dụng trong trường hợp bắt buộc hoặc trong trường hợp có nguy cơ mất điện.
2. IMMEDIATE:
Dừng database ngay lập tức và rollback những transaction chưa commit.
3. TRANSACTIONAL:
Cho phép những transaction đang chạy kết thúc nhưng không cho phép transaction mới.
4. NORMAL:
Chờ đến khi tất cả user đăng xuất.
III. Thời gian thực hiện shutdown:
Thời gian thực hiện shutdown của các chế độ sẽ phụ thuộc vào số lượng kết nối đang sử dụng database, số lượng transaction đang thực hiện, và trạng thái của các resource cần thiết khác (như các disk group, listener, và service). Tuy nhiên, chúng ta có thể đưa ra một số ước tính thời gian thực hiện shutdown của các chế độ như sau:
1. Chế độ ABORT:
sẽ thực hiện nhanh nhất, chỉ mất khoảng vài giây để shutdown database instance. Tuy nhiên, chế độ này không an toàn vì có thể gây ra các vấn đề về dữ liệu và yêu cầu phải phục hồi database trước khi khởi động lại.
2. Chế độ IMMEDIATE:
sẽ thực hiện khá nhanh, tùy thuộc vào số lượng transaction đang thực hiện và số lượng kết nối đang sử dụng database. Thời gian thực hiện ước tính từ vài giây đến vài phút. Chế độ này là một lựa chọn an toàn để thực hiện shutdown database instance.
3. Chế độ TRANSACTIONAL:
sẽ cho phép các transaction hiện tại được hoàn thành trước khi shutdown instance, nên thời gian thực hiện sẽ lâu hơn so với chế độ IMMEDIATE. Thời gian thực hiện ước tính từ vài phút đến vài giờ.
4. Chế độ NORMAL:
sẽ đợi cho tất cả các kết nối hiện tại ngắt kết nối trước khi thực hiện shutdown instance. Thời gian thực hiện ước tính từ vài phút đến vài giờ, tùy thuộc vào số lượng kết nối và các transaction đang thực hiện. Như vậy, để đảm bảo an toàn và tránh mất mát dữ liệu, chúng ta nên ưu tiên sử dụng chế độ IMMEDIATE hoặc TRANSACTIONAL khi thực hiện shutdown database instance, trừ khi có trường hợp khẩn cấp thì mới sử dụng chế độ ABORT
Bài viết chi tiết: Các trạng thái khởi động và shutdown trong Oracle Database Instance