IBM Guardium Kiến trúc của Database (SQL Server, Oracle) và các thành phần cốt lõi

Kiến trúc SQL Server

A. Tổng quan về kiến trúc​

Kiến trúc SQL Server được chia thành 3 phân vùng lớn, hoạt động phối hợp nhịp nhàng với nhau để xử lý một yêu cầu từ client đến khi trả kết quả:

Protocol Layer ⇒ Relational Engine ⇒ Storage Engine

1787031442611.png

Sơ đồ tổng quan kiến trúc SQL Server: Protocol Layer, Relational Engine và Storage Engine

1. Tầng giao thức / giao tiếp (Protocol Layer / SQL Server Network Interface)​

Tầng này chịu trách nhiệm thiết lập và xử lý kết nối giữa Client và Server. SQL Server Network Interface (SNI) hỗ trợ 3 phương thức kết nối:
  • TCP/IP: phương thức kết nối truyền thống thông qua địa chỉ IP của máy chủ, cho phép client kết nối từ xa qua Internet hoặc mạng LAN.
  • Named Pipes: cho phép client kết nối với SQL Server trong cùng một mạng nội bộ mà không cần biết địa chỉ IP của server, chỉ cần biết tên pipe (thư mục) kết nối.
  • Shared Memory: sử dụng khi client và server cùng nằm trên một máy vật lý duy nhất, giúp giao tiếp nhanh nhất vì không phải đi qua giao thức mạng.

1787031634689.png


Protocol Layer tiếp nhận kết nối qua TCP/IP, Named Pipes, Shared Memory

2. Bộ xử lý truy vấn (Relational Engine)​

Đây là phân vùng tiếp nhận câu lệnh từ Client gửi lên và xử lý câu lệnh đó trước khi giao xuống Storage Engine. Luồng xử lý gồm 3 bước chính:

Câu lệnh SQL gửi đến ⇒ CMD Parser phân tích cú pháp ⇒ Optimizer lập kế hoạch thực thi ⇒ Query Executor thực thi và trả kết quả
  • CMD Parser: phân tích cú pháp câu lệnh để đảm bảo câu lệnh viết đúng chuẩn, đồng thời dựng nên Query Tree (biểu diễn cấu trúc logic của câu truy vấn dưới dạng cây).
  • Optimizer: dựa trên Query Tree, tìm ra Query Plan để lấy dữ liệu hiệu quả nhất (vd quét toàn bộ bảng hay dùng index). Mục tiêu của Optimizer là kế hoạch có chi phí thấp nhất (cost-based) tức tốn ít CPU, I/O, bộ nhớ nhất, chứ không nhất thiết là kế hoạch nhanh nhất trong mọi trường hợp.
  • Query Executor: thực thi Query Plan, lấy dữ liệu từ Storage Engine và trả kết quả về cho Protocol Layer để gửi lại client.

1787032141491.png


Relational Engine: CMD Parser dựng Query Tree, Optimizer sinh Query Plan, Query Executor thực thi

3. Storage Engine​

Storage Engine chịu trách nhiệm lưu trữ và truy xuất dữ liệu trên hệ thống lưu trữ vật lý (Disk hoặc SAN), dữ liệu được tổ chức thành các data page kích thước 8 KB.
Khác với MySQL — nơi người dùng có thể tự chọn storage engine (InnoDB, MyISAM...) — SQL Server chỉ dùng một bộ máy lưu trữ cố định, tự quản lý việc trao đổi dữ liệu giữa bộ nhớ đệm và ổ đĩa vật lý.

Bên trong Storage Engine, 3 thành phần cốt lõi phối hợp với nhau:
  • Access Method: tiếp nhận câu lệnh và phân loại để định tuyến xử lý:
    • Nếu là câu lệnh đọc dữ liệu (Select Statement) ⇒ chuyển thẳng tới Buffer Manager.
    • Nếu là câu lệnh ghi dữ liệu (Non-select Statement như Insert, Update, Delete) ⇒ chuyển qua Transaction Manager để ghi log trước khi thao tác với dữ liệu trong bộ nhớ.
  • Buffer Manager: quản lý Buffer Pool (Data Cache)Plan Cache.
    • Plan Cache: lưu lại các Query Plan đã sử dụng. Khi gặp lại câu lệnh cũ, SQL Server lấy ngay plan có sẵn thay vì phân tích và tối ưu lại từ đầu ⇒ tăng tốc độ xử lý.
    • Buffer Pool: chứa các data page. Khi cần dữ liệu, hệ thống kiểm tra Buffer Pool trước; nếu chưa có, nó nạp trang dữ liệu từ đĩa vật lý lên. Khi bộ nhớ đầy, các trang dữ liệu đã thay đổi nhưng chưa ghi xuống đĩa (dirty page) mới được đẩy xuống Data File.
  • Transaction Manager: quản lý các transaction làm thay đổi dữ liệu (INSERT, UPDATE, DELETE), đảm bảo tính nhất quán và toàn vẹn dữ liệu, thông qua:
    • Log Manager: ghi lại mọi thay đổi dữ liệu vào transaction log, phục vụ recovery và rollback transaction khi có lỗi hoặc sự cố.
    • Lock Manager: khóa các bản ghi/đối tượng dữ liệu để nhiều transaction không can thiệp lẫn nhau, đồng thời giúp phát hiện và ngăn deadlock — tình trạng hai hay nhiều transaction chờ nhau giải phóng lock, không thể tiếp tục.
    • Write-Ahead Logging (WAL): mọi thay đổi dữ liệu phải được ghi vào transaction log trước khi được ghi xuống đĩa, giúp bảo vệ dữ liệu khỏi mất mát khi hệ thống gặp sự cố.
    • Lazy Writer: tiến trình chạy nền, ghi các dirty page từ cache xuống đĩa để giải phóng bộ nhớ và duy trì hiệu năng hệ thống.

B. Cấu trúc lưu trữ vật lý​

Dữ liệu của SQL Server trên đĩa vật lý được tổ chức thông qua các loại file sau:
  • Log file (.ldf): ghi lại toàn bộ nhật ký (transaction log) về các thay đổi dữ liệu.
  • Data file (.mdf/.ndf): gồm primary file (.mdf — bắt buộc, duy nhất) và secondary file (.ndf — tùy chọn, có thể nhiều file).
  • File Group: SQL Server cho phép nhóm nhiều data file vật lý lại thành một File Group để quản lý không gian lưu trữ một cách thuận tiện và hiệu quả hơn.

Kiến trúc logic của SQL Server​

Về mặt logic, các đối tượng của SQL Server được tổ chức theo thứ bậc:
1787032918650.png


Kiến trúc logic: Server chứa Database, Database chứa Schema, Schema chứa các object

Database: đơn vị lưu trữ độc lập trên một Server, có thể attach/detach tách rời khỏi Server.

Schema: một namespace logic bên trong Database, dùng để nhóm các object lại với nhau (schema mặc định là dbo).

Table: nơi lưu trữ dữ liệu thật.

View: một truy vấn được lưu lại, đóng vai trò như "bảng ảo", không lưu trữ dữ liệu thật.

Stored Procedure, Function: các khối lệnh T-SQL được lập trình sẵn, có thể gọi lại nhiều lần.

Synonym: bí danh (alias) trỏ đến một object khác, kể cả object nằm ở Database khác.

Mỗi Database tương ứng với một bộ file vật lý riêng (.mdf, .ldf...) và có metadata riêng biệt, độc lập với các Database khác trên cùng Server.

Hệ thống Data Catalog và Metadata​

SQL Server sở hữu hệ thống bảng danh mục dữ liệu (data catalog) chặt chẽ, giúp quản trị viên dễ dàng truy vấn thông tin hệ thống thông qua 2 schema lớn:
  • sys (system schema): chứa các bảng/view hệ thống lưu thông tin hoạt động của SQL Server, vd sys.objects, sys.views, sys.procedures...
  • INFORMATION_SCHEMA: cung cấp thông tin chi tiết, chuẩn hóa theo ANSI về cấu trúc dữ liệu, ví dụ INFORMATION_SCHEMA.TABLES, INFORMATION_SCHEMA.COLUMNS... từ đó có thể kiểm tra chi tiết các cột trong bảng, thời điểm tạo, tài khoản tạo hay lịch sử cập nhật cấu trúc bảng.


Kiến trúc Oracle Database

A. Tổng quan​

1. Kiến trúc và cấu trúc​

  • Về kiến trúc: mô tả mối quan hệ, vai trò của các thành phần và luồng xử lý dữ liệu trong Oracle Database.
  • Về cấu trúc: mô tả các thành phần cấu thành nên Oracle Database, bao gồm Memory, Process và Storage.
Một hệ thống Oracle Database bao gồm 2 thành phần chính: InstanceDatabase.

