Học Oracle – Kiến Thức Cơ Bản Cho Người Mới Bắt đầu

Thành phần vật lý

Thành phần vật lý dùng để lưu trữ dữ liệu trong Oracle Database là tập hợp một số tập tin tồn tại trên máy tính cài đặt Oracle Server, các tập tin này sẽ được sử dụng khi Oracle Database đang được mở. Dữ liệu trong Oracle Database sẽ được tổ chức lưu trữ và quản lý bởi ba loại tập tin sau:
  • Data File.
  • Redo Log File.
  • Control File.

Data File

Mỗi một Oracle Database có 1 hay nhiều Data File, Data File dùng để chứa tất cả dữ liệu của một Database. Những thành phần Logic của Database như Table, Index được lưu trữ vật lý trong các Data File của Database. Các đặc điểm của Data File:
  • Một Data File dùng để lưu trữ dữ liệu của duy nhất một Database.
  • Kích thước của các Data File có thể tự động tăng để theo kích thước của Database.
  • Một hay nhiều Data File tạo thành một đơn vị Logic của vùng nhớ trong cơ sở trữ dữ liệu gọi là Tablespace, và một Data File chỉ quan hệ với duy nhất một Tablespace mà thôi.
Data File có thể chứa dữ liệu của nhiều Schema Object bên trong Tablespace, lưu trữ vật lý, và những Shema Object có thể được lưu trữ trên nhiều Data File khác nhau. Khi dữ liệu được lưu trữ trên nhiều đĩa thì ta không thể biết được Shema Object được lưu trữ trên Data File nào. Data File cũng có trạng thái Online và Offline như Tablespace. Trạng thái của Data File thường thay đổi theo Tablespace mà nó liên kết. Khi Database quản lý vùnng nhớ của Tablespace theo cách Locally Managed thì các Temporary Tablespace sẽ có những Temporary Data Files tương ứng, gọi tắt là TempFile. Những TempFile này không thể chuyển sang trạng thái chỉ đọc và không thể đổi tên của chúng. Thông tin của TempFile được lưu trữ trong các View của Dictionary là DBA_TEMP_FILES và V$TEMPFILE, không có trong DBA_DATA_FILES hay trong view V$DATAFILE.

Redo Log File

Mỗi một Oracle Database có 2 hay nhiều Redo Log File, tập hợp những File này trong một CSDL được gọi là Redo Log của CSDL đó. Một Redo Log tạo thành những Redo Entry, còn gọi là Redo Record. Chức năng chính của Redo Log là dùng để ghi lại những thông tin trong CSDL bị thay đổi. Trong trường hợp Database gặp sự cố trước khi dữ liệu thay đổi được ghi nhận chắc chắn xuống các Data File thì những thông tin trong Redo Log sẽ được sử dụng trong việc phục hồi dữ liệu về trạng thái trước khi dữ liệu thay đổi.

Control File

Mỗi một Oracle Database có 1 Control File, dùng để chứa tất cả các thông tin về cấu trúc vật lý của một Database như là: tên Database, nơi lưu trữ của Data File và Redo Log File, Time stamp tạo Database. Mỗi Control File chỉ dùng cho một Database duy nhất. Khi một Instance của Oracale Database được khởi động, Control File của nó được sử dụng để xác định vị trí của các Data File và Redo Log File, các File này phải được mở trong quá trình làm việc với Database. Nội dung của Control File sẽ được Oracle cập nhật tự động và liên tục khi cấu trúc lưu trữ vật lý của Database có thay đổi. Nội dung của Control File chỉ có thể bị thay đổi bởi Oracle, bất kỳ DBA hay người dùng nào cũng không thể sửa nội dung Control File của Database. Khi những thành phần vật l‎ý của Database như Data File, Redo Log File có sự thay đổi như thêm mới File, sửa tên của File hay xóa File ra khỏi Database thì Control File sẽ ghi nhận lại những thông tin đó. Những thông tin này được sử dụng:
  • Trong quá trình mở một Database Oracle, tìm được những Data File và Redo Log File của Database.
  • Trong trường hợp phục hồi dữ liệu, Oracle có thể tìm được những tập tin được yêu cầu.
Bên cạnh đó, Control File còn lưu thông tin về Checkpoint. Cứ mỗi 3 giây, Checkpoint Process (CKPT) sẽ ghi vào Control File vị trí Checkpoint trong Online Redo Log File. Thông tin này dùng trong quá trình phục hồi dữ liệu của Database, báo cho Database biết là không cần thực hiện việc phục hồi dữ liệu trong trường hợp dữ liệu được ghi chắc chắn vào các Data File. Control File là một tập tin quan trọng để Oracle có thể mở một Database, do đó người quản trị cần thực hiện việc sao chép và lưu trữ các Control File trên nhiều ổ đĩa vật lý khác nhau để sử dụng trong các trường hợp bị hư hỏng. Tìm hiểu các khóa học Quản trị cơ sở dữ liệu Oracle tại đây

Thành phần Logic

Dữ liệu trong Oracle Database được tổ chức và quản lý dựa vào những thành phần Logic, là những thành phần hỗ trợ DBA và người dùng trong việc lưu trữ và sử dụng thông tin trên Oracle Server. Thành phần Logic trong Oracle Database bao gồm 2 đơn vị lưu trữ là Tablespace và các Schema Object.
  • Tablespace

Một Database được chia thành nhiều đơn vị lưu trữ ở mức Logic, những đơn vị lưu trữ đó gọi là Tablespace. Các đặc điểm của Tablespace:
  • Tablespace chỉ thuộc về một Database duy nhất.
  • Một Tablespace bao gồm một hay nhiều tập tin vật lý dùng để lưu trữ dữ liệu, đó là Data File.
Trong Oracle Database luôn có một Tablespace do Oracle tạo ra trong quá trình tạo Database có tên là SYSTEM. Đây là vùng nhớ quan trọng của Database, dùng để lưu trữ tất cả những thông tin về Database như định nghĩa cấu trúc của các đối tượng, thông tin cấp phát và sử dụng vùng nhớ của các đối tượng, .... Tablespace được tạo nên bởi sự kết hợp của một hay nhiều đơn vị lưu trữ Logic gọi là Segment, một Segment được chia thành nhiều Extent và trong Extent thì có nhiều Data Block liên tục nhau.
Hoc Oracle Trung tam tin hoc

Hình 3: Tổ chức của Tablespace

  • Data Block

Là đơn vị lưu trữ Logic nhỏ nhất được Oracle sử dụng trong việc đọc và ghi dữ liệu trong Oracle Database. Kích thước của Data Block sẽ được xác định thông qua tham số DB_BLOCK_SIZE. Data Block trong Oracle Database gồm có 3 vùng chính là: Header, Data và Free Space. Header là vùng chứa thông tin chung của Block, như là địa chỉ của Block và loại Segment chứa Block là Data, Index, Rollback hay Temporary. Vùng Data dùng lưu trữ dữ liệu của các dòng trong bảng. Các dòng của một bảng dữ liệu có thể nằm trên nhiều Block khác nhau. Free Space là vùng nhớ nằm giữa Header và Data, vùng nhớ này giúp kích thước của Header và Data có thể tăng lên khi cần, trong trường hợp thêm hay sửa dữ liệu của bảng.
  • Extent

Tập hợp nhiều Data Block liên tiếp nhau sẽ tạo thành một đơn vị lưu trữ Logic lớn hơn gọi là Extent. Số lượng Data Block của một Extent tùy thuộc vào kích thước được chỉ định cho Extent khi tạo đối tượng Table. Khi người dùng tạo một Table thì Oracle sẽ tự động cấp phát cho Table một Data Segment, trong Data Segment sẽ có một Extent với số lượng Data Block tùy thuộc vào kích thước của Extent. Nếu không gian lưu trữ trong các Data Block của một Extent trong Segment bị đầy thì Oracle sẽ tự động cấp phát thêm một Extent cho Segment. Kích thước của Extent mới cấp phát có thể lớn hơn hay bằng kích thước của Extent ban đầu. Số Extent được cấp phát cho một Segment có thể được xác định thông qua các tham số khi tạo Table, như là MINEXTENT, MAXEXTENT.
  • Segment

Segment là tập hợp một số Extent dùng để chứa toàn bộ thông tin của cấu trúc lưu trữ Logic bên trong Tablespace, như là Table. Oracle Database sử dụng 4 loại Segment khác nhau để lưu trữ thông tin:
  • Data Segment.
  • Index Segment.
  • Temporary Segment.
  • Rollback Segment.
Những Segment này sẽ được cấp phát cho những đối tượng ở những thời điểm khác nhau. Ví dụ Data Segment sẽ được cấp phát cho Table khi thực hiện câu lệnh tạo Table, còn Temporary Segment được cấp phát khi thực hiện các câu lệnh SQL hay câu lệnh tạo bảng tạm. (Trích giáo trình Oracle – Trung Tâm Tin Học, ĐH KHTN)

Từ khóa » Tìm Kiếm Có Dấu Trong Oracle