1.2.2.1. Cấu trúc vật lý cơ sở dữ liệu
Cấu trúc vật lý bao gồm tập hợp các file điều khiển, file khôi phục trực tuyến và các file dữ liệu:
File dữ liệu
Mỗi một cơ sở dữ liệu Oracle đều có thể có một hay nhiều file dữ liệu. Các file dữ liệu chứa toàn bộ dữ liệu trong cơ sở dữ liệu. Các dữ liệu thuộc cấu trúc logic của
cơ sở dữ liệu nhƣ các bảng hay các chỉ mục đều đƣợc lƣu trữ dƣới dạng vật lý trong các file dữ liệu của cơ sở dữ liệu.
Một số tính chất của file dữ liệu:
− Mỗi file dữ liệu chỉ có thể đƣợc sử dụng trong một cơ sở dữ liệu.
− Bên cạnh đó, file dữ liệu cũng cịn có một số tính chất cho phép tự động mở rộng
kích thƣớc mỗi khi cơ sở dữ liệu hết chỗ lƣu trữ dữ liệu.
− Một hay nhiều file dữ liệu tạo nên một đơn vị lƣu trữ logic của cơ sở dữ liệu gọi
là không gian bảng.
− Một file dữ liệu chỉ thuộc về một không gian bảng.
Dữ liệu trong một file dữ liệu có thể đọc ra và lƣu vào vùng nhớ bộ đệm của Oracle. Ví dụ: khi ngƣời sử dụng muốn truy cập dữ liệu trong một bảng thuộc cơ sở dữ liệu. Trong trƣờng hợp thơng tin u cầu khơng có trong cache memory hiện thời, nó sẽ đƣợc đọc trực tiếp từ các file dữ liệu ra và lƣu trữ vào trong bộ nhớ.
Tuy nhiên, việc bổ sung hay thêm mới dữ liệu vào cơ sở dữ liệu không nhất thiết phải ghi ngay vào các file dữ liệu. Các dữ liệu có thể tạm thời ghi vào bộ nhớ để giảm thiểu việc truy xuất tới bộ nhớ ngoài (ổ đĩa) làm tăng hiệu năng sử dụng hệ thống. Công việc ghi dữ liệu này đƣợc thực hiện bởi tiến trình nền DBWn.
Redo Log Files
Mỗi Oracle database đều có một tập hợp từ 02 redo log files trở lên. Các redo log files trong cơ sở dữ liệu thƣờng đƣợc gọi là database's redo log. Một redo log đƣợc tạo thành từ nhiều redo entries (gọi là các redo records).
Chức năng chính của redo log là ghi lại tất cả các thay đổi đối với dữ liệu trong cơ sở dữ liệu. Redo log files đƣợc sử dụng để bảo vệ cơ sở dữ liệu khỏi những hỏng hóc do sự cố. Oracle cho phép sử dụng cùng một lúc nhiều redo log gọi là multiplexed redo log để cùng lƣu trữ các bản sao của redo log trên các ổ đĩa khác nhau.
Các thông tin trong redo log file chỉ đƣợc sử dụng để khôi phục lại cơ sở dữ liệu trong trƣờng hợp hệ thống gặp sự cố và không cho phép viết trực tiếp dữ liệu trong cơ sở dữ liệu lên các file dữ liệu trong cơ sở dữ liệu. Ví dụ: khi có sự cố xảy ra nhƣ mất điện bất chợt chẳng hạn, các dữ liệu trong bộ nhớ không thể ghi trực tiếp lên các file dữ liệu và gây ra hiện tƣợng mất dữ liệu. Tuy nhiên, tất cả các dữ liệu bị mất này đều có thể khơi phục lại ngay khi cơ sở dữ liệu đƣợc mở trở lại. Việc này có thể thực hiện đƣợc thông qua việc sử dụng ngay chính các thơng tin mới nhất có trong các redo log
files thuộc file dữ liệu. Oracle sẽ khôi phục lại các cơ sở dữ liệu cho đến thời điểm trƣớc khi xảy ra sự cố.
Công việc khôi phục dữ liệu từ các redo log đƣợc gọi là rolling forward.
File điều khiển
Mỗi Oracle database đều có ít nhất một file điều khiển. File điều khiển chứa các mục thông tin quy định cấu trúc vật lý của cơ sở dữ liệu nhƣ:
− Tên của cơ sở dữ liệu.
− Tên và nơi lƣu trữ các file dữ liệu hay redo log files.
− Mốc thời gian tạo lập cơ sở dữ liệu, ...
Mỗi khi nào một instance của Oracle database đƣợc mở, file điều khiển của nó sẽ đƣợc sử dụng để xác định các file dữ liệu và các redo log files đi kèm. Khi các thành phần vật lý cả cơ sở dữ liệu bị thay đổi (ví dụ nhƣ, tạo mới file dữ liệu hay redo log file), file điều khiển sẽ đƣợc tự động thay đổi tƣơng ứng bởi Oracle.
File điều khiển cũng đƣợc sử dụng đến khi thực hiện khôi phục lại dữ liệu.
1.2.2.2. Cấu trúc logic cơ sở dữ liệu
Cấu trúc logic của Oracle database bao gồm các đối tƣợng tablespaces, schema objects, data blocks, extents, và segments.
Tablespaces
Một cơ sở dữ liệu có thể đƣợc phân chia về mặt logic thành các đơn vị gọi là các tablespaces, Tablespaces thƣờng bao gồm một nhóm các thành phần có quan hệ logic với nhau.
Databases, Tablespaces, và Datafiles
Mối quan hệ giữa các cơ sở dữ liệu, tablespaces, và datafiles có thể đƣợc minh hoạ bởi hình vẽ sau: