Alter System Register Local_listener là câu lệnh quan trọng trong việc quản lý kết nối đến cơ sở dữ liệu Oracle. Câu lệnh này cho phép instance (phiên bản) cơ sở dữ liệu đăng ký với listener (bộ lắng nghe), giúp client (máy khách) có thể kết nối đến database. Bài viết này sẽ đi sâu vào tìm hiểu về cách thức hoạt động và cách sử dụng câu lệnh này.
Cơ chế Đăng ký Instance với Listener
Có hai phương pháp để listener nhận biết database mà nó phục vụ: đăng ký tĩnh (static registration) và đăng ký động (dynamic registration).
Đăng ký Tĩnh (Static Registration)
Phương pháp cũ hơn là đăng ký tĩnh, nơi instance được liệt kê trong phần SID_LIST
của file cấu hình listener (listener.ora
). Tuy nhiên, phương pháp này có nhược điểm là listener không thể biết chắc chắn instance có tồn tại hay không, dẫn đến trạng thái UNKNOWN
khi kiểm tra bằng lệnh lsnrctl status
.
Đăng ký Động (Dynamic Registration)
Từ Oracle 9i, đăng ký động được giới thiệu, cho phép instance tự động liên hệ và đăng ký với listener. Khi đó, listener sẽ hiển thị trạng thái READY
cho instance đã đăng ký, đảm bảo kết nối thành công.
Vai trò của tham số khởi tạo LOCAL_LISTENER
Vậy instance biết cách liên hệ với listener như thế nào để tự đăng ký? Câu trả lời nằm ở tham số khởi tạo LOCAL_LISTENER
. Tham số này chỉ định tên mạng (network name) được phân giải thành địa chỉ hoặc danh sách địa chỉ của listener.
Theo mặc định, LOCAL_LISTENER
được thiết lập là (ADDRESS = (PROTOCOL=TCP)(HOST=hostname)(PORT=1521))
, trong đó hostname
là tên mạng của máy chủ cục bộ. Điều này giải thích tại sao instance có thể tự đăng ký với listener sử dụng cổng mặc định 1521.
Sử dụng ALTER SYSTEM REGISTER LOCAL_LISTENER với Cổng Phi Mặc định
Khi listener sử dụng cổng khác với cổng mặc định 1521, ta cần điều chỉnh LOCAL_LISTENER
để instance có thể đăng ký. Ví dụ, nếu listener sử dụng cổng 1522:
ALTER SYSTEM SET LOCAL_LISTENER='(ADDRESS = (PROTOCOL = TCP)(HOST = your_hostname)(PORT = 1522))' SCOPE=BOTH;
ALTER SYSTEM REGISTER;
Câu lệnh ALTER SYSTEM REGISTER
sẽ yêu cầu instance đăng ký lại với listener dựa trên thông tin LOCAL_LISTENER
mới được cập nhật.
Sử dụng Tnsnames.ora cho LOCAL_LISTENER
Thay vì chỉ định trực tiếp địa chỉ trong LOCAL_LISTENER
, ta có thể sử dụng một entry trong file tnsnames.ora
. Entry này sẽ trỏ đến listener, ví dụ:
FUBAR = (ADDRESS = (PROTOCOL = TCP)(HOST = your_hostname)(PORT = 1522))
Sau đó, thiết lập LOCAL_LISTENER
để tham chiếu đến entry này:
ALTER SYSTEM SET LOCAL_LISTENER='FUBAR' SCOPE=BOTH;
ALTER SYSTEM REGISTER;
Kết luận
ALTER SYSTEM REGISTER LOCAL_LISTENER
là câu lệnh quan trọng cho phép instance đăng ký với listener, đảm bảo kết nối đến cơ sở dữ liệu Oracle. Việc hiểu rõ về tham số LOCAL_LISTENER
và cách sử dụng câu lệnh này sẽ giúp quản trị viên database dễ dàng cấu hình và xử lý các vấn đề kết nối. Việc kết hợp đăng ký động và tĩnh có thể được sử dụng đồng thời, cung cấp sự linh hoạt trong quản lý kết nối.