Trong thế giới của hệ quản trị cơ sở dữ liệu (DBMS), hai khái niệm quan trọng trong Oracle là "Oracle Database" và "Database Instance". Dưới đây là sự khác biệt giữa hai khái niệm này:
Oracle Database
Oracle Database là một tập hợp các tệp dữ liệu và phần mềm được cài đặt trên một máy chủ hoặc một nhóm máy chủ. Nó bao gồm tất cả các đối tượng cơ sở dữ liệu như bảng, chế độ xem, thủ tục lưu trữ, hàm, chỉ mục, v.v. Oracle Database cung cấp khả năng lưu trữ và quản lý dữ liệu, và cung cấp các tính năng cho phép người dùng truy xuất và thao tác với dữ liệu.
Một Oracle Database có thể chứa nhiều database schema, mỗi schema đại diện cho một phân vùng dữ liệu riêng biệt trong cùng một database. Ví dụ, một Oracle Database có thể chứa các schema tương ứng với dữ liệu nhân viên, dữ liệu khách hàng, dữ liệu sản phẩm, v.v.
Có thể hiểu rằng, "database" là một cách tổ chức để lưu trữ và quản lý dữ liệu trên ổ đĩa của máy tính. Nó bao gồm các file dữ liệu, trình quản lý cơ sở dữ liệu, các thành phần phần mềm và phần cứng liên quan để quản lý và truy cập dữ liệu. Các file này có thể được lưu trữ trên một hoặc nhiều ổ đĩa và được quản lý bởi phần mềm quản lý cơ sở dữ liệu.
Trong khái niệm "database" của Oracle, có nhiều loại file dữ liệu được quản lý trên ổ đĩa máy tính. Cụ thể, có ba loại file dữ liệu chính:
- Data files: chứa các bản ghi dữ liệu của các bảng và chỉ mục của cơ sở dữ liệu.
- Control files: chứa thông tin về cơ sở dữ liệu và các tập tin nhật ký (redo log) để đảm bảo tính toàn vẹn của dữ liệu
- Redo log files: chứa các thay đổi được ghi lại trong quá trình thực hiện các giao dịch để đảm bảo khả năng phục hồi của cơ sở dữ liệu khi xảy ra sự cố.
Bên cạnh các loại file dữ liệu này, Oracle còn quản lý các file bảo mật, file cấu hình và các file khác để hỗ trợ hoạt động của cơ sở dữ liệu.
Oracle Database Instance
Một Database Instance là một bản sao của Oracle Database, hoạt động trong bộ nhớ của máy tính. Mỗi khi một Oracle Database được khởi động, một Database Instance sẽ được tạo ra để cung cấp các dịch vụ cơ sở dữ liệu cho người dùng. Instance bao gồm bộ nhớ đệm, các tiến trình quản lý bộ nhớ, các tiến trình quản lý tiến trình, v.v.
Một Oracle Database có thể có nhiều Database Instances, và mỗi Instance có thể phục vụ nhiều phiên làm việc của người dùng đồng thời. Một instance được xác định bởi tên instance, mà là một tên mà người quản trị có thể đặt khi khởi động instance đó. Một Oracle Database có thể có nhiều tên instance khác nhau.
Database instance tồn tại trong bộ nhớ máy tính và được tạo ra khi cơ sở dữ liệu được khởi động. Nó bao gồm các tiến trình (process) và bộ nhớ đệm (memory structures) để quản lý và xử lý dữ liệu của cơ sở dữ liệu. Mỗi database instance là duy nhất cho mỗi cơ sở dữ liệu và sẽ tồn tại trong bộ nhớ cho đến khi cơ sở dữ liệu được tắt hoặc máy tính bị khởi động lại. Database instance bao gồm các thành phần chính như SGA (System Global Area), background process và các tiến trình kết nối (user processes) từ các ứng dụng hoặc người dùng sử dụng cơ sở dữ liệu.
Vì vậy, để tóm tắt, Oracle Database là một tập hợp các tệp dữ liệu và phần mềm cài đặt trên một máy chủ hoặc nhóm máy chủ, trong khi Database Instance là một bản sao của Oracle Database hoạt động trong bộ nhớ của máy tính và cung cấp các dịch vụ cơ sở dữ liệu cho người dùng. Có thể có nhiều Instance trong một Oracle Database và mỗi Instance có thể phục vụ nhiều phiên làm việc của người dùng đồng thời.