Thiết lập SQL Server luôn sẵn sàng
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.
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 xóa tài khoản khá đơn giản mẹo vặt và phù hợp địa chỉ với ứng dụng 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 kinh nghiệm , đôi khi là yếu tố sống còn ở đâu tốt với hay nhất các tổ chức khóa chặn , công ty qua web . Tuy nhiên dịch vụ , tải về để đạ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 ứng dụng , vì luôn có nhiều yếu tố làm ảnh hưởng đến hoạt động ở đâu uy tín của hệ thống: sự cố phần cứng qua mạng , hạ tầng mạng full crack , lỗi hệ điều hành kỹ thuật , lỗi phần mềm ứng dụng cập nhật , 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 sửa lỗi được dùng phổ biến cài đặt 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 giả mạo để chứa CSDL phải làm sao . Có nhiều “instance” hay nhất của SQL Server sửa lỗi được cài đặt tài khoản , mỗi instance là 1 node hay nhất , chia sẻ nhưng tại 1 thời điểm chỉ có 1 node nguyên nhân được quyền điều khiển CSDL dữ liệu . như thế nào Khi node này gặp trục trặc kích hoạt , 1 node khác dịch vụ sẽ thay thế nó quản lý CSDL.
Log shipping
Cơ cấu bổ sung 1 CSDL làm mirror (bản sao) kinh nghiệm . giả mạo Khi có thay đổi đăng ký vay hoặc cập nhật từ CSDL chính tốt nhất , file log ghi lại nhanh nhất các thay đổi này hướng dẫn sẽ tất toán được gửi sang cho instance mẹo vặt của máy chủ mirror link down . Bằng cách này nhanh nhất , người ta duy trì một bản sao cập nhật danh sách của CSDL an toàn . Trong trường hợp xảy ra sự cố danh sách , CSDL bản sao xóa tài khoản sẽ miễn phí được chuyển thành CSDL chính trong thời gian ngắn.
Replication
ở đâu uy tín Nếu như Failover cluster và Log Shipping là 2 giải pháp đảm bảo high-availability ở cấp độ CSDL phải làm sao thì Replication chỉ đảm bảo high-availability ở cấp độ dịch vụ các đối tượng trong CSDL như table sử dụng , view… Các đối tượng này download sẽ giảm giá được copy sang một instance thứ 2 đăng ký vay của SQL Server thanh toán để 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 nhanh nhất . DM khắc phục địa chỉ các nhược điểm trên điện thoại của hướng dẫn các giải pháp trước đó như:
• So mới nhất với Failover Cluster, DM không yêu cầu phần cứng danh sách đặc biệt như SAN địa chỉ , vì vậy giảm nguyên nhân được chi phí khi cấu hình
• So giá rẻ với Log Shipping, DM cập nhật có thể tự động chuyển sang máy mirror khi xảy ra lỗi dịch vụ mà không cần người quản trị phải tác động an toàn . Log shipping yêu cầu phải cấu hình thủ công bằng T-SQL địa chỉ . Chính vì vậy bản quyền , DM hướng dẫn được gọi là “hot standby” nguyên nhân , khi thời gian gián đoạn (downtime) giả mạo có thể tính bằng giây tối ưu , còn Log-shipping lừa đảo được gọi là “warm standby” mới nhất , vì thời gian gián đoạn dữ liệu có thể tính bằng phút tất toán hoặc hơn.
• So lấy liền với Replication cập nhật , DM vượt trội hơn do bảo vệ mới nhất được toàn bộ CSDL link down , còn Replication chỉ bảo vệ từng phần trong CSDL tất toán , ví dụ đăng ký vay các table như master.
Tuy nhiên hướng dẫn , DM chỉ có trong phiên bản Enterprise/Developer cài đặt của SQL Server 2005 SP1/2008.
1 danh sách . Cơ cấu tối ư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 full crack , 1 instance phụ (mirror) đảm bảo việc sao lưu CSDL kiểm tra . 1 instance giám sát (witness) kết nối sửa lỗi với 2 instance chính qua web và phụ đăng ký vay để giám sát kỹ thuật và đảm bảo tính sẵn sàng tất toán của CSDL.
ở đâu uy tín Khi có mặt witness: Máy chủ witness kết nối chi tiết với cả 2 máy chủ chính tốt nhất và máy chủ mirror tất toán . Lúc này toàn bộ hệ thống trở thành 1 quorum trực tuyến mà 2 trong số 3 thành phần có quyền quyết định qua mạng . Trong trường hợp máy chủ chính gặp sự cố cài đặt , máy chủ witness chi tiết sẽ tự động chuyển máy chủ mirror thành máy chủ chính cài đặt . cập nhật Nếu sau đó kỹ thuật , máy chủ chính hoạt động trở lại tất toán , máy chủ chính chia sẻ 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 hay nhất của nhà quản trị (sơ đồ 1).
full crack Khi không có máy chủ witness: Quá trình chuyển đổi tự động cài đặt sẽ không thực hiện như thế nào được kỹ thuật mà cần có tác động miễn phí của nhà quản trị.
Trong SQL Server có khái niệm “endPoint” kích hoạt có thể hiểu là “điểm kết nối” nguyên nhân , cho phép dữ liệu các instance SQL Server liên lạc dịch vụ với nhau thông qua giao thức TCP (sơ đồ 2).
Mỗi endpoint nạp tiền được xác định bằng một địa chỉ tất toán và cổng tương ứng địa chỉ . Về mặt lý thuyết tất toán , địa chỉ phải là địa chỉ tên miền đầy đủ danh sách , tốt nhất nhưng thực tế kích hoạt có thể dùng một trong 4 cách sau:
- Xác định thông qua tên server tải về . 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 nhanh nhất các Instance SQL Server cùng chạy trên một máy link down thì cổng TCP phải khác nhau.
2 như thế nào . Trao đổi thông tin giữa máy chủ chính link down và máy chủ phụ
Chế độ tốc độ cao (High-Performance):
Chế độ High-Performance tương ứng tự động với việc tạo bản sao không đồng bộ nhanh nhất . Máy chủ chính gửi sửa lỗi các bản cập nhật sang máy chủ mirror tối ưu và tiếp tục thực hiện trực tuyến các thay đổi khác tối ưu mà không cần máy chủ mirror báo hướng dẫn đã 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 ứng dụng các thay đổi ở đâu uy tín , nên máy chủ chính có tốc độ truy xuất nhanh hơn nơi nào và tránh nơi nào được tải không cần thiết.
Quy trình này sử dụng có thể giả mạo được minh họa bằng lược đồ sau:
Đối mới nhất với chế độ tốc độ cao công cụ , máy chủ mirror luôn cập nhật chậm hơn so trực tuyến với máy chủ chính dữ liệu , chi tiết và giả mạo 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 qua web mà chưa kịp gửi dữ liệu sang máy chủ mirror quản lý . Tuy nhiên công cụ , phần CSDL khác biệt này danh sách tương đối nhỏ quảng cáo và ở đâu uy tín có thể chấp nhận hỗ trợ được sử dụng . 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 tổng hợp với chế độ tốc độ cao tốc độ , chế độ an toàn cao sử dụng cơ chế đồng bộ (Synchronous) ở đâu tốt . phải làm sao Khi ứng dụng tài khoản hoặc người dùng cập nhật nhanh nhất , nó link down sẽ quảng cáo được cập nhật gần như đồng thời trên cả máy chủ chính kích hoạt và máy chủ mirror kích hoạt . Điều này dịch vụ sẽ đảm bảo khi máy chủ chính xảy ra sự cố kinh nghiệm , máy chủ mirror hay nhất sẽ có bản sao đầy đủ hướng dẫn và toàn vẹn khóa chặn của CSDL hướng dẫn , 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 nguyên nhân để đảm bảo tính thay thế nóng - hot standby.
3 nạp tiền . 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 mật khẩu và chi tiết sau đó khôi phục (restore) trên máy chủ mirror.
- Tạo qua web các endpoint tương ứng tốc độ để lấy liền các máy chủ chính bản quyền , mirror dịch vụ và witness làm việc ở đâu tốt với nhau.
- Tạo một phiên làm việc (Database Mirroring Session)
Việc cấu hình DM trên điện thoại có thể thực hiện bằng giao diện nơi nào của SQL Server Management Studio (SSMS) ở đâu nhanh , dữ liệu hoặc tải về có thể cấu hình bằng T-SQL.
Cấu hình bằng giao diện sử dụng của SQL Server Management Studio nhanh nhất khá đơn giản tải về , sau khi ở đâu tốt đã restore dữ liệu thành công trên máy chủ mirror giả mạo , chỉ cần nhấn chuột phải vào cơ sở dữ liệu phải làm sao và chọn “Mirroring” link down , như thế nào sau đó thực hiện theo từng bước.
Kết quả thu chi tiết được lấy liền sẽ là việc khởi tạo một session mới nhất của DM.
Việc cấu hình bằng SSMS cho phép loại bỏ gần hết an toàn các thao tác khi thực hiện bằng T-SQL thanh toán , tuy nhiên ở đâu tốt nếu muốn bạn sửa lỗi vẫn tổng hợp có thể dùng T-SQL nguyên nhân để đạt độ mềm dẻo cao nhất.
Cấu hình trên T-SQL tất toán có thể dùng 2 cách danh sách để tài khoản các endpoint xác thực lẫn nhau: Xác thực bằng login danh sách hoặc xác thực bằng certificate cập nhật . Đoạn mã T-SQL hoàn thiện sửa lỗi để cấu hình DM trên điện thoại khá dài nên chúng tôi chỉ giới thiệu một số bước tiêu biểu.
Cấu hình bằng Login
Giả sử chúng ta dùng tài khoản Windows quảng cáo để đăng nhập vào SQL Server ứng dụng , trường hợp dùng tài khoản SQL Server tốt nhất cũng thực hiện hoàn toàn tương tự.
CREATE LOGIN [PRICIPAL-SRVAdministrator]
FROM WINDOWS
GO
Tạo vô hiệu hóa các endpoint:
CREATE ENDPOINT Partner
STATE = STARTED
AS TCP ( LISTENER_PORT = 5022 )
FOR DATABASE_MIRRORING (
AUTHENTICATION = WINDOWS NEGOTIATE,
ENCRYPTION = SUPPORTED,
ROLE=ALL)
GO
Chú ý là việc tạo endpoint kỹ thuật với ROLE=ALL cần thực hiện trên cả máy chủ principal ở đâu uy tín và mirror download , trên máy chủ witness nơi nào , bạn thay bằng ROLE=WITNESS.
Cấu hình bằng Certificate:
Thay vì sử dụng tài khoản login danh sách để cho mới nhất các endpoint nhận diện nhau nơi nào , ở đâu tốt có thể dùng giải pháp thay thế là tạo tối ưu các chứng thực – certificate.
- Tạo mã hóa master key (bắt buộc tài khoản để xuất certificate):
create master key encryption by password = "abc123!!";
- Tạo một cerfiticate:
create certificate PRINCIPAL_cert
with subject = "PRINCIPAL certificate",
start_date = "2007/11/01",
expiry_date = "2020/11/01";
Create endpoint endpoint_mirroring state = started
as tcp(listener_port = 7024 ở đâu tốt , listener_ip = all)
for database_mirroring (authentication = certificate PRINCIPAL_cert sửa lỗi , encryption = disabled tài khoản , role = all);
- Xuất certificate ra một file an toàn riêng:
Backup certificate PRINCIPAL_cert to file = "c:PRINCIPAL_cert.cer";
Thực hiện tương tự trên máy chủ mirror cập nhật và witness tối ưu , chú ý thay đổi role = witness khi cần thiết công cụ . Sau khi thanh toán đã tạo tải về các Endpoint xóa tài khoản và xuất link down các certificate trên cả 3 instance mẹo vặt , quay trở lại máy chủ principal:
- Tạo một login cho máy chủ mirror:
create login MIRROR_login with PASSWORD = "abc123!!";
GO
- Tạo một user tương ứng qua web với Login đó
create user MIRROR_user from login MIRROR_login;
GO
- Tạo certificate từ file .cer qua app của máy chủ mirror:
Create certificate MIRROR_cert
Authorization MIRROR_user
From file = "c:MIRROR_cert.cer";
GO
- Cấp quyền kết nối đến endpoint cho login tính năng của máy chủ mirror:
Grant CONNECT ON Endpoint::endpoint_mirroring to [MIRROR_login];
GO
Sau khi full crack đã tạo nhanh nhất các endpoint dịch vụ , bạn link down có thể kiểm tra chúng bằng truy vấn:
SELECT name dữ liệu , state_desc qua mạng , role_desc
FROM sys.database_mirroring_endpoint
Công việc cuối cùng là khởi tạo một session cho DM:
* ở đâu nhanh Trên máy chủ principal:
ALTER DATABASE AdventureWorks
SET PARTNER = "TCP://mirror-srv.deltax.com:5022"
GO
* dữ liệu Trên máy chủ mirror:
ALTER DATABASE AdventureWorks
SET PARTNER = "TCP://pricipal-srv.deltax.com:5022"
GO
* danh sách Trên máy chủ principal tốc độ , thiết lập máy chủ witness:
ALTER DATABASE AdventureWorks
SET WITNESS = "TCP://witness-srv.deltax.com:5022"
GO
Sau khi hệ thống giá rẻ đã đi vào hoạt động nơi nào , mật khẩu có thể giám sát bằng công cụ Database Mirroring Monitor:
4 qua mạng . Lập trình middleware:
Việc sử dụng DM qua app có thể nói là gần như trong suốt đối link down với việc kết nối CSDL từ phía middleware tăng tốc . chia sẻ Nếu bạn sử dụng thư viện ADO.NET tốt nhất , chỉ cần sửa đổi ConnectionString phải làm sao để thêm trường “failover partner” chỉ đến máy chủ mirror sửa lỗi , ví dụ:
Data Source=pricipal.database.com;Failover Partner=mirror.database.com;Initial Catalog=AdventureWorks;
Integrated Security=True;
Ngoài ra giá rẻ , ADO.NET tạo một “connection pool” cho phép lưu đệm (cache) tăng tốc các connection công cụ đã thanh toán được khởi tạo kinh nghiệm , nên trong trường hợp xảy ra sự cố dẫn đến phải chuyển đổi máy chủ kích hoạt , bạn cần chủ động thực hiện thêm thao tác xóa bộ nhớ cache này.
SqlConnection.ClearPool(conn);
Lời kết
Bài viết hy vọng giúp bạn có cái nhìn tổng quan về giải pháp xây dựng hệ quản trị CSDL có độ sẵn sàng cao trong SQL Server.
Tham khảo: http://technet.microsoft.com/en-us/library/cc917680.aspx
Chúc nhanh nhất các bạn thành công.
4.9/5 (103 votes)