-
Giới thiệu và khởi tạo môi trường MySQL
- Hướng dẫn cài đặt và cấu hình MySQL Server trên Windows cho kết nối từ xa
- Vận dụng tư duy phân tích dữ liệu với Mysql từ cơ bản đến nâng cao
- Vận dụng tư duy phân tích quản trị dữ liệu với MySQL
- Tối ưu hoá công việc quản trị với view và bảng tạm
- Tôi ưu hoá với thủ tục – procedure trong mysql
- Nhóm hàm windown
- Con trỏ và phân vùng trong mysql
- Làm việc với hàm tự tạo trong Mysql
- Làm việc với trigger trong Mysql
- Làm việc với giao dịch
- Tìm hiểu về truy vấn động
- Even – Sự kiện định kỳ trong Mysql
-
Quản trị dữ liệu trong doanh nghiệp
- Tổng quan về trục quản trị dữ liệu
- Quản trị & Giám sát hệ thống với cơ sở dữ liệu ảo information_schema
- Cấu hình và lưu trữ
- Cấu hình file my.ini
- An toàn và toàn vẹn dữ liệu – Bảo mật – Backup
- Hiệu năng và tối ưu hoá
- Đồng bộ và phục hồi
- Phân tích tối ưu hoá hiệu năng với dữ liệu bảng performance_schema
-
Chiến lược quản trị dữ liệu
Cấu hình và lưu trữ
“Trục quản trị CẤU HÌNH & LƯU TRỮ” – nhưng vẫn kết hợp Function, Procedure, Trigger, Transaction để tự động hóa, giám sát và đảm bảo vận hành ổn định.
Đây chính là phần cốt lõi trong đào tạo DBA chuyên nghiệp (tương đương Module Database Infrastructure Management của Oracle hay SQL Server).
🎯 MỤC TIÊU CHUNG BUỔI THỰC HÀNH (6 GIỜ)
Sau buổi học, học viên:
- Hiểu rõ cấu trúc vật lý – logic của hệ thống MySQL (data, log, buffer, temp).
- Biết cấu hình và kiểm soát các tham số chính trong
my.ini(hoặcmy.cnf). - Biết dùng hàm, thủ tục, trigger, transaction để kiểm tra – ghi nhận – tự động xử lý lỗi cấu hình và lưu trữ.
- Vận hành hoàn chỉnh một case study thực tế mô phỏng hệ thống Kho bạc có log, backup, và giám sát dung lượng tự động.
🧩 PHẦN 1 – KIẾN TRÚC LƯU TRỮ VÀ CẤU HÌNH MYSQL (1 GIỜ)
🎯 Mục tiêu
- Xem và hiểu cấu trúc vật lý sau cài đặt MySQL.
- Làm quen các tham số trong file
my.ini. - Thiết lập thư mục lưu trữ riêng (data directory).
🧱 Cấu trúc vật lý cơ bản
C:\ProgramData\MySQL\MySQL Server 8.0\
├── data\
├── bin\
├── my.ini
├── logs\
├── tmp\
⚙️ Các tham số quan trọng trong my.ini
| Tham số | Chức năng |
|---|---|
datadir |
Đường dẫn lưu dữ liệu |
innodb_buffer_pool_size |
Dung lượng RAM cấp cho caching |
log_error |
Vị trí lưu log lỗi |
innodb_log_file_size |
Kích thước file log InnoDB |
tmpdir |
Thư mục xử lý tạm |
max_connections |
Giới hạn kết nối đồng thời |
🧰 Thực hành 1.1 – Kiểm tra cấu hình
SHOW VARIABLES LIKE 'datadir';
SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
SHOW VARIABLES LIKE 'log_error';
🧰 Thực hành 1.2 – Kiểm tra quyền ghi thư mục lưu trữ
Trong Workbench:
SELECT @@datadir;
→ Mở thư mục thực tế trên máy chủ và kiểm tra quyền truy cập (Windows hoặc Linux).
⚙️ PHẦN 2 – KIỂM TRA & GHI LOG CẤU HÌNH BẰNG THỦ TỤC / HÀM (1 GIỜ)
🎯 Mục tiêu
Tạo bộ công cụ kiểm tra cấu hình định kỳ tự động bằng hàm & thủ tục.
🧩 Bài 2.1 – Tạo bảng log cấu hình
CREATE TABLE log_cau_hinh (
id INT AUTO_INCREMENT PRIMARY KEY,
ten_bien VARCHAR(100),
gia_tri TEXT,
thoi_gian DATETIME DEFAULT NOW()
);
🧩 Bài 2.2 – Viết thủ tục ghi lại cấu hình hệ thống
DELIMITER //
CREATE PROCEDURE ghi_nhat_ky_cau_hinh()
BEGIN
INSERT INTO log_cau_hinh (ten_bien, gia_tri)
SELECT VARIABLE_NAME, VARIABLE_VALUE
FROM performance_schema.global_variables
WHERE VARIABLE_NAME IN ('datadir', 'innodb_buffer_pool_size', 'log_error');
END //
DELIMITER ;
👉 Gọi thử:
CALL ghi_nhat_ky_cau_hinh();
SELECT * FROM log_cau_hinh;
🧩 Bài 2.3 – Tạo hàm kiểm tra sai lệch cấu hình
DELIMITER //
CREATE FUNCTION kiem_tra_buffer()
RETURNS VARCHAR(100)
DETERMINISTIC
BEGIN
DECLARE buf BIGINT;
SELECT VARIABLE_VALUE INTO buf
FROM performance_schema.global_variables
WHERE VARIABLE_NAME = 'innodb_buffer_pool_size';
IF buf < 134217728 THEN
RETURN 'CẢNH BÁO: Bộ nhớ đệm quá thấp!';
ELSE
RETURN 'Ổn định.';
END IF;
END //
DELIMITER ;
→ Thực hành:
SELECT kiem_tra_buffer();
🔔 PHẦN 3 – TRIGGER CẢNH BÁO LƯU TRỮ TỰ ĐỘNG (1.5 GIỜ)
🎯 Mục tiêu
Tự động ghi log khi dung lượng lưu trữ vượt ngưỡng hoặc lỗi ghi dữ liệu.
🧩 Bài 3.1 – Bảng theo dõi dung lượng
CREATE TABLE thong_tin_luu_tru (
id INT AUTO_INCREMENT PRIMARY KEY,
thu_muc VARCHAR(255),
dung_luong BIGINT,
thoi_gian DATETIME DEFAULT NOW()
);
🧩 Bài 3.2 – Thủ tục cập nhật dung lượng thư mục
(Sử dụng trong Workbench / Python script)
DELIMITER //
CREATE PROCEDURE cap_nhat_dung_luong(IN p_thu_muc VARCHAR(255), IN p_dung_luong BIGINT)
BEGIN
INSERT INTO thong_tin_luu_tru(thu_muc, dung_luong)
VALUES (p_thu_muc, p_dung_luong);
END //
DELIMITER ;
🧩 Bài 3.3 – Trigger cảnh báo lưu trữ
DELIMITER //
CREATE TRIGGER trg_canh_bao_dung_luong
AFTER INSERT ON thong_tin_luu_tru
FOR EACH ROW
BEGIN
IF NEW.dung_luong > 8000000 THEN
INSERT INTO log_cau_hinh(ten_bien, gia_tri)
VALUES ('CẢNH BÁO DUNG LƯỢNG', CONCAT('Thư mục ', NEW.thu_muc, ' vượt ngưỡng 8GB.'));
END IF;
END //
DELIMITER ;
🔄 PHẦN 4 – GIAO DỊCH PHỤC HỒI CẤU HÌNH (1.5 GIỜ)
🎯 Mục tiêu
Sử dụng transaction để rollback thay đổi cấu hình hoặc log sai.
🧩 Bài 4.1 – Giao dịch mô phỏng lỗi cấu hình
START TRANSACTION;
INSERT INTO log_cau_hinh(ten_bien, gia_tri)
VALUES ('innodb_buffer_pool_size', '0'); -- lỗi cố tình
ROLLBACK;
→ Kiểm tra log, đảm bảo không có bản ghi “sai lệch”.
🧩 Bài 4.2 – Thủ tục phục hồi cấu hình từ bản log gần nhất
DELIMITER //
CREATE PROCEDURE phuc_hoi_cau_hinh()
BEGIN
DECLARE last_dir VARCHAR(255);
SELECT gia_tri INTO last_dir
FROM log_cau_hinh
WHERE ten_bien='datadir'
ORDER BY thoi_gian DESC
LIMIT 1;
INSERT INTO log_cau_hinh(ten_bien, gia_tri)
VALUES ('Phục hồi datadir', last_dir);
END //
DELIMITER ;
🧠 PHẦN 5 – CASE STUDY TỔNG HỢP (1 GIỜ)
🏦 Tình huống: “Giám sát cấu hình hệ thống lưu trữ MySQL của Kho bạc”
Mô tả:
Ban CNTT muốn:
- Theo dõi tự động cấu hình chính (
datadir,innodb_buffer_pool_size). - Ghi log thay đổi mỗi 6 giờ.
- Tự động cảnh báo khi dung lượng ổ đĩa gần đầy.
- Cho phép rollback cấu hình cũ.
🧰 Bước 1 – Tạo thủ tục tổng hợp “kiem_tra_he_thong”
DELIMITER //
CREATE PROCEDURE kiem_tra_he_thong()
BEGIN
CALL ghi_nhat_ky_cau_hinh();
SET @thong_bao = kiem_tra_buffer();
INSERT INTO log_cau_hinh(ten_bien, gia_tri)
VALUES ('Kết quả kiểm tra', @thong_bao);
END //
DELIMITER ;
🧰 Bước 2 – Tạo EVENT tự động chạy định kỳ
SET GLOBAL event_scheduler = ON;
CREATE EVENT evt_kiem_tra_cau_hinh
ON SCHEDULE EVERY 6 HOUR
DO
CALL kiem_tra_he_thong();
🧰 Bước 3 – Giao dịch xử lý lỗi tự động
DELIMITER //
CREATE PROCEDURE xu_ly_loi_cau_hinh()
BEGIN
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
ROLLBACK;
INSERT INTO log_cau_hinh(ten_bien, gia_tri)
VALUES ('Lỗi cấu hình', 'Rollback thành công');
END;
START TRANSACTION;
-- giả lập thay đổi nguy hiểm
INSERT INTO log_cau_hinh(ten_bien, gia_tri)
VALUES ('innodb_buffer_pool_size', '-1');
COMMIT;
END //
DELIMITER ;
📊 TỔNG KẾT
| Nhóm kỹ năng | Kết quả đạt được |
|---|---|
| Cấu hình & my.ini | Hiểu 10+ tham số cốt lõi |
| Hàm & Thủ tục | Tạo được module kiểm tra cấu hình |
| Trigger | Tự động cảnh báo dung lượng |
| Transaction | Rollback lỗi cấu hình |
| Event | Lập lịch kiểm tra tự động |
| Case study | Hệ thống giám sát lưu trữ tự động |
💡 GỢI Ý NÂNG CAO
- Tích hợp AI Copilot:
Tạo hàm sử dụng API Python hoặc Node.js gọi GPT để gợi ý tham số tối ưuinnodb_buffer_pool_sizetheo dung lượng RAM. - Kết hợp Power BI / Grafana:
Kéo dữ liệu từlog_cau_hinh→ hiển thị dashboard theo thời gian thực.