1787033818870.png


Instance (Memory + Process) và Database (các file vật lý trên Storage)

Instance ⇒ tập hợp Memory StructureProcess Structure, được cấp phát khi Oracle khởi động, tồn tại tạm thời trong RAM.

Database ⇒ tập hợp các file vật lý trên Storage, dùng để lưu trữ dữ liệu và metadata của database, tồn tại lâu dài trên đĩa.

B. Phân tích chi tiết kiến trúc Oracle Database​

1. Kiến trúc Memory​

Bộ nhớ của Oracle được chia thành 2 vùng lớn: System Global Area (SGA)Program Global Area (PGA).

1.1. Program Global Area (PGA)​

PGA ⇒ vùng bộ nhớ private (riêng), được cấp phát và sử dụng bởi một Oracle process duy nhất, không chia sẻ với process khác.

1787033854858.png


PGA là vùng nhớ riêng của từng Server Process / Background Process

PGA tiêu chuẩn gồm 4 thành phần bộ nhớ chủ yếu:
  • Private SQL Area: lưu dữ liệu riêng của câu lệnh SQL đang thực thi trong phiên đó, ví dụ thông tin về các bind variable.
  • Cursor và SQL Area: chứa thông tin về các con trỏ (cursor) đang mở để xử lý tập kết quả truy vấn.
  • Session Memory: lưu các session variable, thông tin đăng nhập và trạng thái của phiên làm việc hiện tại.
  • Work Area: vùng nhớ phục vụ các thao tác xử lý dữ liệu tốn nhiều bộ nhớ như sắp xếp (ORDER BY, GROUP BY), băm (hash join), hoặc tạo bitmap.

1.2. System Global Area (SGA)​

SGA ⇒ vùng bộ nhớ shared (dùng chung) của Oracle Instance, được mọi Server Process và Background Process truy cập, bao gồm các thành phần:

1787033889443.png


Cấu trúc SGA: Database Buffer Cache, Redo Log Buffer, Shared Pool, Large Pool, Java Pool, Streams Pool

1.2.1. Database Buffer Cache​

Oracle cần truy xuất dữ liệu ⇒ kiểm tra Database Buffer Cache ⇒ nếu data block đã có trong Buffer Cache ⇒ lấy dữ liệu trực tiếp từ Memory ⇒ trả kết quả.

Nếu data block chưa có trong Buffer Cache ⇒ Oracle đọc data block từ Data File trên Disk ⇒ đưa data block vào Database Buffer Cache ⇒ xử lý và trả kết quả ⇒ những lần truy xuất sau có thể lấy dữ liệu từ Memory thay vì Disk ⇒ tăng hiệu năng truy xuất.

1.2.2. Shared Pool​

SQL được gửi đến OracleShared Pool tiếp nhận câu lệnhLibrary Cache kiểm tra SQL/cursor đã tồn tại hay chưa ⇒ nếu có thể tái sử dụng thì dùng lại Execution Plan có sẵn ⇒ nếu chưa có thì Oracle phân tích câu lệnh — kiểm tra cú pháp, đối tượng được dùng và quyền truy cập thông qua Data Dictionary Cache ⇒ Oracle xác định Execution Plan tối ưu ⇒ lưu SQL và Execution Plan vào Library Cache ⇒ những lần thực hiện sau có thể tái sử dụng, giúp tăng hiệu năng.

1.2.3. Redo Log Buffer​

Thực hiện thao tác làm thay đổi dữ liệu (INSERT, UPDATE, DELETE) ⇒ Oracle tạo Redo Information mô tả thay đổi ⇒ lưu tạm vào Redo Log BufferLGWR ghi Redo Information từ buffer xuống Online Redo Log Files ⇒ phục vụ Database Recovery khi cần.

1.2.4. Large Pool​

Oracle thực hiện các tác vụ cần vùng nhớ lớn, dùng riêng ⇒ sử dụng Large Pool thay vì Shared Pool ⇒ phục vụ các hoạt động như RMAN Backup/Restore, Shared Server, Parallel Execution.

1.2.5. Java Pool​

Oracle thực hiện các tác vụ liên quan đến Java ⇒ sử dụng Java Pool ⇒ cấp bộ nhớ cho Java stored procedure và JVM chạy bên trong Oracle Database.

1.2.6. Streams Pool​

Oracle thực hiện các tác vụ liên quan đến Oracle Streams ⇒ sử dụng Streams Pool ⇒ cấp bộ nhớ cho các hoạt động streaming và replication dữ liệu.

