如何為使用 Amazon Redshift 作為目標端點的 AWS Database Migration Service (AWS DMS) 工作疑難排解連線失敗和錯誤?
簡短說明
當您測試與 Amazon Redshift 端點的連線時,如果不符合使用 Amazon Redshift 資料庫作為 AWS Database Migration Service 目標的先決條件,則測試可能會失敗。如果您尚未建立和設定所需的 AWS Identity and Access Management (IAM) 角色,或端點 ARN 的 Amazon Simple Storage Service (Amazon S3) 儲存貯體名稱已使用,就可能會發生這種情況。當您使用 AWS DMS 主控台時,系統會自動建立所需的 IAM 角色,但是如果您使用 AWS DMS API 或 AWS Command Line Interface (AWS CLI),則系統不會建立該角色。
如果 AWS DMS 工作的網路組態發生問題,連線測試也可能會失敗。要疑難排解端點連線錯誤,請參閱如何疑難排解 AWS DMS 端點連線失敗?
如果未正確建立和設定所需的 IAM 角色,您可能會收到類似下列內容的錯誤訊息:
Role 'dms-access-for-endpoint' is not configured properly
解決方法
**注意:**如果您在執行 AWS CLI 命令時收到錯誤訊息,請確定您使用的是最新版本的 AWS CLI。
解決角色 “dms-access-for-endpoint” 未正確配置的錯誤
要解決此問題,請確認已正確建立和設定 dms-access-for-endpoint IAM 角色。如需此角色組態的相關資訊,請參閱建立用於 AWS CLI 和 AWS DMS API 的 IAM 角色。
如果未正確設定 Amazon 受管政策,您可能會收到類似下列內容的錯誤訊息:
Unable to create S3 bucket for Redshift. Bucket Name for endpoint ARN is in use.
以下情況會出現此錯誤:
- Amazon 受管政策 (AmazonDMSRedshiftS3Role 或類似的自訂政策) 未附加到 dms-access-for-endpoint IAM 角色。
- dms-access-for-endpoint IAM 角色政策明確拒絕 Amazon S3。
- AWS DMS 自動建立並與 Amazon Redshift 端點關聯的預先配置 Amazon S3 儲存貯體政策已經過明確限制的修改。
要解決此問題,請將預設的受管政策 (AmazondMsredShifts3Role) 或類似的自訂政策附加到 dms-access-for-endpoint IAM 角色。接著,確認 AWS DMS 關聯的預設 Amazon S3 儲存貯體政策尚未修改。如需詳細資訊,請參閱 Amazon S3 儲存貯體設定。
將資料移轉到 Amazon Redshift 端點
您將資料移轉到 Amazon Redshift 目標端點時,DMS 會使用預設的 Amazon S3 儲存貯體,作為中繼工作儲存。然後,會將移轉的資料複製到 Amazon Redshift。當您為目標 Amazon Redshift 端點執行連線測試時,會自動建立具下列命名慣例的 S3 儲存貯體:
dms-'Redshift endpoint ARN'
您可以為此中繼儲存選擇自訂 S3 儲存貯體。如需詳細資訊,請參閱使用 Amazon Redshift 資料庫作為 AWS Database Migration Service 的目標。
解決 Amazon S3;狀態碼: 400;錯誤代碼: TooManyBuckets 錯誤
如果您的帳戶已達到 Amazon S3 的限制,則在測試端點時,可能會收到類似下列內容的錯誤訊息:
- 服務: Amazon S3;狀態碼: 400;錯誤代碼: TooManyBuckets;請求 ID:xxxxxxxxxxx;S3 延伸請求 ID:xxxxxxxxxxxxxx;Proxy:null
要解決此錯誤,請從您的帳戶中刪除未使用的儲存貯體,然後再次測試端點。
解決 <NoSuchBucket> 「指定的儲存貯體不存在」的錯誤
如果您在工作移轉期間刪除 AWS DMS 建立的 Amazon S3 儲存貯體,您可能會在工作日誌中收到類似下列內容的錯誤訊息:
- <NoSuchBucket> 指定的儲存貯體不存在。
要解決此問題,請測試 Amazon Redshift 端點的連線,然後重新啟動或繼續工作。如果您已將 DMS 端點配置作為自訂儲存貯體使用,請確定其在再次啟動工作前在 Amazon S3 中可用。
相關資訊
使用 Amazon Redshift 資料庫作為 AWS Database Migration Service 的目標