Tải bản đầy đủ (.pdf) (6 trang)

Thiết lập SQL Server luôn sẵn sàng ( phần I) pot

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (326.81 KB, 6 trang )

Thiết lập SQL Server luôn sẵn sàng ( phần I)

Giải pháp Database Mirroring giúp xây dựng hệ quản trị cơ sở dữ
liệu (CSDL) có độ sẵn sàng cao trong SQL Server khá đơn giản và
phù hợp với các CSDL loại vừa trở xuống.
Yêu cầu về một hệ quản trị cơ sở dữ liệu có độ sẵn sàng cao ngày càng
trở nên cấp thiết, đôi khi là yếu tố sống còn với các tổ chức, công ty. Tuy
nhiên, để đạt mức độ sẵn sàng cao (gần như luôn hoạt động) là một điều
không đơn giản, vì luôn có nhiều yếu tố làm ảnh hưởng đến hoạt động
của hệ thống: sự cố phần cứng, hạ tầng mạng, lỗi hệ điều hành, lỗi phần
mềm ứng dụng, virus… Bài viết giới thiệu về 1 giải pháp giúp đạt độ sẵn
sàng cao (HA - High Availability) trên hệ quản trị CSDL được dùng phổ
biến hiện nay: SQL Server.
Các giải pháp HA trên SQL Server
Failover cluster
Giải pháp này sử dụng một ổ cứng dùng chung – thường là SAN để chứa
CSDL. Có nhiều “instance” của SQL Server được cài đặt, mỗi instance là
1 node, nhưng tại 1 thời điểm chỉ có 1 node được quyền điều khiển
CSDL. Khi node này gặp trục trặc, 1 node khác sẽ thay thế nó quản lý
CSDL.
Log shipping
Cơ cấu bổ sung 1 CSDL làm mirror (bản sao). Khi có thay đổi hoặc cập
nhật từ CSDL chính, file log ghi lại các thay đổi này sẽ được gửi sang
cho instance của máy chủ mirror. Bằng cách này, người ta duy trì một bản
sao cập nhật của CSDL. Trong trường hợp xảy ra sự cố, CSDL bản sao sẽ
được chuyển thành CSDL chính trong thời gian ngắn.

Replication
Nếu như Failover cluster và Log Shipping là 2 giải pháp đảm bảo high-
availability ở cấp độ CSDL thì Replication chỉ đảm bảo high-
availability ở cấp độ các đối tượng trong CSDL như table, view… Các


đối tượng này sẽ được copy sang một instance thứ 2 của SQL Server để
lưu trữ.
Data Mirroring trong SQL Server
Database Mirroring (DM) là giải pháp mới xây dựng CSDL có tính sẵn
sàng cao trong SQL Server. DM khắc phục các nhược điểm của các giải
pháp trước đó như:
• So với Failover Cluster, DM không yêu cầu phần cứng đặc biệt như
SAN, vì vậy giảm được chi phí khi cấu hình
• So với Log Shipping, DM có thể tự động chuyển sang máy mirror khi
xảy ra lỗi mà không cần người quản trị phải tác động. Log shipping yêu
cầu phải cấu hình thủ công bằng T-SQL. Chính vì vậy, DM được gọi là
“hot standby”, khi thời gian gián đoạn (downtime) có thể tính bằng giây,
còn Log-shipping được gọi là “warm standby”, vì thời gian gián đoạn có
thể tính bằng phút hoặc hơn.
• So với Replication, DM vượt trội hơn do bảo vệ được toàn bộ CSDL,
còn Replication chỉ bảo vệ từng phần trong CSDL, ví dụ các table như
master.
Tuy nhiên, DM chỉ có trong phiên bản Enterprise/Developer của SQL
Server 2005 SP1/2008.
1. Cơ cấu của DM trong SQL Server
DM trong SQL Server yêu cầu 3 instance: 1 instance chính (principal
role) quản lý CSDL, 1 instance phụ (mirror) đảm bảo việc sao lưu CSDL.
1 instance giám sát (witness) kết nối với 2 instance chính và phụ để giám
sát và đảm bảo tính sẵn sàng của CSDL.
Khi có mặt witness: Máy chủ witness kết nối với cả 2 máy chủ chính và
máy chủ mirror. Lúc này toàn bộ hệ thống trở thành 1 quorum mà 2 trong
số 3 thành phần có quyền quyết định . Trong trường hợp máy chủ chính
gặp sự cố, máy chủ witness sẽ tự động chuyển máy chủ mirror thành máy
chủ chính. Nếu sau đó, máy chủ chính hoạt động trở lại, máy chủ chính sẽ
đảm nhận vai trò là máy chủ mirror (2 máy chủ giờ đổi vai trò cho nhau)

cho đến khi có sự can thiệp của nhà quản trị (sơ đồ 1).

Khi không có máy chủ witness: Quá trình chuyển đổi tự động sẽ không
thực hiện được mà cần có tác động của nhà quản trị.
Trong SQL Server có khái niệm “endPoint” có thể hiểu là “điểm kết
nối”, cho phép các instance SQL Server liên lạc với nhau thông qua giao
thức TCP (sơ đồ 2).
Mỗi endpoint được xác định bằng một địa chỉ và cổng tương ứng. Về mặt
lý thuyết, địa chỉ phải là địa chỉ tên miền đầy đủ, nhưng thực tế có thể
dùng một trong 4 cách sau:
- Xác định thông qua tên server. Ví dụ: TCP://PRINCIPAL:7024.
- Xác định thông qua domain name. Ví dụ:
TCP://PRINCIPAL.DELTAX.COM:7024.
- Xác định thông qua Ipv4. Ví dụ: TCP://192.168.1.3:7024.
- Xác định thông qua Ipv6.
Cần chú ý: Trong trường hợp các Instance SQL Server cùng chạy trên
một máy thì cổng TCP phải khác nhau.
2. Trao đổi thông tin giữa máy chủ chính và máy chủ phụ

Chế độ tốc độ cao (High-Performance):
Chế độ High-Performance tương ứng với việc tạo bản sao không đồng bộ.
Máy chủ chính gửi các bản cập nhật sang máy chủ mirror và tiếp tục thực
hiện các thay đổi khác mà không cần máy chủ mirror báo đã cập nhật
thành công.
Nhờ việc không phải chờ đợi máy chủ mirror cập nhật các thay đổi, nên
máy chủ chính có tốc độ truy xuất nhanh hơn và tránh được tải không cần
thiết.
Quy trình này có thể được minh họa bằng lược đồ sau:
Đối với chế độ tốc độ cao, máy chủ mirror luôn cập nhật chậm hơn so với
máy chủ chính, và có thể xảy ra mất mát dữ liệu trong trường hợp máy

chủ chính gián đoạn hoạt động mà chưa kịp gửi dữ liệu sang máy chủ
mirror. Tuy nhiên, phần CSDL khác biệt này tương đối nhỏ và có thể
chấp nhận được. Chế độ tốc độ cao – High performance mode không bắt
buộc phải có máy chủ Witness.
Chế độ an toàn cao (High-Safety):
Khác với chế độ tốc độ cao, chế độ an toàn cao sử dụng cơ chế đồng bộ
(Synchronous). Khi ứng dụng hoặc người dùng cập nhật, nó sẽ được cập
nhật gần như đồng thời trên cả máy chủ chính và máy chủ mirror. Điều
này sẽ đảm bảo khi máy chủ chính xảy ra sự cố, máy chủ mirror sẽ có bản
sao đầy đủ và toàn vẹn của CSDL, vì vậy đảm bảo an toàn dữ liệu cao.
Chế độ an toàn cao yêu cầu một máy chủ witness để đảm bảo tính thay
thế nóng - hot standby.
3. Cấu hình DM:
Cấu hình DM trên SQL Server gồm 3 bước cơ bản:
- Sao lưu (backup) toàn bộ CSDL trên máy chủ chính và sau đó khôi phục
(restore) trên máy chủ mirror.
- Tạo các endpoint tương ứng để các máy chủ chính, mirror và witness
làm việc với nhau.
- Tạo một phiên làm việc (Database Mirroring Session)

Việc cấu hình DM có thể thực hiện bằng giao diện của SQL Server
Management Studio (SSMS), hoặc có thể cấu hình bằng T-SQL.
Cấu hình bằng giao diện của SQL Server Management Studio khá đơn
giản, sau khi đã restore dữ liệu thành công trên máy chủ mirror, chỉ cần
nhấn chuột phải vào cơ sở dữ liệu và chọn “Mirroring”, sau đó thực hiện
theo từng bước.
Kết quả thu được sẽ là việc khởi tạo một session của DM.
Việc cấu hình bằng SSMS cho phép loại bỏ gần hết các thao tác khi thực
hiện bằng T-SQL, tuy nhiên nếu muốn bạn vẫn có thể dùng T-SQL để đạt
độ mềm dẻo cao nhất.

Cấu hình trên T-SQL có thể dùng 2 cách để các endpoint xác thực lẫn
nhau: Xác thực bằng login hoặc xác thực bằng certificate. Đoạn mã T-
SQL hoàn thiện để cấu hình DM khá dài nên chúng tôi chỉ giới thiệu một
số bước tiêu biểu.

×