1. Tổng quan
Trong Oracle, Listener là một tiến trình chạy tách biệt (tnslsnr). Nếu Listener sập, các kết nối hiện tại vẫn sống nhưng kết nối mới sẽ thất bại.
Trái lại, ở SQL Server, PostgreSQL, MySQL và MongoDB, cơ chế "lắng nghe" (Bind/Listen) được tích hợp thẳng vào tiến trình lõi (Engine/Daemon). Nếu tiến trình lõi sập, toàn bộ kết nối mạng cũng ngắt ngay lập tức.
Bài học này giúp anh ánh xạ cách cấu hình IP, Port và cơ chế cho phép Client truy cập.
2. Chi tiết các nội dung
A. Cơ chế Lắng nghe (Listening) & Cổng (Port)
| CSDL | Cổng mặc định | Cách cấu hình IP Lắng nghe (Bind Address) | Đặc điểm nổi bật |
| Oracle | 1521 | File listener.ora (Tham số HOST). | Chạy tiến trình riêng. Hỗ trợ Load Balancing/Failover qua SCAN IP (RAC). |
| SQL Server | 1433 | Bật qua GUI: SQL Server Configuration Manager $\rightarrow$ Network Configuration $\rightarrow$ Enable TCP/IP. | Có SQL Server Browser (UDP 1434) để client tự động dò tìm các Named Instance. |
| PostgreSQL | 5432 | File postgresql.conf $\rightarrow$ listen_addresses = '*'. | Mặc định chỉ nghe localhost. Phải sửa thành '*' hoặc IP cụ thể. |
| MySQL | 3306 | File my.cnf $\rightarrow$ bind-address = 0.0.0.0. | Mặc định thường bind vào 127.0.0.1. Rất dễ cấu hình. |
| MongoDB | 27017 | File mongod.conf $\rightarrow$ net.bindIp: 0.0.0.0. | Hỗ trợ cấu hình nhiều IP dạng mảng (Array). |
B. Cơ chế Phân giải và Xác thực Client (Client Authentication)
Đây là điểm khác biệt lớn nhất giữa các hệ thống:
Oracle: Dùng
sqlnet.orađể chặn/cho phép IP (TCP.VALIDNODE_CHECKING).PostgreSQL: Sở hữu cơ chế cực kỳ chặt chẽ qua file pg_hba.conf (Host-Based Authentication). Giống như Firewall nội bộ của DB. Anh phải khai báo rõ: IP nào, dùng User nào, vào Database nào, bằng phương thức mã hóa gì (md5/scram-sha-256) thì mới được vào.
MySQL / MariaDB: Không có file riêng như Postgres. Quy tắc mạng được gắn thẳng vào tài khoản User. Ví dụ: User
binh@'192.168.1.%'chỉ được phép login từ dải mạng nội bộ.SQL Server: Sử dụng Windows Firewall để chặn IP. Xác thực dựa vào Windows Authentication (tích hợp Active Directory) hoặc SQL Server Authentication (Mixed Mode).
C. Câu lệnh và Công cụ quản trị mạng
1. Oracle: ```bash
lsnrctl status
-- Kết quả: Liệt kê các service đang được listener phục vụ (Ready/Blocked/Unknown).
**2. SQL Server:** Kiểm tra các session đang kết nối qua giao thức nào (TCP, Named Pipes hay Shared Memory).
```sql
SELECT session_id, net_transport, client_net_address, client_tcp_port
FROM sys.dm_exec_connections;
-- Kết quả: 54 | TCP | 192.168.1.100 | 50123
3. PostgreSQL: Tải lại rules mạng mà không rớt connection đang có.
-- Sau khi anh sửa pg_hba.conf để cấp quyền cho 1 IP mới:
SELECT pg_reload_conf();
-- Kết quả: t (True - Đã nạp lại cấu hình thành công).
4. MySQL / MariaDB: Xem danh sách client đang kết nối.
SHOW PROCESSLIST;
-- Kết quả: Liệt kê Id, User, Host (kèm IP và Port của client), DB, Command.
3. Tóm tắt lại nội dung của bài học
Để cấu hình mạng cho SQL Server, anh không can thiệp bằng lệnh mà bắt buộc phải dùng công cụ SQL Server Configuration Manager (nằm trên server) để bật giao thức TCP/IP, sau đó restart service.
Với PostgreSQL, cấu hình mạng gồm 2 bước bắt buộc: (1) Mở port lắng nghe trong
postgresql.confvà (2) Cho phép IP truy cập trongpg_hba.conf.Với MySQL, quyền truy cập mạng được định nghĩa ngay lúc anh gõ lệnh
CREATE USER.
4. Câu hỏi ôn tập
Hỏi: Nếu client báo lỗi không kết nối được đến một Named Instance của SQL Server (ví dụ:
Server1\DEV), dịch vụ mạng nào của SQL Server có thể đang bị tắt?Đáp: Dịch vụ SQL Server Browser (chạy trên port UDP 1434, giúp phân giải tên Instance ra port động của TCP).
Hỏi: File cấu hình nào trong PostgreSQL đóng vai trò kiểm soát luồng truy cập tương tự như tính năng TCP.VALIDNODE_CHECKING (trong sqlnet.ora) của Oracle?
Đáp: File
pg_hba.conf(Host-based Authentication).
Hỏi: Để MySQL lắng nghe trên tất cả các card mạng (Interfaces) của Server thay vì chỉ localhost, anh cấu hình tham số nào trong
my.cnf?Đáp: Tham số
bind-address = 0.0.0.0.
Hỏi: Trong SQL Server, giao thức nào thường được dùng khi Ứng dụng và Database nằm trên cùng một máy chủ vật lý để đạt tốc độ cao nhất (bỏ qua tầng TCP/IP)?
Đáp: Giao thức Shared Memory.
Hỏi: Khi anh thêm một dòng mới vào
pg_hba.confcủa PostgreSQL, anh có cần khởi động lại toàn bộ Instance không?Đáp: Không. Chỉ cần chạy lệnh reload (
SELECT pg_reload_conf();hoặcpg_ctl reload), các kết nối cũ không bị ảnh hưởng.
5. Bài tập thực hành (Cấu hình và kiểm tra kết nối mạng)
Đề bài: Hãy viết cấu hình hoặc câu lệnh để cho phép các máy khách từ dải mạng nội bộ 192.168.1.0/24 có thể kết nối vào hệ thống cơ sở dữ liệu.
Đáp án:
1. Oracle: Thêm vào sqlnet.ora để giới hạn (nếu cần bảo mật khắt khe):
tcp.validnode_checking = yes
tcp.invited_nodes = (192.168.1.*)
2. SQL Server:
Trong SQL Server, việc chặn/mở dải IP không làm ở mức Database Engine. Anh cấu hình thông qua Windows Defender Firewall with Advanced Security:
Tạo Inbound Rule -> Port 1433 -> Scope -> Remote IP address: Add
192.168.1.0/24.
3. PostgreSQL:
Mở file pg_hba.conf và thêm dòng sau xuống cuối file (sau đó chạy lệnh reload):
# TYPE DATABASE USER ADDRESS METHOD
host all all 192.168.1.0/24 scram-sha-256
4. MySQL / MariaDB:
Anh phải tạo user hoặc cấp quyền truy cập gắn chặt với dải mạng này:
CREATE USER 'app_user'@'192.168.1.%' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON app_db.* TO 'app_user'@'192.168.1.%';
FLUSH PRIVILEGES;
5. MongoDB:
Trong file /etc/mongod.conf, sửa lại cấu hình bindIp để lắng nghe kết nối bên ngoài:
net:
port: 27017
bindIp: 127.0.0.1,192.168.1.10 # Lắng nghe localhost và IP của máy chủ trên dải nội bộ
(Tiếp theo cấu hình Firewall OS mở port 27017 cho dải 192.168.1.0/24).
TƯ VẤN: Click Here hoặc Hotline/Zalo 090.29.12.888
=============================
Website không chứa bất kỳ quảng cáo nào, mọi đóng góp để duy trì phát triển cho website (donation) xin vui lòng gửi về STK 90.2142.8888 - Ngân hàng Vietcombank Thăng Long - TRAN VAN BINH
=============================
Nếu bạn không muốn bị AI thay thế và tiết kiệm 3-5 NĂM trên con đường trở thành DBA chuyên nghiệp hay làm chủ Database thì hãy đăng ký ngay KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE, được Coaching trực tiếp từ tôi với toàn bộ bí kíp thực chiến, thủ tục, quy trình của gần 20 năm kinh nghiệm (mà bạn sẽ KHÔNG THỂ tìm kiếm trên Internet/Google) từ đó giúp bạn dễ dàng quản trị mọi hệ thống Core tại Việt Nam và trên thế giới, đỗ OCP.
- CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
- Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
2 khóa học online qua video giúp bạn nhanh chóng có những kiến thức nền tảng về Linux, Oracle, học mọi nơi, chỉ cần có Internet/4G:
- Oracle cơ bản: https://bit.ly/admin_1200
- Linux: https://bit.ly/linux_1200
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội
=============================
cơ sở dữ liệu, cơ sở dữ liệu quốc gia, database, AI, trí tuệ nhân tạo, artificial intelligence, machine learning, deep learning, LLM, ChatGPT, DeepSeek, Grok, oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c/21c/23c/23ai, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, docker, k8s, micro service, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty