Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Trang 2 trên tổng số 3 Đầu tiênĐầu tiên 123 Cuối cùngCuối cùng
Từ 11 tới 20 trên tổng số 30 kết quả

Đề tài: Kiến trúc Oracle

  1. #11
    Ngày gia nhập
    08 2006
    Nơi ở
    Hà Nội
    Bài viết
    112

    Mặc định Library Cache and Data Dictionary Cache

    Chúng ta xem đến 2 thành phần của Shared Pool
    * Library Cache
    - Lưu giữ thông tin về những câu lệnh SQL và PL/SQL được sử dụng gần đây nhất.
    - Khả năng chia sẻ các câu lệnh dùng chung
    - Được quản lý bởi ít nhất một thuật toán LRU (đây là thuật toán Oracle xây dựng ngầm định để quản lý)
    - Bao gồm 2 cấu trúc:
    + Vùng Shared SQL
    + Vùng Shared Pl/SQL
    - Size được xác định bởi size của Shared Pool

    Giải thích: Size của Library Cache được xác định dựa trên size của Shared Pool, vùng nhớ sẽ được cấp phát khi một câu lệnh được phân tích hoặc là một chương trình được gọi. Nếu size của Shared Pool quá nhỏ, những câu lệnh vẫn được reload lại một cách liên tục trong Library Cache, tuy nhiên nó sẽ bị ảnh hưởng tới công việc thực thi này.

    * Data Dictionary Cache
    - Là một tập hợp của những công việc xác định được dùng gần đây nhất trong Database
    - Bao gồm thông tin về Database Files, Tables (bảng), Indexes (chỉ mục), Columns (cột), Users (người dùng), Privileges (quyền), và các đối tượng Database khác (other Database Objects).
    - Trong suốt quá trình phân tích, Server Process sẽ lấy thông tin từ Data Dictionary để quyết định xem việc truy cập vào các object và tính đúng đắn của chúng (Validate).
    - Vùng đệm lưu trữ dành cho thông tin trong Data Dictionary sẽ tận dụng những khoảng thời gian dành cho việc truy vấn và thực hiện các câu lệnh DML (Data Manipulation Language - thuật ngữ này được học trong môn Introduction to SQL)
    - Size được xác định bởi Shared Pool size

    Giải thích: Data Dictionary Cache được tham khảo như một vùng đệm dành cho data dictionary (hoặc vùng đệm dành cho Row). Các thông tin về Database (User account data, Data File names, Segment name, Extent location, Table description, và quyền hạn dành cho user - user privileges: Các thuật ngữ này sẽ được xem xét tới trong các chương sau mà mỗi một thuật ngữ là một chương dành riêng để quản lý chúng) được lưu trong một bảng có tên là Data Dictionary Table. Khi Server cần đến các thông tin này, Data Dictionary Table sẽ được đọc - read, và các thông tin được trả lại trong quá trình tìm kiếm sẽ được lưu tại Data Dictionary Cache.

    Lưu ý: Toàn bộ thông tin về Size đều phụ thuộc vào Shared Pool Size (bởi vì Shared Pool bao gồm 2 thành phần vừa nêu) và được quản lý bên trong (internally) bởi Database. Nếu như Data Dictionary Cach có size quá nhỏ, thì Database sẽ truy vấn Data Dictionary Tables theo kiểu lặp đi lặp lại. Những câu lệnh truy vấn được thực hiện theo phương pháp đệ quy toán học.

    Lưu ý thứ 2: Trong bất kỳ các sản phẩm Test nào dành cho việc thi chứng chỉ OCA, đều có một câu : "Which stores SQL statement in the most recent time?", do đó, chúng ta phải nắm vững kiến thức dành cho Oracle Instance, mà Shared Pool là một thành phần trong đó.
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    ITGATEVN - Cộng đồng IT Việt Nam
    http://www.itgatevn.com.vn


  2. #12
    Ngày gia nhập
    08 2006
    Nơi ở
    Hà Nội
    Bài viết
    112

    Mặc định Database Buffer Cache


    Chúng ta xem xét đến thành phần Database Buffer Cache:
    - Lưu trữ các bản copy của thành phần Data Block (lưu ý, Data Block khác với OS block) mà được lấy ra từ Data Files
    - Khả năng thực thi lớn khi tập hợp hoặc nâng cấp dữ liệu (Obtain and Update Data)
    - Được quản lý bởi thuật toán LRU
    - Tham số DB_BLOCK_SIZE xác định size dành cho block chính.

    Giải thích: Khi một câu lệnh truy vấn được thực hiện, Oracle sẽ tiến hành tìm kiếm trong Database Buffer Cache để xác định bất kỳ block nào cần dùng. Nếu block không được tìm tháy trong Database Buffer Cache, Server thực hiện đọc block từ Data File và đặt một bản copy vào trong Database Buffer Cache. Bởi vì có một số yêu cầu tiếp theo đó cũng đòi hỏi cùng một hoặc nhiều block như vậy khi tìm trong vùng nhớ, nên các yêu cầu này sẽ không cần đến vùng nhớ physical, mà thay vào đó, Oracle sẽ thực thiện thuật toán LRU ngầm định để xác định xem có đủ vùng đệm gần đây được truy cập vào hay không, để tạo thành một vùng nhớ mới cho những block này trong Database Buffer Cache.

    Databse Buffer Cache bao gồm các thành phần độc lập sau:
    - DB_CACHE_SIZE
    - DB_KEEP_CACHE_SIZE
    - DB_RECYCLE_CACHE_SIZE
    Chúng ta có thể thay đổi một cách động (dynamically) size bằng câu lệnh:
    SQL> ALTER SYSTEM SET.
    Ví du: SQL> ALTER SYSTEM SET DB_CACHE_SIZE = 96M;

    Tham số DB_CACHE_ADVICE là một tham số tập hợp các số liệu thống kê dành cho việc dự báo và lên kế hoạch thật tốt cho Size của các cache trên. Tham số này có 2 chế độ: ON/OFF. Recommen là ON.
    Để minh họa cho điều trên, tôi đưa ra hình dưới đây



    Ngoài lề: Tuy nhiên, như chúng ta đã hình dung, công việc thực hiện thiết lập các tham số này thực sự là rất khó khăn và phức tạp. Tại sao tôi lại nói như vậy, các bạn có thể đã có một ít kiến thức về Oracle Server, như các bài ở trên, các bạn đơn giản có thể lấy thông tin từ SGA, Shared Pool, thực hiện các phép tính cộng trừ để có thể resize các tham số lên một mức nào đó. Nhưng đó là đối với Database trong việc test, thử hình dung, hằng ngày, một công ty luôn có các đơn hàng lớn, data luôn luôn được đặt trong tình trạng Update và Query, thì công việc này thực sự là khó khăn, nếu như không có một chính sách cụ thể, rõ ràng, lường trước được những j có thể xảy ra hàng ngày, hàng giờ. Sai một ly, đi một dặm, đến bây giờ, ai đó trong số các bạn hiểu qua về Oracle Server, sẽ hiểu được tầm quan trọng trong việc quản lý RDBMS như thế nào.

    *Bắt đầu từ bây giờ, chúng ta sẽ làm quen với một khái niệm mới: View động. View động là những bảng động, trong đó chứa các thông tin cụ thể về các tham số, cũng như các objects khác (user accout, user profile..). View động này được phân biệt bằng "V$...".

    Đối với dữ liệu thống kê của Database Buffer Cache, chúng ta có thể truy vấn bằng view động: V$DB_CACHE_ADVICE.
    Các bạn xem hình mình họa ở dưới đây:

    ITGATEVN - Cộng đồng IT Việt Nam
    http://www.itgatevn.com.vn


  3. #13
    Ngày gia nhập
    08 2006
    Nơi ở
    Hà Nội
    Bài viết
    112

    Mặc định Redo Log Bufer



    Chúng ta xem xét đến thành phần cuối cùng của SGA - Redo Log Buffer:
    - Ghi lại toàn bộ sự thay đổi của Data Block trong Database
    - Mục đích chính là Recovery - phục hồi
    - Các sự thay đổi ghi lại trong quá trình gọi một Redo vào (Redo Entries)
    - Redo Entries chứa đựng thông tin về việc tái thiết hoặc thay đổi lại
    - Size được xác định bằng tham số LOG_BUFFER

    Giải thích: Redo Log Buffer là một vùng đệm vòng tròn chứa đựng thông tin về sự thay đổi của Data Block. Các thông tin này được lưu trữ vào một khái niệm gọi là Redo Entries. Redo Entries chứa đựng các thông tin cần thiết để tái tạo các dữ liệu trước đó khi thực hiện các câu lệnh như INSERT, UPDATE, DELETE, CREATE, ALTER hoặc DROP.
    ITGATEVN - Cộng đồng IT Việt Nam
    http://www.itgatevn.com.vn


  4. #14
    Ngày gia nhập
    08 2006
    Nơi ở
    Hà Nội
    Bài viết
    112

    Mặc định Tổng kết một chút nhé

    Chúng ta đã đi qua một chặng đường ngắn, xem xét xong thành phần SGA, trong SGA gồm những gì. Bây giờ chúng ta sẽ ngắm nghía đến thành phần còn lại trong Memory Structure - PGA : Program Global Area. Để đưa ra một cái nhìn cụ thể về kiến trúc của Oracle Server và cấu trúc từng thành phần trong đó, tôi đã upload lên forum sơ đồ này, nhưng để các bạn tiện theo dõi, tôi post lại hình đó dưới đây

    ITGATEVN - Cộng đồng IT Việt Nam
    http://www.itgatevn.com.vn


  5. #15
    Ngày gia nhập
    08 2006
    Nơi ở
    Hà Nội
    Bài viết
    112

    Mặc định Program Global Area



    Nào, trước khi chúng ta bắt tay vào tìm hiểu thành phần PGA trong cấu trúc bộ nhớ của 1 Instance, chúng ta cùng nhau nhìn lướt qua mô hình PGA nhé.

    Với đặc tả như trên ( PGA là một vùng nhớ dự trữ dành cho mỗi một tiến trình của một user kết nối tới Database), tôi xin bổ sung thông tin từ Fund I về đặc tả PGA như sau:

    * When the Server process is stared, the PGA is allocated: Khi một tiến trình Server được khởi động, PGA sẽ được cấp phát và sẽ được thu hồi khi tiến trình ngắt quãng hoặc dừng lại và chỉ được sử dụng bởi duy nhất một process.

    Như mô hình trên, các bạn sẽ thấy rằng sẽ có 2 loại Server là : Dedicated Server và Shared Server. Thực ra, khái niệm về Dedicated và Shared Server cũng gần giống như một mô hình ở đó 1 Server đáp ứng cho một User Process - Dedicated Server, và 1 Server đáp ứng cùng một lúc với nhiều User Process.

    Trong Fund I này, chúng ta sẽ không thảo luận nhiều về 2 mô hình Dedicated và Shared Server (bởi vì cái chúng ta cần là ngâm cứu các thành phần riêng biệt của Instance và Database mà. )

    Giải thích: PGA là một vùng nhớ chứa đựng thông tin về dữ liệu và điều khiển cho một tiến trình Server (Single Server Process) hoặc một tiến trình ngầm (Single Background Process). Trái ngược với SGA được chia sẻ cho nhiều tiến trình, PGA là một vùng nhớ chỉ được sử dụng bởi duy nhất một tiến trình. Sự biến thiên của vùng nhớ PGA phụ thuộc bởi một Instance đang chạy trong môi trường Dedicated Server hay là Shared Server. Nói chung, PGA bao gồm các thành phần như sau:
    - Private SQL Area
    - Session Memory
    - SQL Work Area

    Có một số sự khác nhau giữa việc cấp phát vùng nhớ cho PGA trong Dedicated Server và Shared Server, tuy nhiên, nó không nằm trong phạm vi Fund I, do đó, tôi xin không đưa ra chi tiết.
    ITGATEVN - Cộng đồng IT Việt Nam
    http://www.itgatevn.com.vn


  6. #16
    Ngày gia nhập
    08 2006
    Nơi ở
    Hà Nội
    Bài viết
    112

    Mặc định Kiến trúc Oracle

    Trước khi chúng ta đi vào tìm hiểu các thành phần, tính chất và nội dung của từng thành phần nằm trong nhóm tiến trình ngầm, tôi xin được đưa ra hình minh họa dưới đây kèm theo lời giải thích.



    Kiến trúc Oracle bao gồm 5 tiến trình ngầm (từ đây, xin được viết theo thuật ngữ - Background Process) bắt buộc. Có thêm một vài Background Processes rất quan trọng nữa nằm trong danh sách của Oracle, khi khởi động một Instance, các Background Process này sẽ được Turn on Option của chúng (đặt ở chế độ ON/OFF), tuy nhiên các Background Processes này lại không được giới thiệu trong Fund I, ngoại trừ duy nhất ARCn - Archiver sẽ được giới thiệu bổ sung trong chương quản lý Redo Log Files.
    ITGATEVN - Cộng đồng IT Việt Nam
    http://www.itgatevn.com.vn


  7. #17
    Ngày gia nhập
    08 2006
    Nơi ở
    Hà Nội
    Bài viết
    112

    Mặc định Background Process - Database Wirter (DBWn)



    Background Process DBWn sẽ ghi lại khi xảy ra một trong các sự kiện sau:
    - Checkpoint xuất hiện (khái niệm checkpoint chúng ta sẽ bàn ở chương Quản lý Redo Log File)
    - Dirty buffers đạt ngưỡng
    - Không có bất kỳ Free Buffer
    - Thời gian ngừng xuất hiện
    - Yêu cầu về kiểm tra mô hình RAC (Real Application Cluster - mô hình này không được xem xét tới trong phạm vi Fund I)
    - Tablespace đặt trong tình trang OFFLINE hay READ ONLY(Tablespace là một thành phần cực kỳ quan trọng trong Oracle Database, khái niệm, quản lý và cấp phát chúng ra sao sẽ có một chương riêng biệt)
    - Table bị DROP hoặc TRUNCATE (DROP và TRUNCATE là 2 câu lệnh nằm trong nhóm DDL - Data Definition Language - Volume Introduction to SQL)
    - Tablespace được đặt tại trạng thái BEGIN BACKUP (trạng thái này sẽ được bàn đến trong Fund II - phần Backup và Recovery)

    Giải thích: Khi tiến trình Server ghi lại việc thay đổi data blocks trong Database Buffer Cache hoặc để phục hồi, DBWn sẽ ghi lại những Dirty buffers (chúng ta có thể hiểu một cách nôm na Dirty Buffer là những vùng đệm lưu trữ nhưng không chính thức được ghi lại) từ Database Buffer Cache tới Data Files. Nó đảm bảo rằng, phải có một số lượng đủ và cần thiết của Free Buffer (Vùnd đệm được phép ghi đè ghi một tiến trình Server cần đọc blocks từ Data Files) chắc chắn có trong Database Buffer Cache. Việc thực thi Database do đó sẽ được cải thiện bởi vì các tiến trình của Server sẽ thay đổi chỉ ở trong Database Buffer Cache.
    Lưu ý: Tiến trình Server và tiến trình người dùng (Server Process và User Process) sẽ được tôi giới thiệu tại các bài sau.

    Một số khái niệm trên, có thể chúng ta chưa hình dung rõ cơ chế hoạt động của chúng, nhưng như tôi đã nói, với chương I, chỉ mang tính chất tham khảo và giới thiệu qua cho mọi người về kiến trúc của một Oracle Server, nên chúng ta không cần phải quá quan tâm đến công việc của từng thành phần, mà chỉ ghi nhớ sự hoạt động nào xảy ra khi chúng được gọi đến, nếu có.
    ITGATEVN - Cộng đồng IT Việt Nam
    http://www.itgatevn.com.vn


  8. #18
    Ngày gia nhập
    08 2006
    Nơi ở
    Hà Nội
    Bài viết
    112

    Mặc định Log Writer (LGWR)



    Background Process LGWR sẽ tiến hành công việc ghi lại một cách tuần tự từ Redo Log Buffer tới Online Redo Log File khi xuất hiện 1 trong các tình huống sau:
    - Khi một transaction commit (Transaction và Commit là 2 khái niệm nằm trong DCL - Data Control Language; Volume Introduction to SQL)
    - Khi Redo Log Buffer xuất hiện tình trạng one-third đã đầy (One - third là một khái niệm được mô tả trong chương quản lý Redo Log File, có thể giới thiệu sơ qua ở đây: Redo Log bao gồm ít nhất 2 Group dành riêng cho việc Undo, mỗi một Group có 3 members, cứ sau mỗi lần 1 Group được ghi đầy, thì sẽ có một Log Switch, tức là việc dịch chuyển từ Group này sang Group khác. Tình trạng One-third xuất hiện khi một trong 3 Group này đã đầy và xuất hiện Log Switch).
    - Khi có hơn 1MB việc thay đổi bản ghi trong Redo Log Buffer
    - Trước khi Background Process DBWn ghi lại việc sửa đổi các block trong Database Buffer Cache tới Data files.
    - Sau mỗi 3 giây.

    Bởi vì công việc Redo rất cần thiết cho việc phục hồi dữ liệu (Data Recovery), nên LGWR sẽ xác nhận tình trạng Commit chỉ sau khi Redo được ghi xuống Storage Unit (Bất kỳ thiết bị lưu trữ vật lý nào).
    ITGATEVN - Cộng đồng IT Việt Nam
    http://www.itgatevn.com.vn


  9. #19
    Ngày gia nhập
    08 2006
    Nơi ở
    Hà Nội
    Bài viết
    112

    Mặc định System Monitor



    Trong trường hợp Oracle Instance bị lỗi, bất kỳ thông tin nào trong SGA đều không được ghi xuống thiết bị lưu trữ và bị mất, hay lỗi xảy ra đối với OS cũng có thể là nguyên nhân gây ra lỗi ở Oracle Instance. Sau khi việc thất thoát này xảy ra, Background Process sẽ tự động thực thi việc phục hồi Instance khi Database được start trở lại (lưu ý một chút: Tất cả những hoạt động của Background Process đều có một câu hỏi trong bất kỳ software dùng để thi nào). Công việc phục hồi một Instance sẽ bao gồm các bước sau:
    - Roll thẳng đến việc trở lại việc phục hồi dữ liệu chưa được ghi lại trong data files nhưng không ghi xuống Online Redo Log File. Các dữ liệu này sẽ không được ghi xuống thiết bị lưu trữ bởi vì việc thất thoát của SGA trong suốt quá trình Instance bị lỗi. Với tiến trình này, SMON sẽ đọc những Online Redo Log Files và xác nhận sự thay đổi trong Online Redo Log File với data block.
    - Start Database mà users có thể truy cập vào. Bất kỳ dữ liệu bị khóa lại bởi transaction chưa được phục hồi sẽ ngay lập tức hiện hữu.
    - Roll ngược lại tới transaction chưa được phục hồi, và chúng sẽ được Roll Back trở lại bởi SMON hoặc bởi một tiến trình Server độc lập khi chúng truy cập vào dữ liệu bị khóa
    ITGATEVN - Cộng đồng IT Việt Nam
    http://www.itgatevn.com.vn


  10. #20
    Ngày gia nhập
    08 2006
    Nơi ở
    Hà Nội
    Bài viết
    112

    Mặc định Process Monitor - PMON



    Background Process PMON sẽ làm sạch sau khi những tiến trình bị lỗi:
    - Roll back (Roll back cũng là một khái niệm trong DCL - Volume Introduction to SQL) đến transaction hiện tại của users
    - Giải phóng toàn bộ những bảng và dòng bị khóa hiện tại
    - Giải phóng những tài nguyên hiện tại được giữ bởi user
    - Khởi động lại "dead dispatcher".
    Khái niệm Dead Dispatcher sẽ được trình bày trong môn Fund II
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    ITGATEVN - Cộng đồng IT Việt Nam
    http://www.itgatevn.com.vn


Các đề tài tương tự

  1. Tư vấn kiến trúc, ưu và nhược của nhà lệch tầng
    Gửi bởi tomitoan22jambon trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 11-10-2012, 08:53 AM
  2. Kiến trúc máy tính, tìm tài liệu ở đâu?
    Gửi bởi trang91tn trong diễn đàn Thắc mắc chung
    Trả lời: 3
    Bài viết cuối: 09-04-2011, 12:23 PM
  3. Mỗi tuần một chương trong kiến trúc Oracle!
    Gửi bởi trantuananh24hg trong diễn đàn Thủ thuật, Tutorials Database
    Trả lời: 19
    Bài viết cuối: 09-06-2007, 11:10 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn