起因:

前一段時間在為一組sql server 2008 failover cluster安裝sp3,之前是sq1.
windows server 2003 enterprise 64bit + sql server 2008 enterprise 64bit
failover cluster 是active/acitve 雙實例

 

問題:
在兩個節點都install sp3後,發現有一個sql server實例在切換時(其實也就是在restart sql server service),用SSMS連接時會顯示「伺服器處於腳本升級模式。此時只有管理員可以進行連接」,大概幾分鐘,之後就正常了,當時就並未重視。過了段時間,在例行維護切換時,問題重現,此時意識到之前安裝sp3的時候應該存在問題。最近發現該實例上一個發佈的庫,log檔增長到了近30GB,於是考慮收縮該Log檔。但在收縮時,發現儘管不停的備份log,仍然無法收縮Log檔。

 

檢查:

通過查看該庫的log_reuse_wait_desc,發現值為ACTIVE_TRANSACTION

11211GR2-0  

於是查看虛擬日誌檔使用方式,發現有2000多個虛擬日誌檔都為活動狀態

11211G121-1  

查看活動的事務資訊,發現一個名為tran_sp_mscreate_peer_tables自從2012.02.02 晚10點43起一起到現在,而這個時間是上次切換該cluster時間;

11211L152-2  

近一步驗證,transaction_type=1標明是寫操作;

11211M003-3  

從sql server errorlog內發現Error executing sp_vupgrade_replication.

11211I402-4  

推斷應該是在生升發佈訂閱相關物件時失敗,導致事務儘管已被發佈到分發,但無法標記為已分發,也就始終無法截斷它們並重用。

 

解決:
目前google到的方法大概是:
1.disabled sql agent service
2.stop sql server service and sql agent service
3.only start sql server service
4.execute sp_vupgrade_replication
5.restart sql server service
6.enable and start sql agent service.
在操作過程中,sql server 處於腳本升級模式,不可以連接。
 
來源:
http://www.cnblogs.com/nzperfect/archive/2012/03/08/2384783.html
arrow
arrow
    文章標籤
    SQL
    全站熱搜

    戮克 發表在 痞客邦 留言(0) 人氣()