0

Apache Derby Bài 23: Cấu hình cổng kết nối, địa chỉ máy chủ và tùy chọn logging

1. Các phương pháp cấu hình máy chủ Derby

Khi vận hành Apache Derby ở chế độ Network Server, cấu hình mặc định (lắng nghe ở localhost, cổng 1527, ghi log ra tệp derby.log tại thư mục hiện hành) thường không đáp ứng đủ yêu cầu của môi trường sản xuất (Production).

Derby cung cấp hai cách chính để thay đổi các tham số này:

  1. Qua tham số dòng lệnh (Command-line arguments): Ghi đè cấu hình tạm thời cho phiên chạy hiện tại.

  2. Qua tệp derby.properties: Cấu hình vĩnh viễn, áp dụng tự động mỗi khi máy chủ hoặc cơ sở dữ liệu khởi động.

2. Thay đổi cổng và địa chỉ qua tham số dòng lệnh

Như đã đề cập ngắn gọn ở Bài 21, công cụ startNetworkServer chấp nhận các cờ (flags) để thay đổi ngay lập tức hành vi của máy chủ.

  • Đổi cổng (Port): Sử dụng cờ -p.

  • Đổi địa chỉ lắng nghe (Host): Sử dụng cờ -h. Mặc định Derby chỉ nhận kết nối từ localhost. Để cho phép các máy tính khác trong mạng LAN hoặc Internet kết nối, bạn phải chỉ định địa chỉ IP cụ thể hoặc dùng 0.0.0.0 (lắng nghe trên mọi giao diện mạng).

Bash

startNetworkServer -h 0.0.0.0 -p 8080

Lưu ý bảo mật: Việc mở -h 0.0.0.0 sẽ phơi bày cơ sở dữ liệu của bạn ra toàn bộ mạng. Hãy đảm bảo bạn đã cấu hình xác thực người dùng (User Authentication) hoặc giới hạn truy cập qua tường lửa (Firewall) trước khi thực hiện lệnh này trên máy chủ công cộng.

3. Quản trị cấu hình tập trung với derby.properties

Thay vì phải gõ lệnh dài dòng mỗi lần khởi động, bạn có thể tạo một tệp văn bản thuần túy mang tên derby.properties.

Vị trí đặt tệp: Tệp này bắt buộc phải nằm trong thư mục gốc của hệ thống Derby (được xác định bởi biến derby.system.home). Nếu bạn không cấu hình biến này, derby.system.home chính là thư mục nơi bạn đang mở Terminal để chạy lệnh startNetworkServer.

Cấu trúc tệp tuân theo định dạng key=value tiêu chuẩn của Java.

Cấu hình Host và Port trong tệp

Tạo tệp derby.properties và thêm các dòng sau:

Properties

# Đổi cổng mặc định thành 5000
derby.drda.portNumber=5000

# Cho phép kết nối từ bên ngoài
derby.drda.host=0.0.0.0

# Bật chế độ giữ kết nối (Keep-Alive) để tránh ngắt kết nối do mạng chập chờn
derby.drda.keepAlive=true

Khi có tệp này, bạn chỉ cần gõ startNetworkServer (không cần tham số), Derby sẽ tự động đọc và áp dụng cấu hình cổng 5000 và địa chỉ 0.0.0.0.

4. Tùy biến hệ thống Logging

Nhật ký hệ thống (Log) là công cụ sống còn để chẩn đoán lỗi (SQLState, Deadlock, Crash Recovery). Mặc định, Derby luôn ghi log vào tệp derby.log nằm cùng thư mục với derby.properties và ghi đè tệp này mỗi khi khởi động lại máy chủ.

Bạn có thể thay đổi hành vi này thông qua các thuộc tính sau trong derby.properties:

1. Thay đổi vị trí và tên tệp log

Để quản lý log gọn gàng (ví dụ đưa vào thư mục /var/log/derby/), hãy sử dụng thuộc tính derby.stream.error.file:

Properties

# Trỏ đường dẫn tuyệt đối đến tệp nhật ký mong muốn
derby.stream.error.file=/var/log/derby/production-server.log

2. Ghi nối tiếp thay vì ghi đè

Nếu không muốn log bị xóa sạch sau mỗi lần khởi động lại máy chủ, hãy bật chế độ Append:

Properties

# Bật chế độ ghi nối tiếp (Mặc định là false)
derby.infolog.append=true

3. Ghi log Deadlock và truy vấn chậm

Đối với môi trường nhiều giao dịch đồng thời, việc theo dõi các truy vấn gây bế tắc (deadlock) là rất quan trọng:

Properties

# Ghi lại thông tin chi tiết vào log khi xảy ra Deadlock
derby.locks.deadlockTrace=true

# Ghi lại các truy vấn SQL gây ra lỗi hoặc cảnh báo
derby.language.logStatementText=true

5. Thực hành: Triển khai thư mục vận hành chuẩn

Để hệ thống Network Server hoạt động chuyên nghiệp, hãy thiết lập một cấu trúc thư mục quy củ.

Bước 1: Tạo không gian làm việc

Bash

mkdir -p /opt/derby_server/databases
mkdir -p /opt/derby_server/logs
cd /opt/derby_server

Bước 2: Tạo tệp derby.properties

Bash

nano derby.properties

Nội dung tệp:

Properties

derby.drda.portNumber=3306
derby.drda.host=0.0.0.0
derby.stream.error.file=/opt/derby_server/logs/derby-network.log
derby.infolog.append=true
derby.language.logStatementText=true

Bước 3: Khởi động máy chủ Vì bạn đang đứng tại /opt/derby_server, đây sẽ trở thành derby.system.home.

Bash

startNetworkServer

Lúc này, máy chủ sẽ lắng nghe ở cổng 3306 trên toàn mạng lưới, và mọi cơ sở dữ liệu tạo mới sẽ nằm gọn gàng bên trong /opt/derby_server. Nhật ký được lưu trữ an toàn trong thư mục logs.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí