Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 30 kết quả

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

  1. #1
    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

    Oracle Server được chia thành 2 thành phần chính: Oracle Database và Oracle Instance. Trong từng thành phần của Oracle, lại được chia thành các thành phần nhỏ hơn, mỗi một thành phần này đều được quản lý bằng Auto hoặc Manually. Các bạn có thể down file Orace Server Architecture (đính kèm dưới) để có cái nhìn tổng quan hơn. Hy vọng rằng, cùng với ngôn ngữ C, chúng ta sẽ có thêm kiến thức về một trong những hệ quản trị CSDL lớn là Oracle. Tôi rất vui lòng được trao đổi về những kiến thức đã được học với mọi người.

    Note: Trong Oracle, Pro C là thành phần không thể thiếu đối với Programmer, ngoài PL/SL, Pro C còn được biết đến như một ngôn ngữ điều khiển rất mạnh.
    Attached Files Attached Files
    ITGATEVN - Cộng đồng IT Việt Nam
    http://www.itgatevn.com.vn


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

    Tôi xin được lấy luôn cái thread này làm chủ đề cho bài post ngày hôm nay, vì trong giới hạn, sẽ không thể post nguyên một chương, do đó, tôi sẽ chia thành từng phần nhỏ.

    Chương I/ Tổng quan về các thành phần chính.
    Kiến trúc Oracle bao gồm một số các thành phần chính như sau:

    *Oracle Server: Là tập hợp các file, tiến trình (processes) và cấu trúc bộ nhớ trong Oracle Server.
    - Chú ý:Đối với phần cấu trúc bộ nhớ, tôi chắc sẽ có một vài người đặt câu hỏi Oracle là một soft - production, tại sao lại liên quan đến cấu trúc bộ nhớ, xin thưa, bộ nhớ và quản lý bộ nhớ trong Oracle liên quan tới rất nhiều chương, đối với Logical components là những thiết lập parameter sao cho phù hợp, đối với Physical Memory, chính là Virtual Memory của bộ nhớ thực trong máy tính; riêng đối với phần Virtual Memory, Fund I chỉ dừng lại ở mức khái niệm, các cách thức tối ưu hóa bộ nhớ để Oracle chạy ổn định ra sao, sẽ được bàn đến trong môn học Tuning)

    Tuy nhiên, không phải tất cả các thành phần này sẽ được sử dụng khi thực hiện một câu lệnh SQL, một số trong số chúng được dùng để hỗ trợ và cải thiện phần thực thi của database, để đảm bảo rằng database sẽ được phục hồi (recover) tại một thời điểm xảy ra sự kiện nào đó gây ra lỗi cho phần mềm hoặc phần cứng (Lấy ví dụ: System Crash là một nguyên nhân dẫn đến tình trạng phục hồi database).

    Oracle Server bao gồm 2 thành phần chính là: Oracle Instance và Oracle Database.

    * Oracle Instance: Là một tập hợp các tiến trình ngầm và cấu trúc bộ nhớ. Instance bắt buộc phải được khởi động để truy cập vào dữ liệu trong cơ sở dữ liệu (Database). Mỗi một thời gian Instance được khởi động, một SGA - System Global Area được chỉ định và các tiến trình ngầm của Oracle cũng sẽ được khởi động. Các tiến trình ngầm thực thi một số các hàm mà các hàm này có chức năng thay mặt cho các tiến trình thực hiện. Chúng thực thi các hàm này một cách chặt chẽ, mặt khác, lại được Oracle quản lý bằng nhiều chương trình khác nhau đối với một user. Các tiến trình ngầm thực thi việc vào ra Input/Output (I/O) và giám sát các tiến trình khác của Oracle nhằm tối ưu hóa các hoạt động.

    *Oracle Database: Một Oracle database là một tập hợp các file hệ thống được hiểu như các file Database mà cung cấp các thông tin về những thiết bị lưu trữ vật lý và thông tin về Database. Những file Database được sử dụng để đảm bảo rằng dữ liệu được quản lý một cách chắc chắn và có thể được phục hồi nếu có trường hợp Error xảy ra của một Instance.

    *Một số file chính khác: Ko phải là những file Database, được dùng để thiết lập các Instance, xác nhận quyền hạn cho user và phục hồi dữ liệu trong trường hợp thiết bị lưu trữ bị failed. (Xem mô hình - diagram của Oracle Server).

    *Các tiến trình dành cho Server và User: Các tiến trình này được đòi hỏi như những tiến trình chạy chính khi một câu lệnh SQL được thực thi, tuy nhiên, các tiến trình khác cũng có thể giúp cho Server hoàn thành việc thực hiện một câu lệnh SQL.

    *Một số các tiến trình khác: Có nhiều tiến trình tồn tại và được sử dụng bởi những tính năng khác nhau, ví dụ: Advanced Queing, Real Application Cluster, Shared Server, Advanced Replication...

    Trên đây là mô hình chung cho Oracle, từ đây trở đi, một số thuật ngữ tôi sẽ để nguyên, không chuyển sang tiếng Việt, giúp cho mọi người không bị loãng.
    Bài tiếp theo, tôi sẽ giới thiệu về Oracle Database, các thành phần của Oralce Database..
    ITGATEVN - Cộng đồng IT Việt Nam
    http://www.itgatevn.com.vn


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





    Mục đích chung của một Database là để lưu trữ và lấy các thông tin liên quan. Một Oracle Database là một tập hợp của cấu trúc vật lý - Physical và cấu trúc logic - Logical. Cấu trúc Physical của một Database là một tập hợp các file hệ thống trong một Database. Một Oralce Database bao gồm 3 loại file chính sau:
    - Data Files: Bao gồm những dữ liệu thực, hiện có trong Database
    - Online Redo Log Files: Bao gồm các bản ghi việc thay đổi Database (Có thể phục hồi lại data - dữ liệu trong tình huống bị lỗi - failure)
    - Control Files: Bao gồm các thông tin cần thiết dùng để bảo trì và quản lý, xác nhận tính toàn vẹn của Database.

    Một số các loại cấu trúc file quan trọng khác:
    - Parameter Files: Được dùng để xác định các đặc điểm của một Oracle Instance. Lấy ví dụ: Nó bao gồm các tham số (parameters) xác định kích cỡ cấu trúc bộ nhớ trong một SGA - System Global Area.
    - Password Files: Xác nhận quyền hạn của users khi khởi động và tắt một Oracle Instance.
    - Archived Redo Log Files: Là những bản copy của Redo Log Files, rất cần thiết dành cho việc phục hồi data khi thiết bị lỗi - failure.

    Riêng đối với Oralce Database, từng thành phần kể cả các thành phần nằm ngoài sẽ được quản lý riêng biệt, và kiến thức dành cho việc quản lý này sẽ chia thành từng chương cho mỗi một thành phần.
    ITGATEVN - Cộng đồng IT Việt Nam
    http://www.itgatevn.com.vn


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


    3 thành phần thuộc cấu trúc vật lý của Oracle là:
    - Control Files
    - Data Files
    - Online Redo Log Files

    Với 3 thành phần này là những chương riêng biệt quản lý chúng.


    Oracle Instance là một tập hợp của các cấu trúc thành phần SGA (System Global Area) và các tiến trình ngầm (Background Processes) được sử dụng để quản lý một Database. Một Instance được xác định bởi các phương thức chỉ định tới hệ điều hành. Instance có thể mở và sử dụng một database tại một thời điểm

    Bây giờ, chúng ta sẽ đi tìm hiểu thêm về Memory Structure
    Memory Stucture bao gồm 2 vùng nhớ:
    - System Global Area (SGA): Được chỉ định khi một Instance được khởi động, và là thành phần cơ bản của một Oralce Instance
    - Program Global Area (PGA): Được chỉ định khi một Server Process được khởi động (PGA chúng ta sẽ bàn đến sau)



    * System Global Area là một tập hợp các cấu trúc bộ nhớ - memory sau:
    - Shared Pool
    - Database Buffer Cache
    - Redo Log Buffer
    Và có thêm 2 cấu trúc memory nằm ngoài. nhưng cũng được cấu hình ùng với SGA :
    - Large Pool
    - Java Pool.

    SGA còn được gọi là Shared Global Area, nó được sử dụng để lưu trữ thông tin về Database và chia sẻ bởi các tiến trình Database khác, nó bao gồm thông tin về dữ liệu - data, quản lý - control của Oracle Server và được chỉ định trong bộ nhớ ảo - virtual memory của máy tính sử dụng Oracle.

    Để có thể xem được phần chỉ định dành cho SGA là bao nhiêu, các bạn có thể dùng câu lệnh sau:

    SQL> Show SGA;

    *Dynamic SGA: Bắt đầu từ Oracle 9i, khái niệm Dynamic SGA là một khái niệm cho phép thực thi cơ sở hạ tầng thay đổi việc thiết lập SGA mà không cần phải Shutdown Instance.

    * Size (kích cỡ) của SGA được xác định bởi các tham số đầu vào (Initial Parameters) như sau:
    - DB_CACHE_SIZE: Size vùng đệm (cache) của một block chuẩn. Default - mặc định là 48MB trên UNIX và 52MB trên NT
    - LOG_BUFFER : Số lượng byte được chỉ định dành cho Redo Log Buffer
    - SHARED_POOL_SIZE: Size tính bằng đơn vị byte dành cho toàn bộ vùng chia sẻ của SQL và PL/SQL. Default là 16MB, với một số OS dùng chuẩn 64bit, mặc định sẽ là 64MB
    - LARGE_POOL_SIZE: Size dành riêng cho Large Pool, Default là 0 - Zero.
    - JAVA_POOL_SIZE: Size dành riêng cho Java Pool, Default là 24MB.
    Do đó, size dành cho SGA sẽ không được vượt quá parameter SGA_MAX_SIZE trừ đi giá trị của các parameter trên.

    Đến đây, các bạn có thể hỏi tôi: "Nếu tôi thấy hứng thú học Oracle, đồng ý và tán thành với bài viết của bạn, nhưng không lẽ, tôi cứ đọc chay mãi thôi sao?". Tất nhiên rằng, các bạn sẽ không học chay, bởi vì, một hai bài đầu chỉ là những kiến thức đầu tiên, do đó, với kinh nghiệm bản thân tôi, sẽ rất khó nhớ mãi đến tận những bài sau, khi chúng ta hình dung ra được thế nào là Oracle Server. Lời khuyên dành cho các bạn: Hãy ra ngoài tiệm đĩa CD - với giá chỉ...8000 VND, bạn có thể mang cả thế giới về nhà..

    Lời khuyên thứ 2: Các bạn có thể thắc mắc rằng, tôi không biết Install Oracle, đúng là vậy, bởi vì sẽ có rất nhiều những điều chúng ta không biết trong quá trình Install, do đó, nếu bất kỳ ai trong forum, cảm thấy khó khăn về việc Install Oracle, xin cứ PM bằng YM cho tôi, hoặc gửi email. Tôi sẽ vui lòng giải đáp cho các bạn.
    ITGATEVN - Cộng đồng IT Việt Nam
    http://www.itgatevn.com.vn


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

    Tôi chắc rằng, mọi người khi mới làm quen với một môi trường mới, tất nhiên sẽ gặp khó khăn trong việc tiếp xúc, làm quen và vận hành thật tốt, có thể ai đó cũng đã học qua Oracle, các bạn đó sẽ biết được rằng hệ thống chứng chỉ của Oracle có 2 chứng chỉ quan trọng nhất: OCA, OCP.

    OCA bao gồm 2 môn: Introduction to SQL và Fundamental I.
    OCP bao gồm 2 môn: Fundamental II và Tuning.

    Với OCA, 2 môn SQL và Fund I là 2 môn căn bản và quan trọng nhất để có thể tiếp xúc được với Oracle. Introduction to SQL là môn học giúp cho những người đầu tiên hiểu được ngôn ngữ sequel, thực tế, SQL không được gọi là một ngôn ngữ lập trình, điều này chắc hẳn ai cũng biết, SQL giúp cho người học có những kiến thức về truy vấn, thao tác truy vấn đối với Database. Fund I là môn học giới thiệu về kiến trúc Oracle, những thành phần cơ bản trong Oracle Server. 2 môn trên hoàn toàn độc lập với nhau về kiến thức, nhưng lại có sự quan hệ vô cùng chặt chẽ với nhau. Về ý kiến cá nhân của tôi: Với những người có điều kiện học Oracle, tất nhiên Introduction to SQL sẽ là môn học đầu tiên, nhưng không phải vì lý do như thế mà chúng ta - những người tự học lại phải tuân theo quy ước này. Lý do: Các câu lệnh truy vấn - query dùng trong môn Fund I, gần như chỉ dừng lại ở mức lấy thông tin từ các view động hoặc data dictionary, chứ không đi sâu vào việc sắp xếp, chọn hay nhóm thông tin như bắt buộc phải học ở môn Introduction to SQL.
    Do đó, tôi hoàn toàn có cơ sở để tin rằng, tôi post từng chương trong môn Fund I lên, sẽ giúp cho các bạn có cái nhìn tổng quan về kiến trúc Oracle.
    Tiếp theo đó, khi đã hoàn thành nhiệm vụ, tức là post đủ Volume Fund I, nếu có điều kiện, tôi sẽ post tiếp Volume Introduction to SQL.

    Xin cảm ơn mọi người đã ủng hộ, chúc mọi người sức khỏe và thành công!
    ITGATEVN - Cộng đồng IT Việt Nam
    http://www.itgatevn.com.vn


  6. #6
    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


    - SGA được xác định bởi tham số SGA_MAX_SIZE
    - Được chỉ định và ghi lại tại "granule"
    - Chỉ định tại vùng liền kề của Virtual Memory.

    Granule là một thuật ngữ chỉ việc cấp phát vùng nhớ liền kề với Virtual Memory, kích thước (Size) của một Granule phụ thuộc vào việc đánh giá tổng toàn bộ size của SGA. Như hình minh họa trên, tôi show ra giá trị size của parameter SGA_MAX_SIZE.

    Hình dưới minh họa cho thấy tổng toàn bộ size của SGA.

    Các thành phần khác (Database Buffer Cache, Shared Pool, và Large Pool) đều được cho phép lớn thêm hay thu gọn tùy thuộc vào khung xương Granule của chúng. Tại thời điểm một Instance được Startup, Oracle Server sẽ cấp phát đầu vào dành cho Granules, và một trong trong các Granule được dành cho không gian địa chỉ SGA_MAX_SIZE (đơn vị tính bằng byte). Khi Instance tiếp tục được load (Đừng ngạc nhiên khi tôi nói rằng một Instance được Startup không có nghĩa rằng nó được Startup một cách triệt để, có thêm từng giai đoạn Startup mà mỗi một giai đoạn đó là một trong những cách để thiết lập lại các tham số hoặc dùng để Recover, tuy nhiên, nó thuộc phạm vi các chương sau) thì nếu có bao nhiêu các thành phần, sẽ có bấy nhiêu các Granule tương ứng với chúng. Một SGA tối thiểu bao gồm 3 Granules, một dành cho Fixed SGA (bao gồm cả Redo Buffer), một dành cho Database Buffer Cache và một dành cho Shared Pool.
    ITGATEVN - Cộng đồng IT Việt Nam
    http://www.itgatevn.com.vn


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

    Mặc định Shared Pool



    Để kết thúc buổi tối ngày hôm nay, (11h roài, chuẩn bị...nghẻo chứ ) tôi sẽ giới thiệu với mọi người về Shared Pool. (Mọi người nhìn lại hình vẽ minh họa Shared Pool trong phần Oracle Instance).

    *Shared Pool được dùng để lưu trữ:
    - Hầu hết tất cả các câu lệnh đã được dịch (executed) SQL
    - Hầu hết các xác nhận data gần đây nhất (used data definition)
    *Nó bao gồm 2 việc thực thi các cấu trúc bộ nhớ liên quan:
    - Library Cache
    - Data Dictionary Cache
    * Được xác định kích cỡ (size) bằng tham số SHARED_POOL_SIZE

    Môi trường Shared Pool bao gồm 2 thành phần "Fixed Size" và "Variable Size". Cấu trúc Fixed là những phần có size có kích cỡ tương đối giống nhau, nhưng ngược lại, cấu trúc Variable Size lại có thể phát triển hoặc thu gọn lại dựa trên những yêu cầu chương trình của người dùng. Kích cỡ thực tế của Fixed và Variable được xây dựng dựa trên các tham số đầu vào và làm việc bằng một thuật toán ngầm định của Oracle.

    Kích cỡ cùa Shared Pool: Bởi vì Shared Pool được dùng để chia sẻ một cách toàn diện, ví dụ như kế hoạch thực thi một câu lệnh SQL, một gói - package PL/SQL, các Procedures, các hàm hay các thông tin về con trỏ, nên nó bắt buộc phải được xác định size để điều chỉnh một cách thích hợp với cả 2 vùng Fixed và Variable. Vùng nhớ được cấp phát dành cho Shared Pool được xác định bằng tham số - parameter SHARED_POOL_SIZE mà hình minh họa trên, tôi đã show ra. Tất nhiên, nó hoàn toàn có thể được Resize - điều chỉnh lại kích cỡ, và bằng câu lệnh ALTER SYSTEM SET. (Nhưng nên nhớ rằng, sau khi thực hiện câu lệnh này, nó phải tương ứng với tổng toàn bộ kích thước của SGA và không được vượt quá size của SGA_MAX_SIZE)



    Như hình minh họa ở trên, tôi set lại parameter Shared_Pool_Size của Oracle trở lại 32MB, hình trên tôi đang để ở 50MB. Tuy nhiên, khi tôi cố gắng set size của nó lên 64MB, thì Oracle thông báo rằng không đủ bộ nhớ để thiết lập tới 64MB.
    ITGATEVN - Cộng đồng IT Việt Nam
    http://www.itgatevn.com.vn


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

    Mặc định Giới thiệu về 3 môi trường làm việc chính trong Oracle

    Một số bạn sẽ có thể thắc mắc về môi trường làm việc trong Oracle, nhân tiện, tôi cũng xin giới thiệu sơ qua về 3 môi trường làm việc chính với Oracle

    - Môi trường đầu tiên là môi trường i*SQL/Plus


    Chữ "i" có nghĩa là Internet, đây là sản phẩm riêng biệt của Oracle dành cho môi trường mạng (Oracle 9i). Sau khi Install xong Oracle, nếu PC của bạn chỉ cần có network card, bạn có thể thiết lập môi trường dùng Browser IE hoặc FireFox. Ở môi trường i*SQL/Plus, công việc thường được làm là lấy thông tin và viết các script.


    - Môi trường thứ 2 là môi trường SQL*Plus, đây cũng là một sản phẩm của Oracle, và có từ bản Oracle 7. Môi trường này thường được dùng để thao tác truy vấn.



    - Môi trường thứ 3 là môi trường dùng command, trong môi trường này, thường được dùng để làm công tác quản trị hơn là lấy data.
    Do đó, với Volume Fund I, tôi dùng môi trường này, và các bạn đừng quá ngạc nhiên, nếu các bạn về nhà tìm mãi mà không thấy SQL> đâu nhé
    ITGATEVN - Cộng đồng IT Việt Nam
    http://www.itgatevn.com.vn


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


    Ngoài ra, trong Oracle, có thêm một công cụ nữa (chức năng và tính chất của WorkSheet tôi chưa tìm hiểu, nhưng hoàn toàn có thể làm việc như các công cụ trong môi trường đã nêu)
    ITGATEVN - Cộng đồng IT Việt Nam
    http://www.itgatevn.com.vn


  10. #10
    No Avatar
    embehoclaptrinh Khách

    Hay quá! anh Tuấn Anh cố gắng giữ phong độ như vậy nha.
    Nhân tiện anh có thể gửi cho em cái ebook của Introduction to SQL không?
    Nhỏ bạn em nó mượn sách rồi dọn nhà đi đâu không biết.Em tìm nó mượn lại sách mà không được.Cảm ơn anh trước.

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