Oracle Database

Một phần của tài liệu Công nghệ tác tử và bài toán quản trị CSDL ngành thuế (Trang 30)

Oracle database là tập hợp các dữ liệu đƣợc xem nhƣ một đơn vị thành phần. Cơ sở dữ liệu có nhiệm vụ lƣu trữ và trả về các thông tin liên quan. Cơ sở dữ liệu đƣợc xem xét dƣới hai góc độ cấu trúc logic cấu trúc vật lý . Tuy vậy, hai cấu trúc dữ liệu này vẫn tồn tại tách biệt nhau, việc quản lý dữ liệu theo cấu trúc lƣu trữ vật lý không gây ảnh hƣởng tới cấu trúc logic

Oracle database đƣợc xác định bởi tên một tên duy nhất và đƣợc quy định trong tham số DB_NAME của parameter file.

Hình 1.16 Cấu trúc cơ sở dữ liệu

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 yê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 (adsbygoogle = window.adsbygoogle || []).push({});

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:

Có một số điểm ta cần quan tâm:

− Mỗi cơ sở dữ liệu có thể phân chia về mặt logic thành một hay nhiều tablespace.

− Mỗi tablespace có thể đƣợc tạo nên, về mặt vật lý, bởi một hoặc nhiều datafiles.

− Kích thƣớc của một tablespace bằng tổng kích thƣớc của các datafiles của nó. Ví dụ: trong hình vẽ ở trên SYSTEM tablespace có kích thƣớc là 2 MB còn USERS tablespace có kích thƣớc là 4 MB.

− Kích thƣớc của database cũng có thể xác định đƣợc bằng tổng kích thƣớc của các tablespaces của nó. Ví dụ: trong hình vẽ trên thì kích thƣớc của database là 6 MB.

Schema và Schema Objects

Schema là tập hợp các đối tƣợng có trong cơ sở dữ liệu. Schema objects là các cấu trúc logic cho phép tham chiếu trực tiếp tới dữ liệu trong database. Schema objects bao gồm các cấu trúc nhƣ tables, views, sequences, stored procedures, synonyms, indexes, clusters, và database links.

Data Blocks, Extents, and Segments

Oracle điểu khiển không gian lƣu trữ trên đĩa cứng theo các cấu trúc logic bao gồm các data blocks, extents, và segments.

Oracle Data Blocks

Là mức phân cấp logic thấp nhất, các dữ liệu của Oracle database đƣợc lƣu trữ trong các khối dữ liệu. Một khối dữ liệu tƣơng ứng với một số lƣợng nhất định các bytes vật lý của cơ sở dữ liệu trong không gian đĩa cứng. Kích thƣớc của một khối dữ liệu đƣợc chỉ ra cho mỗi Oracle database ngay khi cơ sở dữ liệu đƣợc tạo lập. Cơ sở dữ liệu sử dụng, cấp phát và giải phóng vùng không gian lƣu trữ thông qua các Oracle data blocks.

Extents

Là mức phân chia cao hơn về mặt logic các vùng không gian trong cơ sở dữ liệu. Một extent bao gồm một số khối dữ liệu liên tiếp nhau, cùng đƣợc lƣu trữ tại một thiết bị lƣu giữ. Extent đƣợc sử dụng để lƣu trữ các thông tin có cùng kiểu.

Segments

Là mức phân chia cao hơn nữa về mặt logic các vùng không gian trong cơ sở dữ liệu. Một segment là một tập hợp các extents đƣợc cấp phát cho một cấu trúc logic. Segment có thể đƣợc phân chia theo nhiều loại khác nhau:

Data segment

Mỗi một non-clustered table có một data segment. Các dữ liệu trong một bảng đƣợc lƣu trữ trong các extents thuộc data segment đó. Với một partitioned table thì mỗi each partition lại tƣơng ứng với một data segment.

Mỗi Cluster tƣơng ứng với một data segment. Dữ liệu của tất cả các table trong cluster đó đều đƣợc lƣu trữ trong data segment thuộc Cluster đó.

index segment

Mỗi một index đều có một index segment lƣu trữ các dữ liệu của nó. Trong partitioned index thì mỗi partition cũng lại tƣơng ứng với một index segment.

rollback segment

Một hoặc nhiều rollback segments của database đƣợc tạo lập bởi ngƣời quản trị database để lƣu trữ các dữ liệu trung gian phục vụ cho việc khôi phục dữ liệu.

Các thông tin trong Rollback segment đƣợc sử dụng để: Tạo sự đồng nhất các thông tin đọc đƣợc từ database Sử dụng trong quá trình khôi phục dữ liệu

Phục hồi lại các giao dịch chƣa commit đối với mỗi user temporary

segment

Temporary segments đƣợc tự động tạo bởi Oracle mỗi khi một câu lệnh SQL statement cần đến một vùng nhớ trung gian để thực hiện các công việc của mình nhƣ sắp xếp dữ liệu. Khi kết thúc câu lệnh đó, các extent thuộc temporary segment sẽ lại đƣợc hoàn trả cho hệ thống.

Oracle thực hiện cấp phát vùng không gian lƣu trữ một cách linh hoạt mỗi khi các extents cấp phát đã sử dụng hết. (adsbygoogle = window.adsbygoogle || []).push({});

1.2.2.3. Các cấu trúc vật lý khác

Ngoài ra, Oracle Server còn sử dụng các file khác để lƣu trữ thông tin. Các file đó bao gồm:

Parameter file: file tham số chỉ ra các tham số đƣợc sử dụng trong cơ sở dữ liệu. Ngƣời quản trị cơ sở dữ liệu có thể sửa đổi một vài thông tin có trong file này. Các tham số trong file tham số đƣợc viết ở dạng văn bản.

Password file: Xác định quyền của từng ngƣời dùng trong cơ sở dữ liệu. Cho phép ngƣời sử dụng khởi động và tắt một Oracle instance.

Archived redo log files: Là bản offline của các redo log files chứa các thông tin cần thiết để phục hồi dữ liệu.

Một phần của tài liệu Công nghệ tác tử và bài toán quản trị CSDL ngành thuế (Trang 30)