2010-08-20 114 views
1

我們在2個SQL Server 2005標準版本之間建立了鏡像。 設置爲另外還有鏡像提醒如下: 數據庫鏡像(連接帶鏡子的丟失) 數據庫鏡像(與校長丟失連接) 數據庫鏡像(首席運行曝光) 數據庫鏡像(同步鏡像) 數據庫鏡像(同步校長) 鏡像提交開銷超過閾值(MIRROR) 最舊的未發送的事務超過閾值(委託人) 未還原日誌超過閾值(MIRROR) 未發送的日誌超過閾值(委託人)sql 2005鏡像警報歷史記錄

「最老的未發送的事務超過所述閾值「在最後的政變中很多時候都出現了警報天。但是這個警報並不是專門針對數據庫的。這只是平均值。

我以爲這個信息應該在一個表中,我發現它是msdb.dbo.dbm_monitor_data表。它擁有包含數據庫名稱的log_flush_rate,send_queue_size,send_rate,redo_queue_size,redo_rate,transaction_delay和transactions_per_sec等數據。然後我想知道這個表是如何填充的。爲此,我發現SQL服務器創建的鏡像監控作業「數據庫鏡像監控作業」運行一個sp sp_dbmmonitorupdate,它從Mirroring perfmon計數器填充此表。這項工作每分鐘運行一次。

例如在11:23:52生成警報。 這些作業每分鐘只運行一次,但它仍然設法在11:23:00捕獲數據,然後在每分鐘兩次的11:23:52(當生成警報時)捕獲數據。

我認爲這可能是,當警報產生時,它也運行這個存儲過程。如果它更新了表,那麼我可以運行一個select語句。但我怎麼能確定?

問題: 我怎樣才能找出爲什麼這張表更新沒有時間表?什麼引發了它的人口?有誰知道哪張表擁有警報歷史數據?

注:沒有重建索引作業正在運行和鏡像閾值已經在下面的截圖被設置爲: alt text

誰能幫助嗎?

在此先感謝

回答

0

答:sp_dbmmonitorupdate引起誤差,這又引起了警報,因此填充表。我挖掘了所有鏡像存儲過程和表以找到它。 :-)