Thứ Hai, 1 tháng 6, 2015

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.

 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.

0 nhận xét:

Đăng nhận xét