Sql-Server
將 MySQL 8 遷移到 SQL Server 2019 時出錯
使用 SQL Server 遷移助手將數據庫從 MySQL 8.0 遷移到 SQL Server 2019 時出現錯誤。
錯誤資訊:
ExecuteReader 需要一個打開且可用的連接。連接的目前狀態為關閉。
同樣的錯誤發生在我 95% 的表上,並且發生在我創建模式並執行遷移數據過程之後。
有什麼想法嗎?
我通過一些步驟解決了這個問題。
我的場景是 MySQL 到 SQL Server,我假設遷移過程試圖讀取 MySQL 時發生了這個錯誤 ExecuteReader。因此,在 MySQL(Windows 安裝)my.ini 配置中,我進行了更改,將值設置在最大值的邊緣。
table_open_cache tmp_table_size thread_cache_size max_allowed_packet innodb_open_files
在 SQL Server 遷移助手中,我配置了
Tools > Project Settings > Migration > Data Migration Timeout in minutes = 1000
我有 20GB 的表,預設超時為 15 分鐘,這導致了下降錯誤。在Tools > Default Project Settings > Synchronization = 1000
我已經將 MySQL 和 SQL Server 部分中的 Query Timeout 更改為 1000。這解決了問題。
我最近一直在使用 SSMA(DB2 到 SQL Server),但我沒有遇到這樣的錯誤。我的建議是,在執行任何 SQL 查詢之前,請確保您的應用程序與數據庫的連接已打開。
該錯誤非常清楚,顯然是C#提供的自定義錯誤:
- 如果您超過請求之間約定的超時時間,SQL 伺服器將掛斷您。
- 如果您不在本地,則連接可能會中斷並且可能需要重新建立。
- 您可能沒有成功連接第一次(已超過最大連接數)。
嘗試在使用 SSMA 時使用
ping
該選項打開終端和遠端伺服器。-t
否則,您顯然處於這種情況: