診斷 SQL Server 的問題

排解錯誤

遷移工作程序可能會在執行期間發生錯誤。

  • 對於某些錯誤,資料庫移轉服務會自動重試錯誤作業,以便繼續遷移程序並避免中斷。遷移工作狀態會變更為「執行中,但發生錯誤」。這個狀態代表資料庫移轉服務會繼續遷移資料,不會受到錯誤影響。
  • 部分錯誤無法復原。資料庫遷移服務遇到無法復原的錯誤時,遷移工作狀態會變更為「失敗」。在這種情況下,必須在問題修正後重新啟動遷移工作。

如要排解錯誤,請前往受影響的遷移工作,查看錯誤,然後按照錯誤訊息中列出的步驟操作。您也可以查看 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 目的地,可以重新命名資料夾並重新建立遷移工作,以免發生命名衝突。

請執行下列步驟:

  1. 為受命名衝突影響的來源資料庫建立新資料夾。請參閱「將備份檔案儲存在 Cloud Storage bucket 中 」。
  2. 重新建立遷移工作。請參閱 建立遷移工作

    您可以將新資料庫新增至現有遷移工作,但無法從遷移工作中移除資料庫。因此,您需要重新建立整個遷移工作。

從 Cloud SQL for SQL Server 執行個體中刪除重複的資料庫。

如果 Cloud SQL 目的地執行個體中的資料庫是重複的,您可以從執行個體中刪除資料庫,並繼續執行遷移工作。請參閱 Cloud SQL for SQL Server 說明文件中的「Delete a database」(刪除資料庫)。


調整 WAL 檔案順序錯誤的交易記錄檔檔案名稱

問題可能出在:

就交易記錄檔案使用而言,可能會使用不正確的紀元紀時戳記,以便瞭解其中的更新順序。資料庫遷移服務會使用記錄序號和紀元紀載時間戳記,控制交易記錄檔複製至 Cloud SQL 目的地執行個體的順序。

建議做法

檔案上傳作業可能會延遲或發生錯誤。請等待幾分鐘,讓問題解決,或檢查 Cloud Storage 值區中是否有缺少的檔案。

如果問題仍未解決,請驗證並調整 交易記錄檔案名稱中的紀元記錄時間戳記

請執行下列步驟:

  1. 檢查目的地 Cloud SQL for SQL Server 執行個體的交易記錄匯入作業清單。前往 Google Cloud 控制台的「Cloud SQL 執行個體」頁面。

    前往 Cloud SQL 執行個體

  2. 依序按一下「View all operations」「View SQL Server error logs」。
  3. 查看交易記錄檔案的所有匯入作業,並確認檔案名稱是否包含正確的紀元紀時戳記。
  4. 如果您發現最近的交易記錄檔案使用名稱與不規則的紀元紀時戳記,請前往 Cloud Storage 值區並重新命名檔案。資料庫遷移服務會自動偵測變更,並嘗試匯入相關的交易記錄檔案。
  5. 僅限 Amazon RDS:在匯出至 S3 的過程中,系統可能會遺漏部分交易記錄檔案。請嘗試針對缺少 WAL 檔案的期間,重新執行交易記錄匯出函式。