排解錯誤
遷移工作程序可能會在執行期間發生錯誤。
- 對於某些錯誤,資料庫移轉服務會自動重試錯誤作業,以便繼續遷移程序並避免中斷。遷移工作狀態會變更為「執行中,但發生錯誤」。這個狀態代表資料庫移轉服務會繼續遷移資料,不會受到錯誤影響。
- 部分錯誤無法復原。資料庫遷移服務遇到無法復原的錯誤時,遷移工作狀態會變更為「失敗」。在這種情況下,必須在問題修正後重新啟動遷移工作。
如要排解錯誤,請前往受影響的遷移工作,查看錯誤,然後按照錯誤訊息中列出的步驟操作。您也可以查看 Cloud SQL 目的地執行個體的 Cloud Monitoring 記錄,進一步瞭解詳細資訊。請使用遷移工作詳細資料頁面中的 Cloud Monitoring 連結。
下表列出一些問題示例和解決方法:
針對這個問題... | 問題可能出在... | 試試這個... |
---|---|---|
錯誤訊息:The BAK file's database major version number
{backup_version_num} must not be higher than the current database
major version number {your Cloud SQL for SQL Server version number} 。 |
您嘗試從較新的 SQL Server 版本匯入備份檔案,但該版本與您在 Cloud SQL for SQL Server 目的地執行個體中使用的版本不同。 資料庫移轉服務僅支援跨版本遷移作業,前提是您必須符合跨版本相容性規範。請參閱「 支援的來源和目的地資料庫」。 |
重新建立 Cloud SQL for SQL Server 目的地執行個體,以便使用較新的 SQL Server 版本,並使用新執行個體重新嘗試遷移程序。 |
錯誤訊息:The following database already exists in destination: {database_name} 。 |
Cloud SQL 目的地執行個體已包含資料庫,其名稱與遷移工作中其中一個資料庫的名稱相同。 | 移除命名衝突。請參閱「 錯誤:資料庫已存在於目標位置 」一文。 |
錯誤訊息:
Permission denied for {cloudsql.databases.get} on the Database Migration Service service account. |
Database Migration Service 服務帳戶缺少權限。 | 為 Database Migration Service 服務帳戶新增缺少的權限。請參閱「 使用 IAM 控管存取權」。 |
錯誤訊息:
Missing WAL file at Log Sequence Number (LSN) {log_number_here} |
就交易記錄檔案使用而言,可能會使用不正確的紀元紀時戳記,以便瞭解其中的更新順序。資料庫遷移服務會使用記錄序號和紀元紀載時間戳記,控制交易記錄檔複製至 Cloud SQL 目的地執行個體的順序。 | 請檢查並調整最新交易記錄檔案檔名中使用的紀元時間戳記。請參閱「 調整錯誤的交易記錄名稱」一文。 |
當您遷移所選資料庫,且遷移工作無法將資料複製到一個或多個資料庫時,資料庫清單中會顯示「失敗」狀態。 | 各種遷移工作錯誤。 | 在「錯誤」欄中,按一下「查看錯誤」並修正錯誤。修正錯誤後,請按一下「重新啟動」。 |
錯誤:目標位置中已有資料庫
您會看到下列錯誤訊息:The following database already exists in destination: {database_name}
。
問題可能出在:
您的 Cloud SQL 目的地執行個體已包含資料庫,該資料庫的名稱與遷移工作中其中一個資料庫的名稱相同。
建議做法
視遷移情境而定,您可以透過不同方式解決重複資料庫的問題。請嘗試下列任一做法:
重新命名來源 Cloud Storage 值區,以不同的名稱遷移資料庫。
資料庫移轉服務在目的地 Cloud SQL 執行個體中建立的資料庫名稱,會取自您儲存備份檔案的 Cloud Storage 資料夾名稱。如果您有兩個共用名稱的資料庫,且需要將兩者都遷移至 Cloud SQL 目的地,可以重新命名資料夾並重新建立遷移工作,以免發生命名衝突。
請執行下列步驟:
- 為受命名衝突影響的來源資料庫建立新資料夾。請參閱「將備份檔案儲存在 Cloud Storage bucket 中 」。
- 重新建立遷移工作。請參閱
建立遷移工作。
您可以將新資料庫新增至現有遷移工作,但無法從遷移工作中移除資料庫。因此,您需要重新建立整個遷移工作。
從 Cloud SQL for SQL Server 執行個體中刪除重複的資料庫。
如果 Cloud SQL 目的地執行個體中的資料庫是重複的,您可以從執行個體中刪除資料庫,並繼續執行遷移工作。請參閱 Cloud SQL for SQL Server 說明文件中的「Delete a database」(刪除資料庫)。
調整 WAL 檔案順序錯誤的交易記錄檔檔案名稱
問題可能出在:
就交易記錄檔案使用而言,可能會使用不正確的紀元紀時戳記,以便瞭解其中的更新順序。資料庫遷移服務會使用記錄序號和紀元紀載時間戳記,控制交易記錄檔複製至 Cloud SQL 目的地執行個體的順序。
建議做法
檔案上傳作業可能會延遲或發生錯誤。請等待幾分鐘,讓問題解決,或檢查 Cloud Storage 值區中是否有缺少的檔案。
如果問題仍未解決,請驗證並調整 交易記錄檔案名稱中的紀元記錄時間戳記。
請執行下列步驟:
- 檢查目的地 Cloud SQL for SQL Server 執行個體的交易記錄匯入作業清單。前往 Google Cloud 控制台的「Cloud SQL 執行個體」頁面。
- 依序按一下「View all operations」「View SQL Server error logs」。
- 查看交易記錄檔案的所有匯入作業,並確認檔案名稱是否包含正確的紀元紀時戳記。
- 如果您發現最近的交易記錄檔案使用名稱與不規則的紀元紀時戳記,請前往 Cloud Storage 值區並重新命名檔案。資料庫遷移服務會自動偵測變更,並嘗試匯入相關的交易記錄檔案。
- 僅限 Amazon RDS:在匯出至 S3 的過程中,系統可能會遺漏部分交易記錄檔案。請嘗試針對缺少 WAL 檔案的期間,重新執行交易記錄匯出函式。