IBM DB2 [Lab 02] Cấu hình HADR trên IBM DB2

BlackDrag0n

Internship/Fresher
Jan 4, 2021
27
1
16
3
Ở bài viết này, mình sẽ hướng dẫn cách cấu hình HADR trên IBM DB2 để tăng tính dự phòng. Bài viết này sẽ bao gồm
Cấu hình HADR trên IBM DB2.
Giả lập trường hợp non forced takeover và forced takeover.


Thực hiện cấu hình HADR cho IBM DB2


Yêu cầu:
  • Cần cấu hình 2 VM được cài đặt sẵn IBM DB2 (Thực hiện theo hướng dẫn ở bài lab trước)
  • 2 VM này cần ping thấy nhau và firewall giữ 2 VM này được mở hết port (Có thể mở theo các port cấu được cấu hình ở dưới)

Thông tin 2 VM ở trong bài lab này mình sẽ sử dụng
DB2-DC (Primary):
  • IP address: 10.120.197.41
  • Hostname: db2-dc
  • Instance: db2inst1
  • Database: DBTST
  • HADR Port: 55555
  • Archive log Directory: /opt/ibm/db2log/archivelog/DBTST
DB2-DR (Standby)
  • IP address: 10.120.50.42
  • Hostname: db2-dr
  • Instance: db2inst1
  • Database: DBTST
  • HADR Port: 55565
  • Archive log Directory: /opt/ibm/db2log/archivelog/DBTST

Một số lưu ý, Database DBTST được tạo trên VM db2-dc trước bằng lệnh sau
Bash:
#Lưu ý login bằng user instance. Ở đây mình sử dụng db2inst1
db2 create db DBTST
1700396605528.png

Do mình đã có Database DBTST nên sẽ hiển thị như hình. Chỉ cần tạo Database trên VM DB2-DC sau khi cấu hình xong sẽ thực hiện backup restore lên VM DB2-DR


Trên VM DB2-DC (Primary)
Kích hoạt Log Archive trên VM DB2-DC ( Primary )bằng lệnh:
Bash:
db2 update db cfg for DBTST using LOGARCHMETH1 DISK:/opt/ibm/db2log/archivelog/DBTST
db2 update db cfg for DBTST using LOGINDEXBUILD ON
Cấu hình HADR trên Primary
Code:
db2 update db cfg for DBTST using HADR_LOCAL_HOST 10.120.197.41
db2 update db cfg for DBTST using HADR_LOCAL_SVC 55556
db2 update db cfg for DBTST  using HADR_REMOTE_HOST 10.120.50.42
db2 update db cfg for DBTST using HADR_REMOTE_SVC 55566
db2 update db cfg for DBTST using HADR_REMOTE_INST db2inst1
Cấu hình Read-only mode on the standby
Code:
db2set DB2_HADR_ROS=on
db2set DB2_STANDBY_ISO=UR
Kiểm tra cấu hình HADR trên Primary
Code:
db2 get db cfg for DBTST | grep -i hadr
1700396973890.png

Thực hiện tắt instance trên Primary
Code:
db2 force application all
db2 deactivate db DBTST
1700397158756.png

Thực hiện offline backup Database trên Primary
Code:
mkdir /home/db2inst1/DBTST_backup
db2 backup database DBTST to /home/db2inst1/DBTST_backup
1700397300185.png

Sau đó copy folder backup qua VM DB2-DR

Khởi chạy lại instance
Code:
db2 activate db DBTST

Trên VM DB2-DR (Standby):
Thực hiện restore database DBTST:
Bash:
db2 restore db DBTST from  /home/db2inst1/DBTST_backup
1700397552978.png

Cấu hình HADR trên Standby
Code:
db2 update db cfg for DBTST using LOGARCHMETH1 DISK:/opt/ibm/db2log/archivelog/DBTST
db2 update db cfg for DBTST using LOGINDEXBUILD ON
db2 update db cfg for DBTST using HADR_LOCAL_HOST 10.120.50.42
db2 update db cfg for DBTST using HADR_LOCAL_SVC 55566
db2 update db cfg for DBTST  using HADR_REMOTE_HOST 10.120.197.41
db2 update db cfg for DBTST using HADR_REMOTE_SVC 55556
db2 update db cfg for DBTST using HADR_REMOTE_INST db2inst1
Cấu hình Read-only mode on the standby
Code:
db2set DB2_HADR_ROS=on
db2set DB2_STANDBY_ISO=UR
Kiểm tra cấu hình HADR trên Standby
Code:
db2 get db cfg for DBTST | grep -i hadr
1700397690783.png

Khởi chạy service HADR:
Khởi chạy service HADR trên VM DB2-DR với trạng thái standby bằng lệnh
Code:
db2 start hadr on db DBTST as standby
Khởi chạy service HADR trên VM DB2-DC với trạng thái primary bằng lệnh
Code:
db2 start hadr on db DBTST as primary
Lưu ý: Nếu khởi chạy DB2-DC với trạng thái primary thì sẽ gặp hiện tượng bị treo service cho đến khi có 1 VM làm standby vì thế khởi chạy standby trước sau đó đến primary

Kiểm tra trạng thái HADR:
Code:
db2pd -hadr -db DBTST
#Có thể sử dụng lệnh db2pd -hadr -alldbs để list toàn bộ database HADR
1700398012945.png

1700398059091.png

Một số điểm cần lưu ý ở đây
1700398136886.png

  • HADR_ROLE: Role hiện tại của instance DB ( Chỉ có thể read/write trên Primary còn standby thì readonly)
  • HADR_STATE: Ở đây sẽ có một số trạng thái như hình dưới. Ở trạng thái PEER thì 2 instance đã đồng bộ với nhau
1700398310441.png

  • HADR_CONNECT_STATUS: Chỉ trạng thái giữa 2 instance standby và primary

Kiểm tra thử dữ liệu đã được đồng bộ giữa 2 instance
trên VM DB2-DC:
Code:
db2
connect to DBTST
create table test (c1 varchar(10),c2 varchar(10))
INSERT INTO test (c1, c2) VALUES('123', 'aaaaaaaaa')
select * from test
1700398503984.png

1700398554475.png

1700398538097.png

Trên VM DB2-DR:
Code:
db2
connect to DBTST
select * from test
1700398615477.png

Như vậy dữ liệu đã được đồng bộ giữa Primary và Standby

Thực hiên takeover giữa 2 instance:


Trạng thái hiện tại
  • VM DB2-DC (Primary)
  • VM DB2-DR (Secondary)
Sẽ có 2 kịch bản để takeover
  • TH1: Cả 2 instance DC và DR hoạt động bình thường (non forced takeover)
  • TH2: instance DC bị sập (forced takeover)
TH1 - non forced takeover:
Kiểm tra trạng thái của VM DB2-DR
1700400542175.png

Thực hiện takeover trên VM DB2-DR
Code:
db2 takeover hadr on db DBTST
1700400584814.png

Sau khi thực hiện takeover trên VM DB2-DR, role của instance sẽ thành primary
1700400622972.png


TH2 - Forced takeover
Ở trường hợp này, mình sẽ giả lập DB2-DC bị sập bằng lệnh
Code:
db2stop force
1700400729347.png

Kiểm tra trạng thái HADR trên DB2-DR thì sẽ thấy status đang là disconnected
1700400768610.png

Chạy thử lệnh takeover bình thường sẽ hiện báo lỗi
1700400805726.png

Sự dụng lệnh sau để forced takeover
Code:
db2 takeover hadr on db DBTST by force
1700400847730.png

1700400860174.png

Giả lập tiếp trường hợp DB2-DC được khôi phục trở lại
Code:
db2start
1700400911207.png

Tuy nhiên chưa có bất kỳ database nào đang chạy cả
1700400961482.png

Nếu khởi chạy bình thường sẽ báo lỗi vì trạng thái HADR hiện tại của VM DB2-DC đang là primary nên theo cơ chế forced takeover thì DB2-DR sẽ gửi các gói tin không cho phép DB2-DC khởi chạy HADR
1700401045612.png

Vì thế cần khởi chạy lại service HADR ở trạng thái standby
Code:
db2 start hadr on db DBTST as standby
1700401093727.png

1700401111767.png

Các thông tin thêm về HADR IBM DB2 các bạn có thể tham khảo thêm tại đây.

Các bài viết liên quan:
IBM DB2 - [Lab 01] Cài đặt IBM DB2 trên Linux | Lab Network System Security (securityzone.vn)
 

About us

  • Securityzone.vn là một trang web chuyên về an ninh mạng và công nghệ thông tin. Trang web này cung cấp các bài viết, tin tức, video, diễn đàn và các dịch vụ liên quan đến lĩnh vực này. Securityzone.vn là một trong những cộng đồng IT lớn và uy tín tại Việt Nam, thu hút nhiều người quan tâm và tham gia. Securityzone.vn cũng là nơi để các chuyên gia, nhà nghiên cứu, sinh viên và người yêu thích an ninh mạng có thể trao đổi, học hỏi và chia sẻ kiến thức, kinh nghiệm và giải pháp về các vấn đề bảo mật trong thời đại số.

Quick Navigation

User Menu