2014-07-04 56 views
0

希望有人可以給我這個小費。我試圖將查詢結果從一個服務器中的數據庫導出到另一個服務器中的數據庫中的表中。導出嚮導轉移一對夫婦十萬行,然後把下面的錯誤:導出到數據庫表錯誤

錯誤:

錯誤爲0xC0202009:數據流任務1:SSIS錯誤代碼DTS_E_OLEDBERROR。發生了OLE DB錯誤。錯誤代碼:0x80004005。 OLE DB記錄可用。源:「Microsoft SQL Server Native Client 10.0」Hresult:0x80004005描述:「TDS流中的協議錯誤」。 OLE DB記錄可用。源:「Microsoft SQL Server Native Client 10.0」Hresult:0x80004005描述:「TDS流中的協議錯誤」。 OLE DB記錄可用。源:「Microsoft SQL Server Native Client 10.0」Hresult:0x80004005描述:「TDS流中的協議錯誤」。 OLE DB記錄可用。源:「Microsoft SQL Server Native Client 10.0」Hresult:0x80004005描述:「通信鏈接失敗」。 OLE DB記錄可用。源:「Microsoft SQL Server Native Client 10.0」Hresult:0x80004005描述:「TCP提供程序:連接嘗試失敗,因爲連接方在一段時間後未正確響應,或者由於連接的主機未響應而建立的連接失敗。 」。 (SQL Server導入和導出嚮導)

錯誤0xc0047038:數據流任務1:SSIS錯誤代碼DTS_E_PRIMEOUTPUTFAILED。組件「源 - 查詢」(1)上的PrimeOutput方法返回錯誤代碼0xC0202009。當管道引擎調用PrimeOutput()時,組件返回失敗代碼。失敗代碼的含義由組件定義,但錯誤是致命的,並且管道停止執行。在此之前可能會發布錯誤消息,提供有關失敗的更多信息。 (SQL Server導入和導出嚮導)

回答

0

Protocol error in TDS stream可能歸因於片狀網絡連接或孤立網絡阻塞。 Source和Destinaion之間可能存在聯網問題.TDS代表Tabular Data Stream,並且是SQL Server用於將結果返回給客戶端的底層協議。問題出在SQL Server或網絡通信上。可能是其中一臺計算機出現故障的網卡或它們之間的網絡硬件存在問題。檢查兩臺計算機上的事件日誌是否存在OS級別的網絡錯誤。如果您正在使用負載平衡,請檢查防火牆設置。通過慢速網絡傳輸大型表格會導致問題。

如果您正在使用鏈接服務器查詢,請嘗試顯式轉換VARCHAR,例如CAST(fieldname AS VARCHAR(30))AS FIELDNAME。有時添加CAST可消除問題。

也請按照以下方法嘗試。

當用於連接源SQL Server的網絡協議從TCP/IP更改爲NamedPipes時,此問題即告解決。基本上,使用以下步驟在目標服務器上創建源的別名。

  1. 開始 - >所有程序 - > Microsoft SQL Server的2008 - >配置工具 - > SQL Server配置管理器

  2. 展開節點SQL本機客戶端10.0配置

  3. 右鍵單擊「別名」,然後選擇「新建別名...服務器「

  4. 對提供源SQL服務器的IP地址‘’字段,對指定的源服務器名稱‘別名’字段。

  5. 選擇協議爲‘了NamedPipes’,然後單擊確定

有哪些是造成TDS錯誤的錯誤,所以請確保您有最新的更新/補丁/爲您修復SQL服務器。

+0

謝謝!這個工作,但它確實需要很長的時間,雖然,約8小時移動190萬條記錄。 – user3476463

+0

很高興工作! –