Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> SQL Server

Đạt được tính khả dụng liên tục với SQL Server Mirroring

Giải pháp Sao chép cơ sở dữ liệu giúp xây dựng hệ thống quản lý cơ sở dữ liệu có tính sẵn sàng cao trong SQL Server, khá đơn giản và phù hợp với cơ sở dữ liệu quy mô trung bình và cấp thấp hơn.

Yêu cầu về một hệ thống quản lý cơ sở dữ liệu có tính 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 đối với các tổ chức, công ty. Tuy nhiên, để đạt được tính sẵn sàng cao (hầu như luôn hoạt động) không phải là điều đơn giản, bởi luôn có rất nhiều yếu tố ảnh hưởng đến hiệu suất hệ thống:sự cố phần cứng, cơ sở 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 giải pháp giúp đạt được tính sẵn sàng cao (HA – High Availability) trên hệ quản trị cơ sở dữ liệu đang được sử dụng hiện nay:SQL Server .

Giải pháp HA trên SQL Server

Cụm chuyển đổi dự phòng

Giải pháp này sử dụng ổ cứng dùng chung - thường là SAN để chứa cơ sở dữ liệu. Có rất nhiều ' trường hợp ' trong SQL Server được cài đặt, mỗi phiên bản là một nút, nhưng tại một thời điểm chỉ có một nút có quyền kiểm soát cơ sở dữ liệu. Khi nút này có vấn đề thì nút khác sẽ thay thế để quản lý cơ sở dữ liệu.

Nhật ký vận chuyển

Cấu trúc bổ sung của cơ sở dữ liệu dưới dạng bản sao (bản sao). Khi có thay đổi hoặc cập nhật từ cơ sở dữ liệu chính, tệp nhật ký ghi lại những thay đổi này sẽ được gửi đến phiên bản máy chủ nhân bản. Bằng cách này, một bản sao cập nhật của cơ sở dữ liệu được duy trì. Trong trường hợp xảy ra sự cố, cơ sở dữ liệu sao chép sẽ được chuyển đổi thành cơ sở dữ liệu chính trong thời gian ngắn.

Đạt được tính khả dụng liên tục với SQL Server Mirroring hình 1:Thiết lập SQL Server luôn có sẵn

Sao chép

Nếu Cụm chuyển đổi dự phòngNhật ký vận chuyển là hai giải pháp để đảm bảo tính sẵn sàng cao ở cấp cơ sở dữ liệu, Sao chép chỉ đảm bảo tính sẵn sàng cao ở cấp độ các đối tượng trong cơ sở dữ liệu như bảng, dạng xem… Các đối tượng này sẽ được sao chép sang phiên bản thứ 2 của SQL Server để lưu trữ.

Sao chép dữ liệu trong SQL Server

Sao chép cơ sở dữ liệu (DM) là giải pháp mới để xây dựng cơ sở dữ liệu có tính sẵn sàng cao trong SQL Server. DM khắc phục được những nhược điểm của các giải pháp trước đây như:

→ So với Cụm chuyển đổi dự phòng, DM không yêu cầu phần cứng đặc biệt như SAN, do đó giảm chi phí cấu hình

→ So với Vận chuyển nhật ký, DM có thể tự động chuyển sang máy nhân bản khi xảy ra lỗi mà không cần quản trị viên phải hành động. Việc gửi nhật ký yêu cầu cấu hình thủ công bằng T-SQL. Do đó, DM được gọi là 'chế độ chờ nóng', khi thời gian gián đoạn (thời gian ngừng hoạt động) có thể được tính bằng giây và Log-shipping được gọi là 'chế độ chờ ấm', vì thời gian gián đoạn có thể tính bằng phút hoặc hơn.

→ So sánh với bản sao , DM ưu việt hơn vì nó bảo vệ toàn bộ cơ sở dữ liệu, còn Replication chỉ bảo vệ các phần của cơ sở dữ liệu, ví dụ như các bảng như master.

Tuy nhiên, DM chỉ khả dụng trong Doanh nghiệp / Nhà phát triển phiên bản SQL Server 2005 SP1 / 2008.

1. Cấu trúc DM trong SQL Server