2. Kiến trúc Process​

2.1. Các loại Process​

  • User Process ⇒ process do người dùng tạo ra ⇒ gửi yêu cầu kết nối và các câu lệnh SQL đến Oracle Database ⇒ nằm phía Client, không thuộc Instance.
  • User Process kết nối đến Oracle Instance ⇒ Oracle tạo hoặc gán một Server Process để xử lý yêu cầu ⇒ Server Process thực thi SQL và tương tác với SGA.
  • Server Process ⇒ phục vụ trực tiếp cho User Process ⇒ sử dụng PGA riêng cho chính nó, đồng thời truy cập SGA dùng chung của Instance ⇒ xử lý câu lệnh và trả kết quả về cho User Process.
  • Background Process ⇒ các tiến trình chạy nền do Oracle quản lý ⇒ đảm nhiệm các nhiệm vụ như ghi dữ liệu, ghi redo, khôi phục (recovery), giám sát hệ thống ⇒ giữ cho Oracle Instance hoạt động ổn định.

2.2. Các Background Process quan trọng​

2.2.1. Database Writer DBWn​

Database Buffer Cache ⇒ chứa các data block đã được đọc từ Datafile ⇒ khi dữ liệu trong block bị thay đổi ⇒ block trở thành dirty block ⇒ dirty block cần được ghi trở lại Datafile.

Dirty block ⇒ được DBWn ghi từ Database Buffer Cache xuống Datafile ⇒ dữ liệu trong Memory được đồng bộ với Database trên Disk.

DBWn không chỉ ghi khi Buffer Cache đầy — nó còn ghi khi có quá nhiều dirty block, khi xảy ra Checkpoint, khi cần giải phóng buffer để nạp block mới, hoặc trong một số tình huống khác.

Checkpoint xảy ra ⇒ CKPT cập nhật thông tin checkpoint ⇒ báo cho DBWn ⇒ DBWn ghi các dirty block liên quan xuống Datafile.

2.2.2. Log Writer — LGWR​

DML làm thay đổi dữ liệu ⇒ Oracle tạo Redo Information ⇒ lưu vào Redo Log BufferLGWR ghi Redo Information xuống Online Redo Log Files.

Transaction thực hiện COMMIT ⇒ LGWR ghi Redo liên quan xuống Online Redo Log Files ⇒ đảm bảo Redo đã được ghi an toàn ⇒ Oracle mới xác nhận COMMIT thành công.

LGWR còn được kích hoạt ghi khi Redo Log Buffer đạt khoảng 1/3 dung lượng, hoặc theo chu kỳ thời gian — tuy nhiên không nên ghi nhớ máy móc là cứ đúng 3 giây ghi một lần, vì thời điểm LGWR ghi phụ thuộc nhiều điều kiện khác nhau.

Online Redo Log hiện tại đầy ⇒ xảy ra Log Switch ⇒ Oracle chuyển sang Redo Log Group tiếp theo ⇒ LGWR tiếp tục ghi Redo vào group mới.

Nguyên tắc quan trọng: LGWR luôn ghi Redo xuống đĩa trước khi DBWn được phép ghi dirty block tương ứng xuống Datafile — đây chính là cơ chế Write-Ahead Logging.

2.2.3. Checkpoint — CKPT​

Checkpoint xảy ra ⇒ CKPT ghi/cập nhật Checkpoint SCN vào Control FileDatafile Header ⇒ đồng thời báo cho DBWn ghi các dirty block cần thiết xuống Datafile.

CKPT ⇒ đánh dấu một mốc mà Oracle dùng để xác định trạng thái cần recovery ⇒ giúp giảm lượng Redo cần xử lý khi Instance Recovery.

Checkpoint SCN được ghi vào Control File và Datafile Header ⇒ Oracle dùng thông tin SCN này để theo dõi và đảm bảo tính nhất quán phục vụ Recovery.

2.2.4. Process Monitor — PMON​

Server Process/User Process bị lỗi hoặc kết nối bị ngắt bất thường ⇒ PMON phát hiện ⇒ thực hiện cleanup các tài nguyên liên quan ⇒ giải phóng tài nguyên/process state không còn dùng ⇒ giúp Instance tiếp tục hoạt động bình thường.

PMON ⇒ ngoài việc cleanup process lỗi ⇒ còn tham gia đăng ký/thông báo thông tin Instance với Listener trong cơ chế Dynamic Service Registration.

