2012-06-08 70 views
5

我無法殺死一些SQL Server代理作業。任務狀態繼續運行,命令保持在KILLED/ROLLBACK中。作業通過OLEDB鏈接服務器和Oracle執行鍼對OSI PI系統的查詢。到目前爲止,我發現殺死這些作業的唯一方法是重新啓動SQL Server(不是首選方法)。無法殺死SQL服務器作業,狀態保持死亡/回滾

回答

1

如果是大額交易,它可能是服務器居然還在執行這可能需要一些時間回滾。

+0

不,他們是相當小的交易。 (<10條記錄) – Ahd

+0

根據「繁忙」受影響的表是否回滾可能需要一段時間,即使是少量受影響的記錄。 –

+1

現在這已經坐了一個多小時了。即使表格忙(它們不是),它現在應該已經解決了。 – Ahd

3

我發現下面的文章 https://connect.microsoft.com/SQLServer/feedback/details/187192/openquery-to-linked-server-hangs-leaving-spid-with-open-tran-that-cannot-be-killed-then-templog-ldf-grows-without-limit-requires-sql-server-restart-on-production-servers

顯然,幾個人使用OPENQUERY通過不是SQL Server中的鏈接服務器有這個問題。我重新張貼工作,圍繞BReuter在上述文章發佈:在下午2點21

發表BReuter上二零零七年一月三十零日*我一些經歷了確切的行爲,並已發現的軟件組合這穩定了我們的環境。

有我發現了三個關鍵因素:

1)確保你使用的Oracle Microsoft OLEDB提供程序沒有任何鏈接的服務器,而是使用Oracle提供的Oracle(版本9.2.0.4是我在生產)。

2)不要讓鏈接的服務器運行「進行中」。這需要進行一些研究,但可以按照以下說明從SQL內存空間運行鏈接服務器。

3)我在W2K3上運行SQL 2005 SP1,但我相信OLEDB提供程序是關鍵,而不是操作系統或數據庫版本。 默認安全設置太緊,無法運行Oracle OLEDB提供程序(OraOLEDB)進程外。此外,MS DTC的默認設置不允許網絡通信。

  1. 控制面板 - >管理工具 - >組件服務
  2. 鑽取到組件服務 - >計算機

    一個。右鍵單擊我的電腦「屬性

  3. MSDTC選項卡 - >安全配置按鈕(如下截圖)

    一個。網絡DTC訪問 - 選中。

    b。允許入站/出站 - 選中。

    c。無需認證 - 這模擬了Windows 2000的安全設置。 d)。啓用XA事務 - 由OraOLEDB提供者實現的事務類型。

  4. 鑽取到組件服務 - > Computers->我的電腦> DCOM配置

    一個。右鍵單擊MSDAINITALIZE->屬性

  5. 安全選項卡(下圖)

    一個。訪問權限 - >自定義。

    b。按「訪問權限」編輯按鈕。

    c。授予SQL Server服務帳戶「本地訪問」權限。 d)。重複「啓動和激活」。*

+0

注意:我的問題也與Oracle鏈接的服務器有關。我使用11.2驅動程序。 – Ahd

0

我殺OLEDB外部資源沒有工作,我很遺憾不得不重新啓動SQL Server實例來解決這個問題始終

我我的情況下,有與Oracle鏈接的服務器或只是有一個簡單的錯誤,如錯誤的密碼SharePoint列表OPENQUERY選擇並不能糾正錯誤,去,從來沒有回來,直到你重新啓動該服務

0

交易是被困在滅活/回滾可能通過殺死本地服務器上的事務取消。如果查詢是跨服務器,並且您不想等待回滾,則必須轉至遠程服務器並殺死該事務,並在本地服務器上將其終止。

這適用於任何數據庫系統。

1

此頁 http://www.jaygeiger.com/index.php/2015/03/03/how-to-kill-a-frozen-linked-sql-server-connection/ 提供了一種解決方法。 它包含手動TCP連接終止。這不是一個理想的解決方案,但它是我所知道的最好的解決方案。這比重新啓動整個SQL Server要好。

Btw。我發現在https://connect.microsoft.com/SQLServer/feedback/details/187192/openquery-to-linked-server-hangs-leaving-spid-with-open-tran-that-cannot-be-killed-then-templog-ldf-grows-without-limit-requires-sql-server-restart-on-production-servers頁面提到的鏈接Ahd的帖子