DM trong SQL Server yêu cầu 3 phiên bản chính: 1 phiên bản (vai trò chính) để quản lý cơ sở dữ liệu, 1 phiên bản bổ sung (nhân bản) để đảm bảo sao lưu cơ sở dữ liệu. Một phiên bản của nhân chứng kết nối với hai phiên bản chính và phiên bản phụ để giám sát và đảm bảo tính sẵn sàng của cơ sở dữ liệu.

Khi có mặt nhân chứng: Máy chủ nhân chứng kết nối với cả máy chủ chính và máy chủ nhân bản. Lúc này toàn bộ hệ thống trở thành đại biểu mà 2 trong 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ủ nhân chứng sẽ tự động chuyển máy chủ nhân bản sang máy chủ chính. Nếu sau đó máy chủ chính hoạt động trở lại thì máy chủ chính sẽ đảm nhận vai trò máy chủ nhân bản (2 máy chủ hiện thay đổi vai trò cho nhau) cho đến khi có sự can thiệp của quản trị viên ( sơ đồ 1 ).

Đạt được tính khả dụng liên tục với SQL Server Mirroring hình 2:Luôn có sẵn thiết lập SQL Server

Khi không có máy chủ nhân chứng: Quá trình chuyển đổi tự động sẽ không hoạt động nếu không có sự tác động của quản trị viên.

Trong SQL Server có khái niệm về ' endPoint ' có thể hiểu là 'điểm kết nối', cho phép các phiên bản SQL Server giao tiếp với nhau thông qua TCP ( sơ đồ 2 ).

Mỗi điểm cuối được xác định bởi 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 trên thực tế có thể sử dụng theo một trong 4 cách:

- Xác định thông qua tên máy chủ. Ví dụ:TCP://PRINCIPAL:7024.

- Xác định qua tên miền. 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.

Lưu ý: Trong trường hợp Phiên bản SQL Server chạy trên cùng 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ụ

Đạt được tính khả dụng liên tục với SQL Server Mirroring hình 3:Luôn có sẵn thiết lập SQL Server

Chế độ tốc độ cao (Hiệu suất cao):

Chế độ Hiệu suất cao 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 đến máy chủ nhân bản và tiếp tục thực hiện các thay đổi khác mà không cần cập nhật thành công máy chủ nhân bản.

Bằng cách không đợi máy chủ nhân bản cập nhật các thay đổi, máy chủ chính có tốc độ truy cập nhanh hơn và tránh tải không cần thiết.

Quá trình này có thể được minh họa bằng sơ đồ sau:

Đối với chế độ tốc độ cao, máy chủ nhân bản luôn cập nhật chậm hơn máy chủ chính và có thể xảy ra 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 gửi dữ liệu về máy chủ. gương. Tuy nhiên, phần cơ sở dữ liệu khác nhau này tương đối nhỏ và có thể chấp nhận được. Chế độ hiệu suất cao - Không cần phải có máy chủ Witness để có chế độ hiệu suất cao.

Chế độ An toàn Cao (An toàn Cao):

Khác với chế độ tốc độ cao, chế độ an toàn cao sử dụng cơ chế Đồng bộ. 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ủ nhân bản. Điều này sẽ đảm bảo khi máy chủ chính gặp sự cố thì máy chủ nhân bản sẽ có bản sao cơ sở dữ liệu đầy đủ và đầy đủ, nhờ đó đảm bảo tính bảo mật dữ liệu cao.

Chế độ bảo mật cao yêu cầu máy chủ chứng kiến ​​để đảm bảo chế độ chờ nóng - chế độ chờ nóng.

3. Cấu hình DM:

Định cấu hình DM trên SQL Server gồm 3 bước cơ bản:

- Backup (sao lưu) toàn bộ cơ sở dữ liệu trên máy chủ chính rồi khôi phục (restore) trên máy chủ mirror.

- Tạo các điểm cuối tương ứng để máy chủ chính, máy nhân bản và nhân chứng hoạt động cùng nhau.

- Tạo một phiên (Phiên sao chép cơ sở dữ liệu)

Đạt được tính khả dụng liên tục với SQL Server Mirroring hình 4:Luôn có sẵn thiết lập SQL Server

Việc định cấu hình DM có thể được thực hiện bằng giao diện của SQL Server Management Studio (SSMS) hoặc có thể được định cấu hình bằng T-SQL.

Việc cấu hình với giao diện của SQL Server Management Studio khá đơn giản, sau khi đã khôi phục thành công dữ liệu trên mirror server, bạn chỉ cần nhấn chuột phải vào cơ sở dữ liệu và chọn ' Mirroring ', sau đó làm theo các bước .

Kết quả sẽ là khởi tạo phiên DM.

Cấu hình SSMS cho phép loại bỏ hầu hết các thao tác khi thực hiện với T-SQL, nhưng nếu muốn, bạn vẫn có thể sử dụng T-SQL để đạt được độ linh hoạt cao nhất.

Cấu hình trên T-SQL có thể sử dụng 2 cách để xác thực các điểm cuối khác nhau:Xác minh bằng đăng nhập hoặc xác thực bằng chứng chỉ. Code T-SQL đã hoàn thiện nê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 điển hình.

Cấu hình bằng đăng nhập

Giả sử chúng ta sử dụng tài khoản Windows để đăng nhập vào SQL Server, trong trường hợp sử dụng tài khoản SQL Server cũng thực hiện tương tự.

TẠO ĐĂNG NHẬP [PRICIPAL-SRVAdministrator]
TỪ CỬA SỔ
ĐI

Tạo điểm cuối:

TẠO đối tác ĐIỂM CUỐI
TRẠNG THÁI =BẮT ĐẦU
NHƯ TCP (LISTENER_PORT =5022)
CHO CƠ SỞ DỮ LIỆU_MIRRORING (
XÁC THỰC =WINDOWS THƯƠNG LƯỢNG,
MÃ HÓA =ĐƯỢC HỖ TRỢ,
VAI TRÒ =TẤT CẢ)
ĐI

Lưu ý rằng việc tạo điểm cuối với ROLE =ALL cần thực hiện trên cả máy chủ chính và máy chủ mirror, trên máy chủ nhân chứng bạn thay bằng ROLE =WITNESS .

Đạt được tính khả dụng liên tục với SQL Server Mirroring hình 5:Luôn có sẵn thiết lập SQL Server

Định cấu hình theo chứng chỉ:

Thay vì sử dụng tài khoản đăng nhập để mỗi điểm cuối nhận dạng lẫn nhau, có thể sử dụng giải pháp thay thế để tạo chứng chỉ – certificate.

- Tạo mã hóa master key (bắt buộc phải xuất chứng chỉ):

tạo khóa xác thực người dùng từ mật khẩu ='abc123 !!';

- Tạo chứng chỉ:

tạo chứng chỉ PRINCIPAL_cert
với chủ đề ='Chứng chỉ CHÍNH',
ngày bắt đầu ='2007/11/01',
hết hạn_date ='2020/11/01';

Đạt được tính khả dụng liên tục với SQL Server Mirroring hình 6:Luôn có sẵn thiết lập SQL Server - Tạo điểm cuối tương ứng với chứng chỉ:

Tạo điểm cuối endpoint_mirroring trạng thái =đã bắt đầu
dưới dạng tcp (listener_port =7024, listen_ip =tất cả)
đối với cơ sở dữ liệu_mirroring (xác thực =chứng chỉ PRINCIPAL_cert, mã hóa =bị vô hiệu hóa, vai trò =tất cả);

- Xuất chứng chỉ ra file riêng:

Sao lưu chứng chỉ PRINCIPAL_cert vào file ='c:PRINCIPAL_cert.cer';
Thực hiện tương tự trên máy chủ mirror và nhân chứng, chú ý thay đổi role =nhân chứng khi cần thiết. Sau khi tạo Endpoint và xuất chứng chỉ trên cả 3 instance, quay lại máy chủ chính:

- Tạo thông tin đăng nhập cho máy chủ nhân bản:

tạo thông tin đăng nhập MIRROR_login với PASSWORD ='abc123 !!';
ĐI

- Tạo người dùng tương ứng với Đăng nhập đó

tạo người dùng MIRROR_user từ thông tin đăng nhập MIRROR_login;
ĐI

- Tạo chứng chỉ từ file .cer của máy chủ:

Tạo chứng chỉ MIRROR_cert
Ủy quyền MIRROR_user
Từ file ='c:MIRROR_cert.cer';
ĐI

