Thiết lập cơ chế giám sát dữ liệu (Data Watch) của Dameng Database trên hệ điều hành Red Hat Enterprise Linux 7.9 yêu cầu phối hợp đồng bộ giữa ba thành phần: máy chủ chính (primary), máy chủ dự phòng (standby), và trình giám sát tập trung (monitor). Quy trình dưới đây mô tả cách triển khai một cụm HA với khả năng chuyển đổi vai trò tự động, đảm bảo tính sẵn sàng cao và phục hồi nhanh sau sự cố.
1. Môi trường nền tảng
Cả hai nút đều đã cài đặt Dameng Database phiên bản V8. Máy chủ chính (IP 192.168.10.99) đã khởi tạo cơ sở dữ liệu DM01, bật chế độ lưu trữ nhật ký (archiving), và đang hoạt động ở trạng thái OPEN. Máy chủ dự phòng (IP 192.168.10.100) và máy giám sát (IP 192.168.10.101) đã cài đặt phần mềm nhưng chưa cấu hình dịch vụ.
2. Thiết lập cụm giám sát
2.1 Cấu hình máy chủ chính
2.1.1 Sao lưu toàn bộ cơ sở dữ liệu
Dừng dịch vụ cơ sở dữ liệu, thực hiện sao lưu cục bộ bằng công cụ dmrman:
[dmdba@primary ~]$ DmServiceDMSVR01 stop
[dmdba@primary ~]$ dmrman
RMAN> BACKUP DATABASE '/dm8/data/DM01/dm.ini' FULL TO 'PRIMARY_FULL_BAK';
Sau khi hoàn tất, truyền các tệp sao lưu sang máy chủ dự phòng:
[dmdba@primary ~]$ scp /dm8/backup/PRIMARY_FULL_BAK.* dmdba@192.168.10.100:/dm8/backup/
2.1.2 Cập nhật tệp cấu hình
dm.ini: Bật hỗ trợ giao thức MAL và lưu trữ nhật ký:
MAL_INI = 1
ARCH_INI = 1
ENABLE_OFFLINE_TS = 2dmarch.ini: Định nghĩa luồng nhật ký thời gian thực đến nút dự phòng và lưu trữ cục bộ:
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = DMSVR02
[ARCHIVE_LOCAL]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/arch
ARCH_FILE_SIZE = 64dmmal.ini: Khai báo thông tin kết nối mạng cho cả hai nút:
MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = DMSVR01
MAL_HOST = 192.168.10.99
MAL_PORT = 55101
MAL_INST_HOST = 192.168.10.99
MAL_INST_PORT = 5236
MAL_DW_PORT = 65101
[MAL_INST2]
MAL_INST_NAME = DMSVR02
MAL_HOST = 192.168.10.100
MAL_PORT = 55121
MAL_INST_HOST = 192.168.10.100
MAL_INST_PORT = 5236
MAL_DW_PORT = 65121dmwatcher.ini: Thiết lập nhóm giám sát toàn cục với cơ chế tự động phục hồi:
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = AUTO
INST_OGUID = 8888
INST_INI = /dm8/data/DM01/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /dm8/bin/dmserver
INST_ERROR_TIME = 10
INST_RECOVER_TIME = 60
2.1.3 Áp dụng cấu hình tại thời điểm chạy
Kích hoạt cơ sở dữ liệu ở chế độ MOUNT, thiết lập định danh nhóm (OGUID) và chuyển sang vai trò chính:
[dmdba@primary ~]$ dmserver /dm8/data/DM01/dm.ini mount
[dmdba@primary ~]$ disql sysdba/Dameng123
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL> SP_SET_OGUID(8888);
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
SQL> ALTER DATABASE PRIMARY;
2.2 Cấu hình máy chủ dự phòng
2.2.1 Khởi tạo và khôi phục cơ sở dữ liệu
Tạo cơ sở dữ liệu mới cùng tên và cấu trúc tương thích:
[dmdba@standby bin]$ dminit db_name=DM01 instance_name=DMSVR02 path=/dm8/data
Sử dụng tệp sao lưu từ máy chủ chính để khôi phục:
[dmdba@standby bin]$ dmrman
RMAN> RESTORE DATABASE '/dm8/data/DM01/dm.ini' FROM BACKUPSET '/dm8/backup/PRIMARY_FULL_BAK';
RMAN> RECOVER DATABASE '/dm8/data/DM01/dm.ini' FROM BACKUPSET '/dm8/backup/PRIMARY_FULL_BAK';
RMAN> RECOVER DATABASE '/dm8/data/DM01/dm.ini' UPDATE DB_MAGIC;
2.2.2 Đồng bộ tệp cấu hình
Các tệp dm.ini, dmarch.ini, dmmal.ini, và dmwatcher.ini được cấu hình giống máy chủ chính, ngoại trừ giá trị ARCH_DEST trong dmarch.ini phải trỏ về DMSVR01, và tên nút trong dmmal.ini cần hoán đổi vị trí.
2.2.3 Thiết lập vai trò dự phòng
Kích hoạt cơ sở dữ liệu ở chế độ MOUNT, gán OGUID, và thiết lập vai trò:
[dmdba@standby ~]$ dmserver /dm8/data/DM01/dm.ini mount
[dmdba@standby ~]$ disql sysdba/Dameng123
SQL> SP_SET_OGUID(8888);
SQL> ALTER DATABASE STANDBY;
2.3 Khởi động tiến trình giám sát
Trên cả hai nút, chạy tiến trình dmwatcher với tệp cấu hình tương ứng:
[dmdba@primary ~]$ dmwatcher /dm8/data/DM01/dmwatcher.ini
[dmdba@standby ~]$ dmwatcher /dm8/data/DM01/dmwatcher.ini
2.4 Thiết lập trình giám sát tập trung
2.4.1 Tạo tệp cấu hình dmmonitor.ini
MON_DW_CONFIRM = 1
MON_LOG_PATH = /dm8/data/log
MON_LOG_INTERVAL = 60
[GRP1]
MON_INST_OGUID = 8888
MON_DW_IP = 192.168.10.99:65101
MON_DW_IP = 192.168.10.100:65121
2.4.2 Khởi động và kiểm tra trạng thái
[dmdba@monitor ~]$ dmmonitor /dm8/data/dmmonitor.ini
login
Username: sysdba
Password: Dameng123
show
Lệnh show sẽ hiển thị trạng thái đồng bộ hóa, vai trò hiện tại (PRIMARY/STANDBY), và mức độ cập nhật nhật ký (LSN) giữa hai nút.
2.5 Đăng ký dịch vụ hệ thống
Sử dụng script tiện ích để đăng ký các dịch vụ khởi động cùng hệ thống:
- Máy chủ chính:
./dm_service_installer.sh -t dmwatcher -p DMSVR01 -watcher_ini /dm8/data/DM01/dmwatcher.ini - Máy chủ dự phòng:
./dm_service_installer.sh -t dmwatcher -p DMSVR02 -watcher_ini /dm8/data/DM01/dmwatcher.inivà./dm_service_installer.sh -t dmserver -dm_ini /dm8/data/DM01/dm.ini -p DMSVR02 - Máy giám sát:
./dm_service_installer.sh -t dmmonitor -p DMMONITOR -monitor_ini /dm8/data/dmmonitor.ini
3. Kiểm tra chuyển đổi vai trò
3.1 Chuyển đổi từ chính sang dự phòng
Từ giao diện dmmonitor, thực thi lệnh switchover. Hệ thống sẽ:
- Chuyển cả hai nút sang trạng thái
SWITCHOVER, - Gọi các thủ tục hệ thống để thay đổi vai trò,
- Cập nhật lại trạng thái lưu trữ nhật ký,
- Và cuối cùng đưa cả hai nút trở lại trạng thái
OPEN.
Sau khi hoàn tất, vai trò của DMSVR02 trở thành PRIMARY, còn DMSVR01 chuyển sang STANDBY. Dữ liệu vẫn được duy trì toàn vẹn và đồng bộ.
3.2 Chuyển đổi ngược lại
Tương tự như trên, lệnh switchover lần nữa sẽ đảo ngược vai trò, khôi phục DMSVR01 làm nút chính — minh chứng cho khả năng chuyển đổi linh hoạt và không mất dữ liệu.