Ở bài trước, tôi cùng các bạn đã tìm hiểu về Kiến trúc về Memory trong Oracle. Các bạn cũng đã nắm được các thành phần bên trong của Memory và vai trò của nó.

Đọc thêm  Kiến trúc Memory Oracle Database - SGA và PGA
Đọc thêm  SGA trong Oracle là gì
Đọc thêm  PGA trong Oracle là gì

Tương tự như vậy, trong Oracle database cũng có rất nhiều tiến trình (hay process). Mỗi process có nhiệm vụ riêng của nó, chia thành các loại chính sau:

   Các User proces (hay Client Process)

   Các Server process

   Các Background Process

Đây là những khái niệm rất quan trọng , sẽ giúp ích các bạn rất nhiều, nếu như các bạn muốn học sâu hơn về Oracle Database.

Trong bài viết này, tôi sẽ hướng dẫn để các bạn hiểu ý nghĩa của từng loại process này nhé.


   Các User Processs

Đầu tiên là User process, hay còn gọi là Client Process

Khi tài liệu nào nói về User process, thì ý muốn nói đến “các process chạy trên máy khách”. Giả sử: Bạn dùng 1 công cụ để kết nối và làm việc với Oracle database như: SQL Developer, SQL Navigator, Toad,… , thì mỗi công cụ đó, khi mở ra, sẽ tạo ra 1 process trên máy của bạn, đó chính là User processs.

Nói chung, để làm việc với Oracle database, thì việc đầu tiên là bạn phải tạo ra 1 User process trên máy bạn, để tập hợp các yêu cầu của bạn và gửi yêu cầu đến Database Instance.

   Yêu cầu được gửi từ User process sẽ đi đến 1 thành phần gọi là Listener

   Listener sẽ lắng nghe các yêu cầu từ User process và chuyển tiếp yêu cầu đó đến server process.

 

Tôi rất thích cái ví dụ về nhà hàng, vì nó khá là giống với kiến trúc Oracle database.

Nếu Oracle Database là cái nhà hàng, thì User process là các thực khách.

 


   Server Process

Tiếp theo là đến các Server Process. Ngược lại với User Process, các Server Process là các tiến trình chạy trên Database Server (là cái máy chủ đang cài đặt Database ấy).

Khi nhận được thông tin yêu cầu được chuyển tiếp từ Listener. Nó sẽ thiết lập 1 kết nối (connection) đến User process. Kể từ lúc này User process và Server process sẽ làm việc trực tiếp với nhau, không thông qua Listener nữa.

Về vai trò của các Server process, chúng sinh ra nhằm mục đích phục vụ cho User process. Khi User process gửi yêu cầu đến (VD: Cần lấy dữ liệu từ bảng employees), service process sẽ tiếp nhận yêu cầu, xử lý yêu cầu, và gửi kết quả trả lại cho User process.

Mỗi quan hệ giữa Server process và user process
Mỗi quan hệ giữa Server process và user process

Có 2 gói dịch vụ Bình dân và VIP mà Server process có thể cung cấp khi User process cần

   1 Server Process phục vụ cho 1 User process. Gói VIP này còn được gọi là Dedicated Server.

   1 nhóm Server process giới hạn phục vụ cho nhiều User process. Gói bình dân này được gọi là Shared Server.

Bạn có thể tham khảo thêm bài viết dưới đây của tôi để rõ hơn

Đọc thêm  So sánh Shared Server và Dedicated Server trong Oracle

Khi 1 Server Process được sinh ra, nó sẽ được cấp phát 1 PGA riêng, và được phép sử dụng các tài nguyên trên SGA. Server process không có tên riêng, chúng ta cũng có thể có rất nhiều server process, nên đây thường là các tiến trình chiếm nhiều tài nguyên nhất trên Database.

Server process là các bồi bàn trong nhà hàng, có vai trò phục vụ cho thực khách

   Background process

Như các bạn thấy ở ví dụ trên, Server process phụ thuộc rất nhiều vào User process. Mục đích sống của Server process là User process.

Tuy nhiên, còn 1 loại Process khác, không trực tiếp phục vụ cho User process, nhưng nó vẫn âm thầm đóng 1 vai trò quan trọng trong Oracle Database. Đó là các Background Process.

Background process cũng giống như cô lao công, bác bảo vệ, hay anh quản lý trong nhà hàng vậy. Họ không trực tiếp phục vụ thực khách nhưng không có họ thì nhà hàng cũng không hoạt động được.

Có nhiều Background process, mà mỗi Background process đều có 1 cái tên riêng, cũng như nhiệm vụ riêng (DBWn, CKPT, LGWR, ARCn,…).

Có Background process có nhiệm vụ ghi dữ liệu từ Memory xuống đĩa cứng, có cái thì dọn dẹp bãi chiến trường mỗi khi Server process hoạt động xong, có cái thì đứng ngoài ghi chép lại các thay đổi do Server process sinh ra. Chúng âm thầm, liên tục hoạt động đằng sau Database, để giữ cho Database luôn vận hành trơn tru. Tôi sẽ dành nguyên bài khác mô tả rõ hơn để tri ân các Background process này.

Các Background process trong Oracle Database

Hi vọng bài viết này sẽ mang đến cho các bạn một cái nhìn toàn cảnh về kiến trúc Process trong Oracle Database. Hẹn gặp lại các bạn ở các bài viết sau.

Nguồn: https://dangxuanduy.com/

   Hãy tham gia group “Kho tài liệu kiến thức database” để cùng học hỏi và chia sẻ nhé.

Xin cho tôi được biết, bạn cảm thấy bài viết này như thế nào? Ý kiến của bạn sẽ giúp tôi nâng cao chất lượng bài viết của mình.

    Hãy chia sẻ bài viết này nếu bạn thấy có ích nhé

     

    4 3 votes
    Article Rating
    Subscribe
    Notify of
    guest
    0 Comments
    Inline Feedbacks
    View all comments