Chúng tôi có hàng tá máy chủ nguyên tắc và máy nhân bản tương ứng, hầu hết đều hoạt động tốt, tuy nhiên, 1 trong số đó đang hoạt động lạ. Cụ thể, sp_dbmmonitorresults
Proc trả về tất cả các cột dưới dạng NULL cho cơ sở dữ liệu nguyên tắc nhất định trong khi sp_dbmmonitorresults
trên gương trả về thông tin hợp lệ:
Bây giờ, tôi có một ý tưởng sơ bộ nguyên nhân là gì; khi nguyên tắc và máy chủ nhân bản nơi thiết lập, cài đặt khu vực không chính xác trên chính (thời gian là chính xác nhưng đang sử dụng vùng +4 (Mỹ, v.v.), vùng thời gian đã được sửa thành GMT +0 SAU KHI phản chiếu được thiết lập (trường học lỗi con trai tôi biết, nhưng c'est la vie!)
Chỉnh sửa: 19/12/2012
Hôm nay tôi đã loại bỏ phản chiếu, xóa các bản sao trên gương và thiết lập lại phản chiếu, tuy nhiên điều này không giải quyết được vấn đề! Tôi sẽ đưa ra một tiền thưởng cho câu hỏi này để thử và đi đến tận cùng của câu hỏi này.
Để xác nhận, nếu tôi chạy EXEC sp_dbmmonitorresults @database_name = 'ProScript'
thủ công trên mỗi máy chủ, nó sẽ trả về NULL cho hầu hết các giá trị trên giá trị chính nhưng trả về tiền phạt trên gương, như được hiển thị:
Khi Ran vào tiểu học:
Thu phóng: Nhấp để xem phiên bản kích thước đầy đủ
Khi Ran trên gương:
Thu phóng: Nhấp để xem phiên bản kích thước đầy đủ
Như bạn có thể thấy, thời gian là hiện tại và cơ sở dữ liệu được đồng bộ hóa nhưng log_generation_rate, unsent_log, send_rate, v.v ... tất cả NULL trên chính?
Cả hai máy chủ đều có công việc montior chạy mỗi phút với exec sys.sp_dbmmonitorupdate
một bước công việc, v.v.
Nhìn vào nguồn của sys.sp_dbmmonitorupdate, nó lấy các giá trị này từ sys.dm_os_performance_counters
- vì vậy nếu tôi chạy như sau trên gương:
SELECT counter_name ,
cntr_value
FROM sys.dm_os_performance_counters
WHERE instance_name = 'ProScript'
AND counter_name IN ( N'Log Send Queue KB', N'Log Bytes Sent/sec', N'Redo Queue KB', N'Redo Bytes/sec', N'Transaction Delay', N'Log Bytes Flushed/sec', N'Transactions/sec' )
Tôi nhận được kết quả tốt:
Tuy nhiên, nếu tôi chạy cùng một SQL trên chính thì không có hàng!
Điều này sẽ gợi ý rằng sys.dm_os_performance_counters
bảng không được đưa vào để phản chiếu? Điều gì sẽ gây ra điều đó ???