Cấu trúc vật lý bao gồm tập hợp các tệp điều khiển (control file), online Redo log file và các tệp dữ liệu (data file).
a1. Tệp dữ liệu
Mỗi một CSDL Oracle đều có thể có một hay nhiều tệp dữ liệu. Các tệp dữ liệu chứa toàn bộ dữ liệu trong CSDL. Các dữ liệu thuộc cấu trúc logic của CSDL
như tables hay indexes đều được lưu trữ dưới dạng vật lý trong các tệp dữ liệu của CSDL.
Hình 2.7. Cấu trúc CSDL Oracle Một số tính chất của tệp dữ liệu:
− Mỗi tệp dữ liệu chỉ có thể được sử dụng trong một CSDL.
− Dữ liệu có một số tính chất cho phép tự động mở rộng kích thước mỗi khi CSDL hết chỗ lưu trữ dữ liệu.
− Một hay nhiều tệp dữ liệu tạo nên một đơn vị lưu trữ logic của CSDL gọi là
không gian bảng (Tablespace).
− Một tệp dữ liệu chỉ thuộc về một không gian bảng.
Dữ liệu trong một tệp dữ liệu có thể đọc ra và lưu vào vùng nhớ bộ đệm của Oracle. Ví dụ: khi một người dùng muốn truy cập dữ liệu trong một table thuộc CSDL. Trong trường hợp thông tin yêu cầu không có trong bộ nhớ tạm hiện thời, nó sẽ được đọc trực tiếp từ các tệp 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 CSDL không nhất thiết phải ghi ngay vào các tệp 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 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 DBWR.
a2. Redo Log Files
Mỗi CSDL Oracle đều có một tập hợp từ 2 tệp nhật ký phục hồi (Redo Log File) trở lên. Các tệp nhật ký phục hồi trong CSDL thường được gọi là CSDL's redo log. Một tệp nhật ký phục hồi được tạo thành từ nhiều bản ghi phục hồi (redo records).
Chức năng chính của tệp nhật ký phục hồi là ghi lại tất cả các thay đổi đối với dữ liệu trong CSDL. Tệp nhật ký phục hồi được sử dụng để bảo vệ CSDL 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 nhật ký phục hồi gọi là multiplexed redo log để cùng lưu trữ các bản sao của tệp nhật ký phục hồi trên các ổ đĩa khác nhau.
Các thông tin trong tệp nhật ký phục hồi chỉ được sử dụng để khôi phục lại CSDL 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 CSDL lên các tệp dữ liệus trong CSDL. 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 tệp 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 CSDL đượ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 tệp nhật ký phục hồi thuộc tệp dữ liệu. Oracle sẽ khôi phục lại các CSDL 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.
a3. Control Files
Mỗi CSDL Oracle đều có ít nhất một tệp điều khiển (control file). Tệp điều khiển chứa các mục thông tin quy định cấu trúc vật lý của CSDL như:
− Tên của CSDL.
− Tên và nơi lưu trữ các tệp dữ liệu hay tệp nhật ký phục hồi. − Time stamp (mốc thời gian) tạo lập CSDL, ...
Mỗi khi một thể hiện của CSDL Oracle được mở, tệp điều khiển của nó sẽ được sử dụng để xác định tệp dữ liệu và các tệp nhật ký phục hồi đi kèm. Khi các thành phần vật lý cả CSDL bị thay đổi (ví dụ như, tạo mới tệp dữ liệu hay Redo log file), tệp điều khiển sẽ được tự động thay đổi tương ứng bởi Oracle. Nó cũng được sử dụng đến khi thực hiện khôi phục lại dữ liệu.