Tóm gọn: process chết bất thường ⇒ PMON dọn dẹp ⇒ giải phóng tài nguyên.

2.2.5. System Monitor — SMON​

Oracle Instance bị lỗi hoặc mất điện ⇒ Instance shutdown bất thường ⇒ khi Database khởi động lại ⇒ SMON thực hiện Instance Recovery ⇒ dùng Redo để Roll Forward khôi phục các thay đổi cần thiết ⇒ sau đó Roll Back các transaction chưa commit ⇒ Database trở về trạng thái nhất quán.

SMON ⇒ ngoài Instance Recovery ⇒ còn thực hiện một số tác vụ system-level cleanup và quản lý temporary segment trong một số trường hợp.

Luồng quan trọng nhất: Instance Failure ⇒ Database Startup ⇒ SMON ⇒ Instance Recovery ⇒ Database trở về trạng thái nhất quán.

2.2.6. Archiver — ARCn​

LGWR ghi Redo ⇒ Redo được ghi lần lượt vào các Online Redo Log Group ⇒ khi Redo Log Group hiện tại đầy ⇒ xảy ra Log Switch ⇒ chuyển sang Redo Log Group tiếp theo.

Nếu Database chạy ở ARCHIVELOG mode ⇒ Redo Log Group cũ cần được lưu lại trước khi bị ghi đè ⇒ ARCn đọc Online Redo Log ⇒ sao chép nội dung sang Archived Redo Log ⇒ Redo Log Group cũ được giải phóng để tái sử dụng.

Vd: Group 1 đầy ⇒ Log Switch ⇒ chuyển sang Group 2 ⇒ ARCn archive Group 1 ⇒ Group 1 được đánh dấu có thể tái sử dụng sau khi đáp ứng điều kiện cần thiết. Tương tự, Group 2 đầy ⇒ Log Switch ⇒ chuyển sang Group 3 ⇒ ARCn archive Group 2 ⇒ quá trình tiếp tục luân phiên.

Lưu ý: ARCn chỉ hoạt động khi Database ở ARCHIVELOG mode.

2.2.7. Manageability Monitor — MMON​

Oracle Database hoạt động ⇒ MMON thu thập các performance metrics và thông tin thống kê ⇒ lưu trữ để phục vụ theo dõi hiệu năng ⇒ hỗ trợ Automatic Workload Repository (AWR) và các cơ chế quản lý hiệu năng của Oracle.

Tóm gọn: Database hoạt động ⇒ MMON thu thập performance metrics ⇒ lưu/ghi nhận thông tin hiệu năng ⇒ phục vụ monitoring và performance tuning.

3. Kiến trúc Storage​

3.1. Cấu trúc lưu trữ logic​

1787033959597.png


Quan hệ giữa Data Block, Extent, Segment và Datafile

Data Block ⇒ đơn vị lưu trữ nhỏ nhất của Oracle Database ⇒ chứa dữ liệu của bảng, index... ⇒ được lưu bên trong Datafile.

Extent ⇒ một tập hợp các Data Block liên tiếp, được cấp phát cho một đối tượng ⇒ khi một Segment cần thêm không gian ⇒ Oracle cấp phát thêm Extent.

Segment ⇒ tập hợp các Extent thuộc về một Database Object, ví dụ Table Segment, Index Segment ⇒ Segment đại diện cho toàn bộ không gian mà object đó sử dụng.

Tablespace ⇒ đơn vị lưu trữ logic lớn hơn, chứa một hoặc nhiều Segment ⇒ được tạo thành từ một hoặc nhiều Datafile.

Tổng kết theo thứ bậc: Tablespace ⇒ Datafile ⇒ Segment ⇒ Extent ⇒ Data Block.

3.2. Các loại file trong Oracle Database​

1787033970481.png


Các loại file vật lý cấu thành Oracle Database

3.2.1. Parameter File​

Parameter File ⇒ lưu các tham số cấu hình của Instance, ví dụ số lượng process tối đa, kích thước vùng nhớ, vị trí Control File... ⇒ khi Instance khởi động ⇒ Oracle đọc Parameter File để biết cách khởi tạo Instance.

Tóm gọn: Parameter File ⇒ cung cấp thông tin cấu hình ⇒ Oracle Instance được khởi tạo.

3.2.2. Password File​

Password File ⇒ lưu thông tin xác thực dành cho một số administrative user, đặc biệt phục vụ kết nối quản trị như SYSDBA/SYSOPER.