- Cấp quyền kết nối endpoint cho mirror đăng nhập của máy chủ:

Cấp KẾT NỐI TRÊN Điểm cuối ::endpoint_mirroring cho [MIRROR_login];
ĐI

Đạt được tính khả dụng liên tục với SQL Server Mirroring hình 7:Luôn có sẵn thiết lập SQL Server Thực hiện tương tự cho chứng chỉ máy chủ nhân chứng, cũng như trên máy chủ nhân bản và nhân chứng để 3 máy tính có thể nhận dạng và xác thực lẫn nhau.

Sau khi tạo điểm cuối, bạn có thể kiểm tra chúng bằng truy vấn:

CHỌN tên, state_desc, role_desc
TỪ sys.database_mirroring_endpoint

Nhiệm vụ cuối cùng là bắt đầu phiên dành cho DM:

* Trên máy chủ chính:

THAY ĐỔI CƠ SỞ DỮ LIỆU AdventureWorks
THIẾT LẬP ĐỐI TÁC ='TCP://mirror-srv.deltax.com:5022'
ĐI

* Trên máy chủ nhân bản:

THAY ĐỔI CƠ SỞ DỮ LIỆU AdventureWorks
ĐẶT ĐỐI TÁC ='TCP://pricipal-srv.deltax.com:5022'
ĐI

* Trên máy chủ chính, thiết lập máy chủ nhân chứng:

THAY ĐỔI CƠ SỞ DỮ LIỆU AdventureWorks
THIẾT LẬP WITNESS ='TCP://witness-srv.deltax.com:5022'
ĐI

Sau khi hệ thống đã hoạt động, nó có thể được giám sát bằng Màn hình phản ánh cơ sở dữ liệu công cụ :

Đạt được tính khả dụng liên tục với SQL Server Mirroring hình 8:Luôn có sẵn thiết lập SQL Server

4. Lập trình phần mềm trung gian:

Việc sử dụng DM được cho là gần như minh bạch đối với kết nối cơ sở dữ liệu từ phía phần mềm trung gian. Nếu bạn sử dụng thư viện ADO.NET, chỉ cần sửa đổi ConnectionString để thêm ' đối tác chuyển đổi dự phòng ' tới máy chủ nhân bản, ví dụ:

Nguồn dữ liệu =pcipal.database.com; Đối tác chuyển đổi dự phòng =mirror.database.com; Danh mục ban đầu =AdventureWorks;
Bảo mật tích hợp =Đúng;

Ngoài ra, ADO.NET còn tạo một ' nhóm kết nối ' cho phép lưu vào bộ đệm các kết nối đã được khởi tạo, vì vậy trong trường hợp xảy ra sự cố dẫn đến chuyển đổi máy chủ, bạn cần tích cực thực hiện các thao tác bổ sung. xóa bộ đệm này.

SqlConnection.ClearPool (kết nối);

Phần kết

Đạt được tính khả dụng liên tục với SQL Server Mirroring hình 9:Luôn có sẵn thiết lập SQL Server DM trong SQL Server khá đơn giản, dễ cấu hình, sử dụng và giám sát nhưng khả năng của nó tương đối hạn chế. Nó chỉ phù hợp với cơ sở dữ liệu quy mô trung bình và cấp thấp hơn, còn đối với cơ sở dữ liệu lớn có yêu cầu khắt khe về tính liên tục thì phương pháp đề xuất chưa đáp ứng được nhưng cần có giải pháp hệ điều hành tổng thể. hệ thống phần cứng, mạng.

Bài viết hy vọng giúp các bạn có cái nhìn tổng quan về cách xây dựng hệ thống quản lý cơ sở dữ liệu có tính sẵn sàng cao trong SQL Server.

Tham khảo:http://technet.microsoft.com/en-us/library/cc917680.aspx

Chúc may mắn.

Bạn vừa đọc xong bài viết "Luôn có sẵn cài đặt SQL Server " được chỉnh sửa bởi TipsMake đội. Chúng tôi hy vọng bài viết này đã cung cấp cho bạn nhiều mẹo và thủ thuật công nghệ hữu ích. Bạn có thể tìm kiếm các bài viết tương tự về mẹo và hướng dẫn. Cảm ơn bạn đã đọc và theo dõi chúng tôi thường xuyên.