針對常見的 Azure 資料庫移轉服務問題和錯誤進行疑難排解
本文說明 Azure 資料庫移轉服務使用者可能遇到的一些常見問題和錯誤。 本文也包含如何解決這些問題和錯誤的相關資訊。
處於佇列狀態的移轉活動
當您在 Azure 資料庫移轉服務專案中建立新活動時,活動會維持在佇列狀態。
原因 | 解決方案 |
---|---|
當 Azure 資料庫移轉服務執行個體已達到同時執行持續工作的最大容量時,就會發生此問題。 任何新的活動都會排入佇列,直到容量可用為止。 | 驗證資料移轉服務執行個體已跨專案執行活動。 您可以繼續建立新的活動,自動新增至佇列以供執行。 一旦任何現有的執行活動完成,下一個佇列活動就會開始執行,狀態會自動變更為執行狀態。 您不需要採取任何其他動作,即可開始移轉佇列活動。 |
針對移轉所選取資料庫數目上限
建立資料庫移轉專案的活動以移至 Azure SQL Database 或 Azure SQL 受控執行個體時,會發生下列錯誤:
- 錯誤:「移轉設定驗證錯誤」、「errorDetail」:「為移轉選取的「資料庫」物件數目超過最大值 '4'。」
原因 | 解決方案 |
---|---|
當您為單一移轉活動選取了四個以上的資料庫時,就會顯示此錯誤。 目前,每個移轉活動限制為四個資料庫。 | 請為每個移轉活動選取四個或更少的資料庫。 如果您需要平行移轉四個以上的資料庫,請佈建另一個 Azure 資料移轉服務執行個體。 目前,每個訂閱最多可支援兩個 Azure 資料移轉服務執行個體。 |
嘗試停止 Azure 資料庫移轉服務時發生錯誤
停止 Azure 資料庫移轉服務執行個體時,您會收到下列錯誤:
- 錯誤:服務無法停止。 錯誤:'error':{'code':'InvalidRequest','message':'目前正在執行一或多個活動。 若要停止服務,請等待活動完成,或手動停止這些活動,然後再試一次。'}}
原因 | 解決方案 |
---|---|
當您嘗試停止的服務執行個體包含仍在移轉專案中執行或存在的活動時,就會顯示此錯誤。 |
請確定您嘗試停止的 Azure 資料庫移轉服務執行個體中沒有執行中的活動。 您也可以先刪除活動或專案,再嘗試停止服務。 下列步驟說明如何移除專案,藉由刪除所有執行中的工作來清除移轉服務執行個體: 1. Install-Module -Name AzureRM.DataMigration 2. Login-AzureRmAccount 3. Select-AzureRmSubscription -SubscriptionName "<subName>" 4. Remove-AzureRmDataMigrationProject -Name <projectName> -ResourceGroupName <rgName> -ServiceName <serviceName> -DeleteRunningTask |
嘗試啟動 Azure 資料庫移轉服務時發生錯誤
啟動 Azure 資料庫移轉服務執行個體時,您會收到下列錯誤:
- 錯誤:服務無法啟動。 錯誤:{'errorDetail':'服務無法啟動,請連絡 Microsoft 支援服務'}
原因 | 解決方案 |
---|---|
先前執行個體在內部失敗時會顯示此錯誤。 此錯誤很少發生,而且工程小組知道此錯誤。 |
刪除您無法啟動的服務執行個體,然後佈建新的執行個體加以取代。 |
將 SQL 移轉至 Azure SQL DB 受控執行個體時,還原資料庫時發生錯誤
當您執行從 SQL Server 到 Azure SQL 受控執行個體的線上移轉時,完全移轉會失敗,並出現下列錯誤:
- 錯誤:作業識別碼 'operationId' 的還原作業失敗。 代碼 'AuthorizationFailed'、訊息 '物件識別碼為 'objectId' 的用戶端 'clientId' 沒有授權可以針對範圍 '/subscriptions/subscriptionId' 執行動作 'Microsoft.Sql/locations/managedDatabaseRestoreAzureAsyncOperation/read'。'。
原因 | 解決方案 |
---|---|
此錯誤指出用於從 SQL Server 到 SQL 受控理執行個體線上移轉的應用程式主體沒有訂用帳戶的參與權限。 目前具有受控執行個體的特定 API 呼叫需要在訂用帳戶上具有這個還原作業權限。 |
搭配使用 Get-AzureADServicePrincipal PowerShell Cmdlet 與可以從錯誤訊息取得的 -ObjectId ,以列出所使用應用程式識別碼的顯示名稱。驗證此應用程式的權限,並確定其在訂用帳戶層級具有參與者角色。 Azure 資料移轉服務工程小組正在努力限制訂用帳戶上目前參與角色的必要存取權。 如果您有不允許使用參與角色的商務需求,請連絡 Azure 支援以取得其他協助。 |
刪除與 Azure 資料庫移轉服務相關聯的 NIC 時發生錯誤
當您嘗試刪除與 Azure 資料庫移轉服務相關聯的網路介面卡時,刪除嘗試會失敗,並出現此錯誤:
- 錯誤:由於使用 NIC 的 DMS 服務,所以無法刪除與 Azure 資料庫移轉服務相關聯的 NIC
原因 | 解決方案 |
---|---|
當 Azure 資料庫移轉服務執行個體可能仍然存在並取用 NIC 時,就會發生此問題。 |
若要刪除此 NIC,請刪除 DMS 服務執行個體,以自動刪除服務所使用的 NIC。 重要事項:請確定已刪除的 Azure 資料庫移轉服務執行個體沒有任何執行中的活動。 刪除與 Azure 資料庫移轉服務執行個體相關聯的所有專案和活動之後,您可以刪除服務執行個體。 服務執行個體所使用的 NIC 會自動在服務刪除過程中清除。 |
使用 ExpressRoute 時的連線錯誤
當您嘗試在 Azure 資料庫移轉服務專案精靈中連線到來源時,如果來源使用 ExpressRoute 進行連線,則連線會在延長逾時之後發生失敗。
原因 | 解決方案 |
---|---|
使用 ExpressRoute 時,Azure 資料庫移轉服務需要在與服務相關聯的虛擬網路子網路上佈建三個服務端點: -- 服務匯流排端點 -- 儲存體端點 -- 目標資料庫端點 (例如 SQL 端點、Azure Cosmos DB 端點) |
啟用來源與 Azure 資料庫移轉服務之間 ExpressRoute 連線所需的服務端點。 |
將 MySQL 資料庫移轉至 適用於 MySQL 的 Azure 資料庫 時鎖定等候逾時錯誤
當您透過 Azure 資料庫移轉服務將 MySQL 資料庫移轉至適用於 MySQL 的 Azure 資料庫執行個體時,移轉會失敗,並出現下列鎖定等候逾時錯誤:
- 錯誤:資料庫移轉錯誤 - 無法載入檔案 - 無法啟動檔案的載入程序 'n' RetCode:SQL_ERROR SqlState:HY000 NativeError:1205 Message:[MySQL][ODBC Driver][mysqld] 超過鎖定等候逾時;請嘗試重新啟動交易
原因 | 解決方案 |
---|---|
移轉因為移轉期間鎖定等候逾時而失敗時,就會發生此錯誤。 | 請考慮增加伺服器參數 'innodb_lock_wait_timeout' 的值。 允許的最高值為 1073741824。 |
使用動態連接埠或具名執行個體時連線到來源 SQL Server 時發生錯誤
當您嘗試將 Azure 資料庫移轉服務連線到在具名執行個體或動態連接埠上執行的 SQL Server 來源時,連線會失敗,並出現此錯誤:
- 錯誤:-1 - SQL 連線失敗。 和 SQL Server 建立連線時,發生與網路相關或執行個體特定的錯誤。 找不到或無法存取伺服器。 檢查執行個體名稱是否正確以及 SQL Server 執行個體是否設定為允許遠端連接。 (提供者:SQL 網路介面,錯誤:26 - 搜尋指定的伺服器/執行個體時發生錯誤)
原因 | 解決方案 |
---|---|
當 Azure 資料庫移轉服務嘗試連線的來源 SQL Server 執行個體具有動態連接埠或使用具名執行個體時,會發生這個問題。 SQL Server Browser 服務會接聽 UDP 連接埠 1434,以取得具名執行個體或使用動態連接埠時的連入連線。 每次重新啟動 SQL Server 服務時,動態連接埠可能會變更。 您可以在 SQL Server 組態管理員中,透過網路組態檢查指派給執行個體的動態連接埠。 |
確認 Azure 資料庫移轉服務可以在 UDP 連接埠 1434 上連線到來源 SQL Server Browser 服務,以及在可行時透過動態指派的 TCP 連接埠連線到 SQL Server 執行個體。 |