Quản trị & Giám sát hệ thống với cơ sở dữ liệu ảo information_schema

Quản trị – Giám sát hệ thống CSDL MySQL

Liệt kê toàn bộ các bảng hệ thống trong schema INFORMATION_SCHEMA của MySQL, đây là “bộ não” của hệ quản trị, chứa siêu dữ liệu (metadata) mô tả mọi thứ trong hệ thống: cấu trúc, phân quyền, index, ràng buộc, engine, event, v.v.

 


🧭 1️⃣. Khái niệm tổng quan

INFORMATION_SCHEMAcơ sở dữ liệu ảo chứa thông tin mô tả:

  • Tên bảng, cột, kiểu dữ liệu
  • Index, khóa, ràng buộc
  • Quyền truy cập, vai trò
  • Cấu trúc engine (InnoDB, MyISAM, v.v.)
  • Thông tin tiến trình, cấu hình, plugin

👉 Khi cô hoặc học viên truy vấn:

SELECT * FROM INFORMATION_SCHEMA.TABLES;

thì MySQL không đọc dữ liệu người dùng, mà đọc thông tin mô tả (metadata) về cấu trúc dữ liệu.

🧱 2️⃣. Phân nhóm & Giải thích nội dung các bảng chính

Để dễ học, ta chia toàn bộ danh sách của nội dung các bảng dữ liệu trong cơ sở dữ liệu thành 7 nhóm chức năng chính.
Dưới đây là phần diễn giải, vai trò và ví dụ truy vấn cho từng nhóm.

🟦 NHÓM 1: THÔNG TIN CẤU TRÚC CƠ SỞ DỮ LIỆU

Bảng Ý nghĩa Ví dụ sử dụng
SCHEMATA Danh sách các CSDL (database) trên server SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA;
TABLES Danh sách bảng và engine của từng bảng SELECT TABLE_NAME, ENGINE FROM INFORMATION_SCHEMA.TABLES;
COLUMNS Mô tả chi tiết từng cột trong bảng SELECT COLUMN_NAME, DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='khobac';
PARTITIONS Thông tin chia partition của bảng SELECT * FROM INFORMATION_SCHEMA.PARTITIONS;
VIEWS Danh sách view trong hệ thống SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS;

📌 Ứng dụng: Kiểm tra cấu trúc nhanh của database, hỗ trợ công tác kiểm toán & giám sát cấu hình.

🟩 NHÓM 2: QUẢN LÝ QUYỀN & VAI TRÒ NGƯỜI DÙNG

Bảng Ý nghĩa Ví dụ
USER_PRIVILEGES Quyền của từng user trên toàn hệ thống SELECT * FROM INFORMATION_SCHEMA.USER_PRIVILEGES;
SCHEMA_PRIVILEGES Quyền của user trên từng schema SELECT * FROM INFORMATION_SCHEMA.SCHEMA_PRIVILEGES;
TABLE_PRIVILEGES, COLUMN_PRIVILEGES Quyền truy cập ở mức bảng/cột SELECT * FROM INFORMATION_SCHEMA.TABLE_PRIVILEGES;
APPLICABLE_ROLES, ENABLED_ROLES, ADMINISTRABLE_ROLE_AUTHORIZATIONS Liệt kê vai trò (role) mà người dùng được phép bật SELECT * FROM INFORMATION_SCHEMA.APPLICABLE_ROLES;

📌 Ứng dụng: Xây dựng bảng kiểm tra phân quyền định kỳ cho người dùng hệ thống (đặc biệt quan trọng trong môi trường Kho bạc).

🟧 NHÓM 3: RÀNG BUỘC & KHÓA

Bảng Ý nghĩa Ví dụ
TABLE_CONSTRAINTS, KEY_COLUMN_USAGE Thông tin khóa chính (PK), khóa ngoại (FK), unique SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS;
REFERENTIAL_CONSTRAINTS Quan hệ giữa các bảng qua khóa ngoại SELECT * FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS;
CHECK_CONSTRAINTS Các điều kiện kiểm tra (CHECK) trong bảng SELECT * FROM INFORMATION_SCHEMA.CHECK_CONSTRAINTS;

📌 Ứng dụng: Dùng để tái tạo mô hình ERD hoặc xác định quan hệ dữ liệu phục vụ phân tích.

🟥 NHÓM 4: INNODB – HẠ TẦNG LƯU TRỮ & HIỆU NĂNG

Bảng Ý nghĩa Ghi chú
INNODB_TABLES, INNODB_INDEXES, INNODB_TABLESTATS Mô tả cấu trúc vật lý của bảng InnoDB Giúp DBA kiểm tra file .ibd
INNODB_BUFFER_PAGE, INNODB_BUFFER_POOL_STATS Thống kê hoạt động của buffer pool Giám sát hiệu năng bộ nhớ
INNODB_TRX, INNODB_LOCKS (nếu bật Performance Schema) Giao dịch đang mở, khóa hiện tại Phát hiện deadlock
INNODB_METRICS Chỉ số thống kê hệ thống InnoDB Hiệu năng, I/O, cache
INNODB_DATAFILES, INNODB_TABLESPACES Thông tin tablespace vật lý Dành cho quản trị dung lượng

📌 Ứng dụng:

  • Giám sát trạng thái InnoDB buffer pool
  • Theo dõi transaction, lock, tối ưu hiệu năng

🟨 NHÓM 5: MÃ HÓA, NGÔN NGỮ & KIỂU DỮ LIỆU

Bảng Ý nghĩa
CHARACTER_SETS Liệt kê các bộ ký tự hỗ trợ (utf8mb4, latin1…)
COLLATIONS, COLLATION_CHARACTER_SET_APPLICABILITY Quy tắc so sánh ký tự (collation)
ST_GEOMETRY_COLUMNS, ST_SPATIAL_REFERENCE_SYSTEMS, ST_UNITS_OF_MEASURE Thông tin hỗ trợ dữ liệu địa lý (GIS)

📌 Ứng dụng: Kiểm soát chuẩn hóa mã hóa, cần thiết khi hệ thống tích hợp dữ liệu nhiều nguồn.

🟫 NHÓM 6: TÀI NGUYÊN HỆ THỐNG & THÀNH PHẦN MỞ RỘNG

Bảng Ý nghĩa
ENGINES Danh sách engine (InnoDB, MyISAM, Memory…)
PLUGINS Danh sách plugin được cài đặt
EVENTS Các sự kiện được lập lịch (scheduler)
PROCESSLIST Các kết nối đang hoạt động (như SHOW PROCESSLIST)
OPTIMIZER_TRACE Theo dõi cách bộ tối ưu hóa xử lý truy vấn
RESOURCE_GROUPS Quản lý nhóm tài nguyên CPU, thread
FILES, TABLESPACES Liệt kê file dữ liệu & tablespace vật lý

📌 Ứng dụng: Giám sát hoạt động, phát hiện nghẽn truy vấn hoặc plugin lỗi.

🟪 NHÓM 7: ROUTINE, TRIGGER & VIEW

Bảng Ý nghĩa
ROUTINES Liệt kê function & procedure người dùng tạo
TRIGGERS Liệt kê trigger của hệ thống
VIEW_TABLE_USAGE, VIEW_ROUTINE_USAGE Quan hệ giữa view và bảng/hàm
PARAMETERS Mô tả tham số trong procedure/function

📌 Ứng dụng: Kiểm soát logic nghiệp vụ, hỗ trợ audit và migration hệ thống.

🧠 3️⃣. Ví dụ ứng dụng thực tế trong Kho bạc Nhà nước

1️⃣ Kiểm tra bảng và quyền truy cập:

SELECT TABLE_SCHEMA, TABLE_NAME, ENGINE, TABLE_ROWS
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'kho_bac';

2️⃣ Phát hiện user có quyền cao:

SELECT * FROM INFORMATION_SCHEMA.USER_PRIVILEGES
WHERE PRIVILEGE_TYPE LIKE '%GRANT%';

3️⃣ Theo dõi giao dịch InnoDB đang khóa bảng:

SELECT trx_id, trx_state, trx_started, trx_tables_locked
FROM INFORMATION_SCHEMA.INNODB_TRX;

4️⃣ Kiểm tra dung lượng từng bảng:

SELECT TABLE_NAME, ROUND(DATA_LENGTH/1024/1024,2) AS MB
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'kho_bac'
ORDER BY MB DESC;

🧩 4️⃣. Ứng dụng 

  • truy vấn trực tiếp INFORMATION_SCHEMA để “đọc hiểu” cấu trúc hệ thống.
  • Thực hành phân tích quyền, bảng, engine.
  • Mô phỏng audit dữ liệu bằng cách tạo báo cáo truy cập.
  • So sánh metadata giữa MySQL – Oracle (dba_tables, user_tab_columns) – SQL Server (INFORMATION_SCHEMA.TABLES).

 

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *