Kiến trúc & quản lí csdl của oracle
Chia sẻ bởi Đoàn Quốc Việt |
Ngày 14/10/2018 |
30
Chia sẻ tài liệu: kiến trúc & quản lí csdl của oracle thuộc Tư liệu tham khảo
Nội dung tài liệu:
Oracle là gì ?
ORACLE là một bộ phần mềm được cung cấp bởi công ty ORACLE , nó bao gồm một bộ xây dựng các ứng dụng và các sản phẩm cuối cùng cho uer (end_uer product).
Oracle cung cấp một hệ quản trị CSDL mềm dẻo nó bao gồm CSDL Oracle , môi trường cho việc thiết kế các cơ sở dữ liệu (Designer 2000) và các công cụ phát triển (Developer 2000)....
- Hệ quản trị CSDL có tính an toàn , bảo mật cao,tính nhất quán và toàn vẹn dữ liệu ,cho phép các user truy nhập tới CSDL phân tán như một khối thống nhất ... Vì vậy nó được đánh giá là ưu việt nhất hiện nay .
Kiến trúc cơ bản của oracle
Để thiết kế và quản lý CSDL của ORACLE được tốt chúng ta cần phải hiểu được kiến trúc cơ bản của ORACLE.
-Sơ đồ kiến trúc cơ bản ORACLE như sau:
Một CSDL của ORACLE thì bao gồm các file điêu khiển (Control files),các file dữ liệu (data files) và các file đăng nhập lại (Redo log files).
DATABASE ORACLE
Data Files Redo Log Files Control Files
- File dữ liệu (data files) :chứa đựng tất cả các dữ liệu của CSDL có cấu trúc logic như các table,index,và chúng được lưu giữ vật lý trong các file CSDL
- File đăng nhập lại (reedo log files ):dùng cho các xử lý đăng nhập lại.Nó ghi lại tất cả những thay đổi được tạo cho CSDL và chứa các thông tin cho việc khôi phục .
- Các file điều khiển (control files ) : ghi lại cấu trúc vật lý của CSDL
- File biến (parameter ) :chứa các tham số cho việc thiết lạp môi trường làm việc , xác định các đặc tính của các thể hiện ,thường được định danh là Init.Ora.
*Mỗi khi ORACLE bắt đầu SGA được định vị và các tiến trình nền được bắt đầu .Sự kết hợp của một vùng nhớ đệm và một tiến trình nền được gọi là một thể hiện (Instance) của ORACLE
- Các tiến trình nền tương ứng với các công việc khác nhau phục vụ cho tất cả mọi người dùng CSDL.
Vd: Tiến trình DBWR được dùng để ghi lại đĩa những dữ liệu từ vùng nhớ đệm CSDL (Database buffer cache)
-Các tiến trình phục vụ (server processes) : khi một user chạy một ứng dụng tương ứng hoặc một hỏi đáp dữ liệu thì các tiến trình của người dùng được đưa ra. ORACLE sẽ đưa ra một tiến trình phục vụ để trao đổi yêu cầu với các tiến trình của người sử dụng.
Các tiến trình phục vụ sau khi thi hành các yêu cầu của người sử dụngvà đưa trở lại kết quả cho user.
+Các thông báo của SQL sẽ được thi hành bởi các server process ,các tiến trình phục vụ sẽ đọc khối dữ liệu từ đĩa vào vùng nhớ dữ liệu được dùng chung của SGA (vùng Shared pool).Sau đó đưa ra kết quả từ các thông báo SQL.Các tiến trình phục vụ có ba giai đoạn:
Giai đoạn phân tích:kiểm tra cú pháp,kiểm tra quyền truy nhập,đường dẫn tìm kiếm có hiệu quả nhất rồi xác định cây phân tích(Cây phân tích sẽ được cất giữ trong vùng Shared SQL Area (Thuộc một phần của Shared pool trong SGA) vùng này chứa các thông tin cho việc thi hành các thông báo SQL
+Giai đoạn thi hành các thông báo: gắn cây phân tích tới vùng đệm dữ liệu
+Giai đoạn nhận lại:nhận các dl từ các thông báo của server
*Từ đó ta có thể kết luận về hai kiểu tiến trình (Background process và server processes):chúng đều là những tiến trình nhưng chúng khác nhau trong phạm vi tiến trình của mình.Các tiến trình phục vụ trao đổi các yêu cầu từ user,còn background processes thi hành những công việc của một instance.
*Giới thiệu về SGA(System global area :Vùng bộ nhớ hệ thống): là một tập hợp các vùng bộ nhớ đệm dùng chung các tiến trình khác nhau có một vùng đệm riêng và SGA được định vị bởi ORACLE cho một instance.
Các vùng đệm trong SGA:
Shared spool: (như đã nói ở phần server processes) ngoài ra:kích cỡ của shared pool có thể được xác định bởi biến Shared -pool-size.
Database buffer cache (vùng nhớ đệm cơ sở dữ liệu) : Trứơc khi dl có thể được truy nhập một tiến trình phục vụ sẽ đặt dữ liệu vào trong vùng đệm Database buffer cache,vùng đệm này sẽ được cát giữ những bản sao dữ liệu đọc từ đĩa bởi một tiến trình phục vụ
Số block trong vùng này được xác định bởi biến DB_Block_buffer
(kích thước của block được xác định bởi biến DB_block_size)
Redo log buffer (Vùng đăng nhập lại) : Vùng này chứa các thông tin về những thay đổi tới CSDL .ORACLE sẽ ghi lại những thay đổi tới CSDL trong vùng này tới các Redo log file.Kích cỡ của vùng này được xác định bởi biến Log-buffer
*Các tiến trình nền (Backgound processes)
- DBWR: các khối dữ liệu đã được sửa đổi trong vùng Database buffer cache được viết trở lại đĩa bởi 1 tiến trình nền DBWR .Tiến trình này quản lý vùng Database buffer.Cho nên các tiến trình của user luôn luôn có thể tìm được vùng đệm rỗi.
-Logwriter ( LGWR): ghi lại tất cả những thay đổi tới CSDL trong vùng Redo log buffer tới đĩa bởi một tiến trình nền có tên LGWR,một tiến trình nền khác là ARCH(Achiver) có thể được bắt đầu để lưu giữ các thông tin đăng nhập lại trên 1 thiết bị cất giữ đã định trước (tape,disk)dùng cho việc khôi phục bị thất bại.
LGWR viết Redo log buffer vào Redo log files khi:
+ khi user đưa ra chỉ thị commit
+ vùng redo log buffer vượt quá 1/3 kích cỡ cho phép của vùng
+ DBWR cần để xoá sạch các khối đệm cho 1 điểm kiểm tra hoặc quá thời gian xuất hiện
- Process Monitor (PMON): thi hành những tiến trình khôi phục khi 1 tiến trình của user bị thất bại.
- System monitor (SMON): tự động thi hành việc khôi phục instance
+tái tạo lại kiểu không gian bảng (table space)
- Recover process(RECO):giải quyết những thất bại liên quan tới 1 tiến trình được phân bố.
- Checkpoint (CKPT): thay LGWR viết các thông tin dữ liệu từ vùng log buffer tới các header của các file dl và file điều khiển.
- LCKn (Lock process): Xử lý tình trạng bế tắc giữa các instance trong hệ tiến trình song song.
Quản lý việc cất giữ dữ liệu của oracle
Oracle định vị không gian cho dữ liệu trong CSDL theo :
đon vị nhỏ nhất là các block tiếp đến là extent,segment,tablespace
File
* Khối dữ liệu (data block)
-Khối dữ liệu của Oracle là khối nhỏ nhất của công việc I/O nó có thể gồm nhiều khối file vật lý được định vị từ file CSDL.
-Các khối CSDL được gọi là các khối logic.Nó tương ứngvới một hoặc 0nhiều khối vật lý trên đĩa.
- Kích cỡ 1 khối CSDL ORACLE phải được xác định trước khi tạo CSDL và nó là hằng số trong tất cả các các file của CSDL.Khi CSDL đã được thì kích cỡ của nó không thể được thay đổi ngoài trừ việc tạo lại CSDL.
Kích cỡ thường 2-:-4 KB được xác định bởi biến DB_block_size
- Thành phần của một khối:
+Header: chứa những thông tin chung trong khối như địa chỉ khối,kiểu segment(
+Table directory:bao gồm các thông tin về các bảng trong cluster và được sử dụng với các segment hợp lại
+Row data:cất giữ dữ liệu của các table hoặc index
Header
Table directory
Row directory
Freespace
Row data
+Row directory:bao gồm các thông tin về các hàng thực sự trong khối
+Free space:bao gồm tập các byte trong khối mà còn có sẵn cho việc update,insert,delete,việc điều khiển free space cho việc update,insert,delete trong CSDL bằng cách thay đổi giá trị của các biến:
PCTfree,PCTused,Initrsns,Matrans.
+biến PCTfree: xác định tỷ lệ % của khối để sử dụng việc update các hàng đã tồn tại trong khối.
Vd:PCT free=20 tức là 20% của khối dùng cho việc update khi tỷ lệ của khối còn rỗi >% của PCTfree thì việc chèn mới cho phép.
+Pctused: cho phép 1 khối được xem xét lại cho việc chèn các hàng mới,các hàng mới sẽ được chèn khi tỷ lệ % của khối đang được sử dụng nhỏ hơn giá trị Pctused,giá trị ngầm định = 40.
Vd: Pctused =40 thì sau khi không gian đã được sử dụng <40% thì hàng mới có thể được insert vào khối này.
- Để xác định các transaction đang hoạt động trên 1 khối bởi việc sử dụng 2 biến:
+INITRANS:là số các transaction đưa vào lúc bắt đầu có thể xẩy ra đồng thời được định vị trong header của mỗi khối (ngầmđịnh=1,min=1,max=255)
+Maxtrans:là số lớn nhất các tiến trình đồng thời của khối được cung cấp (mặc định là 255,min=1,max=255)
*EXTENT
Là 1 tập các khối kề cận được định vị tới 1 segment.Khi 1 đối tượng của CSDL được hình thành thì không gian được định vị cho nó(các đối tượng có thể là:table,cluster,index,roll back segment,table space)
Mỗi segment cần có ít nhất là 1 extent,riêng đoạn khôi phục cần có ít nhất là 2 extent
- Các extent đầu tiên gọi là Initial extent.
Các extent tiếp theo gọi là incrmental extent.
Một đối tượng sẽ được cấp 1 extent mới nếu tất cả các extent đã định vị hiện tại của nó đã được sử dụng.
Các extent có thể được định vị cho đối tượng khác khi segment dùng nó bị huỷ
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Đoàn Quốc Việt
Dung lượng: 104,50KB|
Lượt tài: 0
Loại file: DOC
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)