Khi Database chưa OPEN ⇒ chưa thể xác thực quản trị hoàn toàn dựa trên Database ⇒ Password File cung cấp cơ chế xác thực nằm ngoài Database.

Tóm gọn: Database chưa mở ⇒ vẫn cần Admin đăng nhập để startup/mount/open Database ⇒ Password File hỗ trợ xác thực Administrative User.

3.2.3. Control File​

Control File ⇒ chứa metadata quan trọng để Oracle quản lý Database, ví dụ tên Database, Database identifier, thông tin Datafile, Redo Log File, Checkpoint information...

Instance khởi động ⇒ đọc Parameter File ⇒ biết vị trí Control File ⇒ đọc Control File ⇒ nắm được cấu trúc vật lý của Database.

3.2.4. Datafile​

Datafile ⇒ file vật lý lưu trữ dữ liệu của Database trên Disk ⇒ chứa các Data Block ⇒ các block này được Oracle đọc từ Datafile ⇒ đưa vào Database Buffer Cache ⇒ xử lý trên Memory.

Datafile lưu dữ liệu lâu dài trên Disk, trong khi Database Buffer Cache chỉ lưu tạm thời các Data Block đang được sử dụng trên Memory.

3.2.5. Redo Log File​

Database thực hiện thay đổi ⇒ Oracle tạo Redo Information ⇒ lưu vào Redo Log Buffer ⇒ LGWR ghi xuống Online Redo Log File.

Redo Log File ⇒ lưu thông tin về các thay đổi của Database (phát sinh từ hoạt động của User lẫn hoạt động nội bộ của Oracle) ⇒ phục vụ Recovery khi xảy ra sự cố.

3.2.6. Archived Log File​

Online Redo Log Group đầyLog Switch ⇒ nếu Database ở ARCHIVELOG modeARCn sao chép Redo Log Group cũ ⇒ tạo Archived Redo Log ⇒ lưu lại lịch sử Redo.

Archived Log không đơn thuần là "bản sao Redo Log File" — nó là bản sao nội dung của Redo Log Group đã được archive, lưu trữ lâu dài hơn, phục vụ Media Recovery, Backup và Point-in-Time Recovery.

3.2.7. Backup File​

Database cần backup ⇒ Oracle/DBA dùng công cụ như RMAN ⇒ tạo các Backup File ⇒ lưu bản sao cần thiết của Database/Control File/Archived Log... ⇒ sử dụng khi cần Restore/Recovery.

4. Trạng thái khởi động của Oracle Database​

Oracle Database khởi động tuần tự qua 4 trạng thái:

SHUTDOWN ⇒ NOMOUNT ⇒ MOUNT ⇒ OPEN

4.1. SHUTDOWN​

SHUTDOWN ⇒ Oracle Instance không hoạt động ⇒ SGA chưa được cấp phát, Background Process chưa chạy ⇒ Database chưa được mở.

4.2. NOMOUNT​

STARTUP NOMOUNT ⇒ Oracle đọc Parameter File ⇒ lấy thông tin cấu hình và vị trí Control File ⇒ cấp phát SGA ⇒ khởi động Background Process ⇒ Oracle Instance được tạo ⇒ chưa đọc Control File ⇒ Database chưa được Mount.

Tóm gọn: Parameter File ⇒ Memory + Background Process ⇒ Instance được khởi động ⇒ NOMOUNT.

4.3. MOUNT​

Từ NOMOUNT ⇒ Oracle dùng thông tin từ Parameter File ⇒ tìm đến Control File ⇒ đọc Control File ⇒ Instance biết cấu trúc vật lý của Database ⇒ Database được Mount.

MOUNT ⇒ Control File đã được mở, Oracle biết Datafile và Redo Log File nằm ở đâu ⇒ nhưng chưa cho User truy cập dữ liệu.

4.4. OPEN​

Từ MOUNT ⇒ Oracle kiểm tra trạng thái Database, đảm bảo tính nhất quán ⇒ nếu Database cần Instance Recovery ⇒ dùng Redo Log để recovery ⇒ hoàn tất Recovery ⇒ OPEN Database ⇒ User có thể truy cập dữ liệu.

Tóm gọn: MOUNT ⇒ kiểm tra thông tin Recovery/SCN ⇒ nếu Database cần Recovery ⇒ SMON thực hiện Instance Recovery bằng Redo ⇒ Recovery hoàn tất ⇒ OPEN.
 
Back
Top