Phân biệt VIP và SCAN trong Oracle RAC

VIP (Virtual IP)SCAN (Single Client Access Name) là hai khái niệm quan trọng trong Oracle RAC, tuy nhiên chúng có những điểm khác biệt sau:

Sem cabeça Suponha Demônio oracle rac load balancing not working Tend  mangueira Arado

Mục đích:

  • VIP: Dùng để cân bằng tải và cung cấp khả năng sẵn sàng cao cho truy cập vào dịch vụ database (database service).
  • SCAN: Dùng để đơn giản hóa việc truy cập vào cụm RAC (cluster access) cho người dùng.

Cách thức hoạt động:

  • VIP:
    • Cấu hình trên thiết bị mạng (router hoặc load balancer).
    • Khi truy cập vào VIP, thiết bị mạng sẽ chuyển hướng lưu lượng truy cập đến một trong các server trong cụm dựa trên thuật toán cân bằng tải.
    • Server nhận được yêu cầu sẽ xử lý và trả về kết quả cho người dùng.
  • SCAN:
    • Cấu hình trên một hoặc nhiều thiết bị mạng (router hoặc load balancer).
    • Khi truy cập vào SCAN, thiết bị mạng sẽ chuyển hướng lưu lượng truy cập đến một trong các server trong cụm dựa trên thuật toán cân bằng tải.
    • Server nhận được yêu cầu sẽ xử lý và chuyển tiếp yêu cầu đến server có chứa database mà người dùng muốn truy cập.

Lợi ích:

  • VIP:
    • Cân bằng tải giữa các server trong cụm.
    • Nâng cao tính sẵn sàng cao cho dịch vụ database.
    • Giúp đơn giản hóa việc quản lý truy cập vào dịch vụ database.
  • SCAN:
    • Đơn giản hóa việc truy cập cho người dùng (chỉ cần sử dụng một tên duy nhất để truy cập vào tất cả các server trong cụm).
    • Nâng cao tính sẵn sàng cao cho việc truy cập vào cụm (nếu một server gặp sự cố, SCAN sẽ tự động chuyển hướng lưu lượng truy cập đến các server còn lại).

Cấu hình:

  • VIP:
    • Cấu hình trên thiết bị mạng.
    • Cấu hình DNS để trỏ VIP đến địa chỉ IP của thiết bị mạng.
    • Cấu hình Oracle Clusterware để sử dụng VIP.
  • SCAN:
    • Cấu hình trên thiết bị mạng.
    • Cấu hình DNS để trỏ SCAN đến địa chỉ IP của thiết bị mạng.
    • Cấu hình Oracle Clusterware để sử dụng SCAN.

Bảng tóm tắt:

Tính năngVIPSCAN
Mục đíchCân bằng tải, sẵn sàng cao cho dịch vụ databaseĐơn giản hóa truy cập vào cụm
Cách thức hoạt độngChuyển hướng truy cập đến server có databaseChuyển hướng truy cập đến server có database mà người dùng muốn truy cập
Lợi íchCân bằng tải, sẵn sàng cao, đơn giản hóa quản lýĐơn giản hóa truy cập, sẵn sàng cao
Cấu hìnhCấu hình trên thiết bị mạng, DNS, Oracle ClusterwareCấu hình trên thiết bị mạng, DNS, Oracle Clusterware

Lưu ý:

  • Cả VIP và SCAN đều có thể được sử dụng cùng lúc để tối ưu hóa hiệu quả và khả năng truy cập cho cụm Oracle RAC.
  • Việc sử dụng VIP và SCAN có thể giúp nâng cao tính sẵn sàng cao, hiệu quả và bảo mật cho hệ thống database.

Ví dụ:

Giả sử bạn có một cụm RAC với 2 server: RAC1 và RAC2. Bạn muốn cấu hình VIP và SCAN để người dùng có thể truy cập vào database bằng tên ORCL.

Cấu hình VIP:

  • Router:
ip route 192.168.1.100 255.255.255.0 192.168.1.1

interface virtual 1

ip address 192.168.1.100 255.255.255.0
  • DNS:
A ORCL 192.168.1.100
  • Oracle Clusterware:
crsctl set vip_name ORCL

Cấu hình SCAN:

  • Router:
ip route 192.168.1.101 255.255.255.0 192.16

MÔ HÌNH KẾT NỐI TRONG THỰC TẾ:

Khi một client kết nối đế database => nếu kết nối thẳng vào IP của server nếu server down => hệ thống sẽ trả về là Not connect và sẽ không có dữ liệu nào được load ra => như thế hệ thống sẽ là down

VIP IP:

VIP IP không được cấu hình cho card mạng cụ thể nào mà nó được thả nổi trong cụm, khi một máy chủ down nó sẽ tiến hành bỏ qua máy chủ đó mà tập trung vào phần còn lại (các node còn lại trong cụm)

SCAN IP:

Giả sử ban đầu bạn có 4 node => sau đó doanh nghiệp của bạn cần giảm xuống thành 2 node do 4 là thừa thãi => chúng ta cần loại bỏ 2 node ra khỏi cụm => vì vậy chúng ta đang có thông tin thừa của 2 node này trong tnsnames của APP => điều này dẫn đến định tuyến mất thời gian => Và chúng ta phải sửa lại file tnsname trong APP kết nối, và như vậy sẽ mất thời gian và có thể dẫn tới sai xót trong quá trình thao tác, tương tự trong trường hợp chúng ta thêm mới node vào trong cụm

=> SCAN (single client access name) xuất hiện để giải quyết vấn đề trên (11G) => nó cho phép client sử dụng duy nhất tên 1 hostname để kết nối vào database.

TNSNAMES.ORA sử dụng VIP:

net_service_name

=

(DESCRIPTION=

(LOAD_BALANCE=on)

(ADDRESS_LIST=

(ADDRESS=(PROTOCOL=tcp)(HOST=sales1-vip1)(PORT=1521))

(ADDRESS=(PROTOCOL=tcp)(HOST=sales2-vip2)(PORT=1521)))

(ADDRESS=(PROTOCOL=tcp)(HOST=sales3-vip3)(PORT=1521)))

(CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))

## nếu load_balance được khai báo => Mọi kết nối đến sẽ theo tuần tự từ host1 tới hết các node trong cụm

## nếu load_balance ko được khai báo => Mọi kết nối đến sẽ kết nối vào host1

TNSNAMES.ORA sử dụng SCAN:

net_service_name

=

(DESCRIPTION=

(LOAD_BALANCE=on)

(ADDRESS_LIST=

(ADDRESS=(PROTOCOL=tcp)(HOST=scan-host.com)(PORT=1521))

(CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))

=> như vậy nếu sử dụng SCAN khi chúng ta remove hoặc thêm mới node vào cụm thì thông tin trong tnsname cũng không cần thay đổi gì cả vì nó chỉ sử dụng 1 định danh duy nhất cho kết nối để đại diện cho toàn bộ cụm

Các lệnh kiểm tra và thao tác RAC

## check thông tin rac VIP

crsctl status res ora.rac1.vip -p

## thông tin tất cả res

crsctl status res -t

EZconnet sqlplus system/manager@sales1-scan:1521/oltp

JDBC connect jdbc:oracle:thin:@sales1-scan:1521/oltp

Datalinks.vn

Hello các bạn, tôi là Dương Nguyễn (DuoDBA - https://www.youtube.com/@DuoDBA) tác giả của blog này. Mong muốn được chia sẻ kiến thức và kinh nghiệm về cơ sở dữ liệu với những người đam mê và quan tâm đến lĩnh vực này. Tôi có tổ chức các khoá Coaching về #OracleDatabase và luyện thi #OCP thường xuyên, các bạn muốn có người đồng hành thì alo tôi nhé. Call/Zalo: 0765 871 888. Thanks you !.....
0 0 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest

0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận