Nếu bạn đang triển khai Nhóm tính khả dụng của SQL Server, một trong những khía cạnh quan trọng của việc triển khai thành công là giám sát sự đồng bộ hóa của cơ sở dữ liệu bản sao thứ cấp với bản sao chính. Có nhiều cách để giám sát đồng bộ hóa bản sao trong Nhóm sẵn có và bài đăng này sẽ hiển thị từng cách trong số đó và giải thích những lợi ích và hạn chế của chúng,
Một trong những cách dễ nhất để theo dõi trạng thái của Nhóm khả dụng, từng máy chủ bản sao và cơ sở dữ liệu về tính khả dụng là thông qua bảng điều khiển tích hợp sẵn trong Management Studio. Tuy nhiên, bố cục mặc định của trang tổng quan không cung cấp nhiều chi tiết và sẽ cần được tùy chỉnh để hiển thị thêm thông tin về các máy chủ bản sao cũng như cơ sở dữ liệu về tính khả dụng. Các cột bổ sung có thể được thêm vào bố cục thông qua liên kết Thêm / Xóa Cột trên trang tổng quan hoặc thông qua menu ngữ cảnh nhấp chuột phải vào bất kỳ tiêu đề cột hiện có nào, như được hiển thị bên dưới:
Tùy chỉnh Trang tổng quan AG trong SSMS
Đối với cơ sở dữ liệu tính khả dụng, việc theo dõi Kích thước hàng đợi gửi nhật ký (KB), Tốc độ gửi nhật ký (KB / giây), Mất dữ liệu ước tính (thời gian), Thời gian khôi phục ước tính (giây) và Hiệu suất đồng bộ hóa (giây) sẽ giúp bạn hiểu rõ hơn về cách dữ liệu được chuyển đến các bản sao và tình trạng tổng thể của cơ sở dữ liệu về tính khả dụng. Ví dụ:trong ảnh chụp màn hình bên dưới, tôi đã sửa đổi cấu hình mạng VM cho SQL03 để nó có độ trễ cao hơn và thông lượng thấp hơn, điều này đang ảnh hưởng đến việc đồng bộ hóa cơ sở dữ liệu:
Ở đây, chúng ta có thể thấy rằng có gần sáu phút có khả năng mất dữ liệu đối với SQL03 và 505 MB nhật ký chưa gửi đang được gửi với tốc độ 7 MB / giây đến thứ cấp (trong trường hợp này, là thứ cấp không đồng bộ) . Trong khi đó SQL02 hiện đã được bắt kịp và không bị mất dữ liệu như một thứ cấp đồng bộ trong cấu hình.
Một giải pháp thay thế cho Trang tổng quan Nhóm Tính khả dụng là truy vấn trực tiếp các DMV, đây là nơi trang tổng quan lấy thông tin của nó làm nguồn. Truy vấn sau đây hiển thị trạng thái hiện tại và số liệu đồng bộ hóa cho từng cơ sở dữ liệu trong một nhóm khả dụng:
SELECT ar.replica_server_name, adc.database_name, ag.name AS ag_name, drs.is_local, drs.is_primary_replica, drs.synchronization_state_desc, drs.is_commit_participant, drs.synchronization_health_desc, drs.recovery_lsn, drs.truncation_lsn, drs.last_sent_lsn, drs.last_sent_time, drs.last_received_lsn, drs.last_received_time, drs.last_hardened_lsn, drs.last_hardened_time, drs.last_redone_lsn, drs.last_redone_time, drs.log_send_queue_size, drs.log_send_rate, drs.redo_queue_size, drs.redo_rate, drs.filestream_send_rate, drs.end_of_log_lsn, drs.last_commit_lsn, drs.last_commit_time FROM sys.dm_hadr_database_replica_states AS drs INNER JOIN sys.availability_databases_cluster AS adc ON drs.group_id = adc.group_id AND drs.group_database_id = adc.group_database_id INNER JOIN sys.availability_groups AS ag ON ag.group_id = drs.group_id INNER JOIN sys.availability_replicas AS ar ON drs.group_id = ar.group_id AND drs.replica_id = ar.replica_id ORDER BY ag.name, ar.replica_server_name, adc.database_name;
Bằng cách truy vấn trực tiếp các DMV trên bản sao chính, bạn có thể dễ dàng nhận được thông tin cập nhật mà không cần đợi khoảng thời gian làm mới trang tổng quan trong Management Studio. Điều này đã hữu ích một vài lần khi tham khảo ý kiến của khách hàng về lỗi liên kết giữa các trung tâm dữ liệu hoặc kết nối bị gián đoạn để bảo trì trong một khoảng thời gian và các bản sao thứ cấp đang trong quá trình bắt kịp sau khi kết nối được khôi phục .
Công cụ gốc cuối cùng để giám sát đồng bộ hóa Nhóm Khả dụng là Giám sát Hiệu suất, sử dụng đối tượng hiệu suất SQLServer:Cơ sở dữ liệu Bản sao. Bảng bên dưới hiển thị các bộ đếm hiệu suất liên quan và mô tả của chúng từ Sách Trực tuyến (https://msdn.microsoft.com/en-us/library/ff878356(v=sql.110).aspx):
Tên quầy | Mô tả |
---|---|
Số byte tệp đã nhận / giây | Lượng dữ liệu FILESTREAM nhận được bởi bản sao thứ cấp cho cơ sở dữ liệu thứ cấp trong giây cuối cùng. |
Số byte nhật ký đã nhận / giây | Số lượng bản ghi nhật ký mà bản sao phụ nhận được cho cơ sở dữ liệu trong giây cuối cùng. |
Còn lại nhật ký để hoàn tác | Số kilobyte đăng nhập còn lại để hoàn tất giai đoạn hoàn tác. |
Hàng đợi Gửi nhật ký | Số lượng bản ghi nhật ký trong tệp nhật ký của cơ sở dữ liệu chính, tính bằng kilobyte, chưa được gửi đến bản sao thứ cấp. Giá trị này được gửi đến bản sao thứ cấp từ bản sao chính. Kích thước hàng đợi không bao gồm các tệp FILESTREAM được gửi đến tệp phụ. |
Hàng đợi khôi phục | Số lượng bản ghi nhật ký trong các tệp nhật ký của bản sao phụ chưa được làm lại. |
Làm lại bị chặn / giây | Số lần chuỗi làm lại bị chặn trên các ổ khóa do người đọc cơ sở dữ liệu nắm giữ. |
Làm lại số byte còn lại | Số kilobyte đăng nhập còn lại sẽ được làm lại để kết thúc giai đoạn hoàn nguyên. |
Làm lại byte / giây | Số lượng bản ghi nhật ký được làm lại trên cơ sở dữ liệu thứ cấp trong giây cuối cùng. |
Nhật ký tổng số yêu cầu hoàn tác | Tổng số kilobyte nhật ký phải được hoàn tác. |
Một trong những thách thức và hạn chế của việc sử dụng Performance Monitor để giám sát môi trường là đối tượng chỉ hợp lệ trên phiên bản SQL Server lưu trữ một bản sao thứ cấp. Điều này có nghĩa là bạn phải thêm bộ đếm từ mỗi bản sao thứ cấp vào Màn hình hiệu suất để có được cái nhìn đầy đủ về những gì đang xảy ra với tất cả cơ sở dữ liệu thứ cấp, nơi cả Bảng điều khiển AG trong Management Studio và truy vấn DMV đối với bản sao chính, cung cấp thông tin về tất cả các cơ sở dữ liệu thứ cấp ở một vị trí duy nhất.
Để thay thế cho các tính năng tích hợp sẵn để giám sát đồng bộ hóa Nhóm khả dụng, bạn cũng có thể tận dụng các công cụ của bên thứ ba như SQL Sentry Performance Advisor, bao gồm việc giám sát các Nhóm khả dụng như một tính năng tiêu chuẩn. Bạn có thể đọc thêm về tính năng này trong bài đăng trên blog này của Greg Gonzalez, người lần đầu tiên giới thiệu tính năng này trong phiên bản 7.5 của sản phẩm.
Trang tổng quan AG của Cố vấn Performacnce
Tab Replicas trong Performance Advisor cho phép mở rộng từng máy chủ bản sao thứ cấp để hiển thị cơ sở dữ liệu và dữ liệu đồng bộ hóa hiện tại của chúng một cách dễ dàng. Bố cục mặc định WSFC Node / Group Matrix ở đầu bảng điều khiển cũng cung cấp thông tin về tình trạng hàng đợi gửi của bản sao chính, trạng thái hàng đợi làm lại của bản sao thứ cấp và luồng dữ liệu giữa mỗi máy chủ bản sao. Trong ví dụ này, chúng ta có thể thấy rằng hàng đợi gửi nhật ký trên chính hiện đang gửi một lượng lớn dữ liệu từ SQL01 đến SQL03, dựa trên độ rộng của dòng giữa các máy chủ, sau khi sự cố kết nối giữa SQL01 và SQL03 đã được khắc phục trong môi trường. Biểu đồ bên phải hiển thị tốc độ dữ liệu đang được truyền từ SQL01, cùng với kích thước hiện tại của Hàng đợi Gửi nhật ký, vì đó là bản sao được chọn ở phía bên trái. Nhấp vào một trong các máy chủ bản sao khác trong bố cục WSFC Node / Group Matrix cũng sẽ thay đổi biểu đồ để phù hợp với số liệu hiệu suất của bản sao cụ thể đó ở phía bên phải.
Có nhiều cách để giám sát hiệu suất đồng bộ hóa dữ liệu giữa các máy chủ bản sao trong Nhóm sẵn sàng trong SQL Server. Bảng điều khiển Nhóm sẵn có được tích hợp sẵn trong Management Studio chứa nhiều thông tin mà bạn có thể dễ dàng truy cập khi bạn biết cách tùy chỉnh bố cục để hiển thị thông tin quan trọng nhất trên trang tổng quan. Cũng có thể sử dụng DMV trực tiếp từ máy chủ bản sao chính để giám sát hiệu suất đồng bộ hóa dữ liệu bằng Transact-SQL và các công cụ của bên thứ ba như SQL Sentry cũng bao gồm việc giám sát đồng bộ hóa dữ liệu. Mặc dù Performance Monitor có thể cung cấp cùng một thông tin này, nhưng thực tế là các bộ đếm hiệu suất chỉ có sẵn từ máy chủ bản sao thứ cấp khiến cho việc có được cái nhìn đầy đủ về toàn bộ môi trường sẽ phải làm việc nhiều hơn một chút.