1. 程式人生 > >資料庫常見問題:伺服器'SQL SERVER'上的 MSDTC 不可用

資料庫常見問題:伺服器'SQL SERVER'上的 MSDTC 不可用

<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script>

今天在客戶的伺服器上遇到了這個錯誤,在網上google了一下找到了解決的答案與大家分享:

 一.A.不用事務,關用SELECT   語句.是否可以分散式查詢?  
   
        B.LINKSERVER   在做分散式更新事務時不能對本機操作.(就是不能環回分散式事務)  
   
        C.DBCC   TRACEON   (3604,   7300)--用跟蹤看更詳細錯誤資訊.  
       
        D.下載MS提供的DTCPing.exe   分裝在兩臺機上,按README說明來執行它.看出錯資訊.  
  http://download.microsoft.com/download/complus/msdtc/1.7/nt45/en-us/DTCPing.exe  
   
  二.兩臺機的MSDTC是否都打開了.  
   
  三.MSDTC設定是否正確.  
  1.開啟命令提示,執行"net   stop   msdtc",然後執行"net   start   msdtc"。  
  2.轉至"元件服務管理工具"。  
  3.瀏覽至"啟動管理工具"。  
  4.選擇"元件服務"。  
    a.展開"元件服務"樹,然後展開"我的電腦"。  
    b.右鍵單擊"我的電腦",然後選擇"屬性"。  
    C.在   MSDTC   選項卡中,確保選中了下列選項:   網路   DTC   訪問  
  網路管理  
  網路事務  
          XA   事務  
    e.另外,"DTC   登入帳戶"一定要設定為"NT   Authority/NetworkService"。  
  5.單擊"確定"。這樣將會提示您"MS   DTC   將會停止並重新啟動。  
      所有的依賴服務將被停止。請按'是'繼續"。單擊"是"繼續。  
  6.單擊"確定"關閉"我的電腦"屬性視窗。  
   
  四.  
  MSDTC依賴於RPC,RPC使用的埠是135,測試135埠是否開啟.是否有防火牆?如果有先關了防火牆.  
  telnet   IP   135  
  如果是關閉的開啟它.  
   
  五.  
  有的機由於各種原因),SQLOLEDB不能使用分散式事務,更改為"MSDASQL"   的ODBC方式聯接.  
  使用RRAS而不是RAS.(控制面版--管理工具--遠端服務管理器)  
  Check   whether   you   are   using   Remote   Access   Server   (RAS)   to   access   remote   servers.   If   so,   make   sure   that   you   have   implemented   Routing   RAS   (RRAS).   Linked   server   does   not   work   on   RAS   because   RAS   allows   only   one   way   communication.  
   
   
  七.檢查你的兩臺伺服器是否在同一個域中.  
  如果不在同一個域中,是否建立可信任聯接.  
   
  八.如果是WIN2000,升級到SP4  
   
  九.升級MDAC到2.6以上,最好是2.8.  
   
  十.要安裝SQL的最新補丁:   sp3a  
  '全部補丁的位置  
  http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=9032f608-160a-4537-a2b6-4cb265b80766  
   
  '應該安裝的補丁sql   2000   sp3  
  http://download.microsoft.com/download/d/d/e/dde427eb-0296-4eac-a47c-d11a66b03816/chs_sql2ksp3.exe  

我的解決方法:net   stop   msdtc",然後執行"net   start   msdtc"開啟服務後正常。