HQbird Replication
Nhân bản master-slave gốc trong HQbird Enterprise: DML và DDL, không cần trigger, khóa chính hoặc khóa duy nhất trên các bảng được nhân bản. Tương thích 100% với Firebird 2.5-5.0 - chuyển đổi binary mà không cần sao lưu/phục hồi. Một giấy phép bao gồm một master và một replica; các replica bổ sung được bán riêng.
Không đồng bộ vs đồng bộ
Không đồng bộ thường là lựa chọn sản xuất đúng đắn.
Không đồng bộ (khuyến nghị)
Master ghi nhật ký các thay đổi đã cam kết vào các tệp phân đoạn; replica kéo và áp dụng chúng trong nền. Xả mặc định là 90 giây (thường đặt 15-30). Replica có thể được tạo lại trực tuyến; không cần dừng master để bắt đầu. Phù hợp cho đám mây hoặc liên kết độ trễ cao. Độ trễ có thể tăng khi tải nặng.
Đồng bộ
Master ghi các thay đổi đã cam kết trực tiếp vào replica. Độ trễ ~1-2 giây; cần đường truyền ~1 Gbps ổn định. Replica chỉ đọc (có ngoại lệ). Tạo lại replica yêu cầu dừng master. Dùng cho chuyển đổi dự phòng tùy chỉnh (3+ nút), giảm tải đọc, hoặc kết hợp với không đồng bộ.
Cài đặt
Cài đặt HQbird Server with Firebird trên master và replica. Windows: HQbirdServer2024.exe (2.5-5.0). Công cụ quản trị là tùy chọn cho nhân bản. Linux: hướng dẫn cài đặt. Đăng ký với giấy phép dùng thử hoặc đầy đủ. Hướng dẫn sử dụng §2 bao gồm thiết lập máy chủ.
Firebird 2.5: HQbird cài đặt SuperClassic. Nếu tiêu đề cơ sở dữ liệu có số lượng bộ đệm trang lớn, hiệu suất có thể bị ảnh hưởng. Đặt bộ đệm về 0 để firebird.conf được ưu tiên:
gfix -buff 0 -user SYSDBA -pass masterkey disk:\path\database.fdb
Các bước - nhân bản không đồng bộ
- Cấu hình cơ sở dữ liệu làm master.
- Tạo tệp replica (
nbackuphoặc “Reinitialize replica database”). - Cấu hình máy chủ replica.
Bước 1 - Master
Mở http://127.0.0.1:8082 (cổng có thể cấu hình). Đăng nhập admin / mật khẩu mạnh. Xác nhận widget Active server hiển thị Firebird 2.5/3.0/4.0/5.0 HQbird.
Thêm cơ sở dữ liệu: biệt danh cộng với đường dẫn tệp, không phải bí danh - bí danh không được nhân bản.
Mở nhân bản từ biểu tượng tiêu đề cơ sở dữ liệu. Chọn Master → Không đồng bộ → Lưu. Khởi động lại Firebird (hoặc tất cả kết nối Classic) để các tham số được tải khi kết nối đầu tiên.
- Thư mục nhật ký - phân đoạn hoạt động, mặc định
${db.default-directory}\ReplicationLog. Do engine quản lý; để nguyên. - Thư mục lưu trữ nhật ký - phân đoạn lưu trữ, mặc định
${db.path}.LogArchcạnh cơ sở dữ liệu. - Ghi đè lệnh lưu trữ nhật ký - để trống.
- Xả dữ liệu đã cam kết cưỡng bức - mặc định 90 giây.
Bạn sẽ thấy các tệp luân phiên trong thư mục nhật ký ngay sau khi ghi, sau đó là các phân đoạn lưu trữ sau cam kết/hết thời gian. Không chạm vào phân đoạn hoạt động. Sao chép lưu trữ đến replica: chia sẻ mạng hoặc FTP/SSH.
Bước 2 - Tệp replica ban đầu
Từ HQbird 2018 R2, Reinitialize replica database tạo một bản sao cạnh master, có tên như employee30.fdb.17-Apr-2018_142507.4replica. Hoặc dùng nbackup mà không cần dừng master.
Bước 3 - Máy chủ replica
Đăng ký replica trong FBDataGuard sau khi nó có GUID replica. Cài đặt bắt buộc là thư mục chứa các phân đoạn lưu trữ. Lưu và khởi động lại Firebird. Mặc định nhập từ thư mục cạnh replica; các phân đoạn đã xử lý bị xóa. Không trộn lưu trữ từ các cơ sở dữ liệu khác nhau trong một thư mục.
Các bước - nhân bản đồng bộ
- Dừng Firebird.
- Sao chép tệp master, chuyển sang chế độ replica, sao chép đến máy chủ replica.
- Cấu hình máy chủ replica trong FBDataGuard.
- Khởi động replica trước master.
- Cấu hình master, sau đó khởi động master.
Thời gian chết nhiều hơn không đồng bộ: replica phải trực tuyến trước khi master khởi động. Ví dụ replica từ xa: máy chủ replicaserver, đường dẫn /data/test2.fdb. Trên replica, gfix -replica {master-guid} là đủ ngoài bản sao đó.
Kiểm thử trên hệ thống sản xuất
Đặt disable_on_error thành true để lỗi nhân bản tắt nhân bản và master tiếp tục phục vụ. Khởi tạo lại từ nhật ký sạch sau khi sửa lỗi. Bật công việc Replication log trong FBDataGuard để theo dõi lỗi và cảnh báo.
Tạo bản sao replica với nbackup
Hoạt động trực tuyến cho không đồng bộ (và replica bổ sung) mà không cần dừng master. Hoặc dừng Firebird và sao chép tệp.
nbackup -l database_path_name -user SYSDBA -pass masterkey
copy database_path_name replica_path_name
nbackup -n database_path_name -user SYSDBA -pass masterkey
nbackup -f replica_path_name
gfix replica_path_name -replica {DATABASEGUID} -user SYSDBA -pass masterkey
DATABASEGUID là id duy nhất của master từ gstat -h. Nếu thiếu, kết nối một lần với binary Firebird của HQbird và chạy lại gstat -h.
gfix disk:\path\mydatabase.fdb -replica {guid} -user SYSDBA -pass masterkey
gfix disk:\path\mydatabase.fdb -replica {} -user SYSDBA -pass masterkey
{} trống đưa tệp về chế độ bình thường (đọc-ghi). Trên replica bạn có thể chạy công việc chỉ đọc (SELECT); không thay đổi dữ liệu hoặc siêu dữ liệu.