

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Aurora DSQL 問題故障診斷
<a name="troubleshooting"></a>

**注意**  
下列主題提供在使用 Aurora DSQL 時，針對可能發生的錯誤與問題之故障排除建議。若您發現此處未列出的問題，請聯絡 AWS 支援團隊。

**Topics**
+ [連線錯誤故障排除](#troubleshooting-connections)
+ [身分驗證錯誤故障排除](#troubleshooting-authentication)
+ [授權錯誤故障排除](#troubleshooting-authorization)
+ [SQL 錯誤疑難排解](#troubleshooting-sql)
+ [對並行控制回應進行故障診斷](#troubleshooting-occ)
+ [SSL/TLS 連線疑難排解](#troubleshooting-ssl-tls)

## 連線錯誤故障排除
<a name="troubleshooting-connections"></a>

**錯誤：無法辨識的 SSL 錯誤碼：6 **或**無法接受連線，未收到 SNI**

您可能正在使用 psql 版本 [14 之前的版本](https://www.postgresql.org/docs/release/14.0/)，這不支援伺服器名稱指示 (SNI)。連線至 Aurora DSQL 時必須啟用 SNI。

您可以使用 `psql --version` 檢查用戶端版本。

**錯誤：NetworkUnreachable**

連線嘗試期間出現的 `NetworkUnreachable` 錯誤可能表示您的用戶端不支援 IPv6 連線，而非真正的網路問題。此錯誤通常發生於僅支援 IPv4 的執行個體，原因在於 PostgreSQL 用戶端處理雙堆疊連線的方式。當伺服器支援雙堆疊模式時，用戶端會先將主機名稱解析為 IPv4 與 IPv6 位址。用戶端會先嘗試 IPv4 連線，若初始連線失敗再改用 IPv6。若系統不支援 IPv6，畫面將顯示一般性 `NetworkUnreachable` 錯誤，而非明確的「IPv6 不支援」訊息。

## 身分驗證錯誤故障排除
<a name="troubleshooting-authentication"></a>

**使用者 "..." 的 IAM 身分驗證失敗**

產生 Aurora DSQL IAM 驗證權杖時，可設定的最長有效期為 1 週。一週後，該權杖將失效，無法再用於身分驗證。

此外，若您所假設的角色已過期，Aurora DSQL 將拒絕您的連線請求。例如，即使驗證權杖仍有效，若您使用臨時 IAM 角色嘗試連線，Aurora DSQL 仍會拒絕請求。

若要深入了解 IAM 與 Aurora DSQL 的整合機制，請參閱[了解 Aurora DSQL 的身分驗證與授權](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/authentication-authorization.html)及 [Aurora DSQL 中的AWS Identity and Access Management](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/security-iam.html)。

** 呼叫 GetObject 操作時發生錯誤 (InvalidAccessKeyId)：您提供的 AWS 存取金鑰 ID 不存在於我們的記錄中**

IAM 拒絕了您的請求。如需詳細資訊，請參閱[為什麼要簽署請求](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html#why-requests-are-signed)。

**IAM 角色 <role> 不存在**

Aurora DSQL 找不到您的 IAM 角色。如需詳細資訊，請參閱 [IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)。

**IAM 角色必須符合 IAM ARN 格式**

如需詳細資訊，請參閱 [IAM 識別碼 - IAM ARN](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns)。

**錯誤的使用者對動作映射**

當身分驗證字符類型與資料庫角色不相符時，就會發生此錯誤。Aurora DSQL 使用兩種字符類型： `DbConnectAdmin` 用於`admin`角色， `DbConnect`用於自訂資料庫角色。
+ 如果您看到 `Wrong user to action mapping. user: admin, action: DbConnect`，請使用 `generate-db-connect-admin-auth-token`而非 `generate-db-connect-auth-token`。
+ 如果您看到 `Wrong user to action mapping. user: myusername, action: DbConnectAdmin`，請使用 `generate-db-connect-auth-token`而非 `generate-db-connect-admin-auth-token`。

## 授權錯誤故障排除
<a name="troubleshooting-authorization"></a>

**角色 <role> 不受支援**

Aurora DSQL 不支援 `GRANT` 操作。請參閱 [Aurora DSQL 中支援的 SQL 命令子集](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/working-with-postgresql-compatibility-supported-sql-subsets.html)。

**無法使用角色 <role> 建立信任**

Aurora DSQL 不支援 `GRANT` 操作。請參閱 [Aurora DSQL 中支援的 SQL 命令子集](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/working-with-postgresql-compatibility-supported-sql-subsets.html)。

**角色 <role> 不存在**

Aurora DSQL 找不到指定的資料庫使用者帳號。請參閱[授權自訂資料庫角色以連線至叢集](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/using-database-and-iam-roles.html#using-database-and-iam-roles-custom-database-roles)。

**錯誤：拒絕以角色 <role> 授予 IAM 信任的權限**

若要授與資料庫角色存取權限，您必須以管理員角色連線至叢集。若要進一步了解，請參閱[授權資料庫角色以在資料庫中使用 SQL](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/using-database-and-iam-roles.html#using-database-and-iam-roles-custom-database-roles-sql)。

**錯誤：角色 <role> 必須具有 LOGIN 屬性**

您建立的任何資料庫角色都必須具有 `LOGIN` 權限。

若要解決此錯誤，請確定您已建立具備 `LOGIN` 權限的 PostgreSQL 角色。如需詳細資訊，請參閱 PostgreSQL 文件中的 [CREATE ROLE](https://www.postgresql.org/docs/current/sql-createrole.html) 與 [ALTER ROLE](https://www.postgresql.org/docs/current/sql-alterrole.html)。

**錯誤：無法刪除角色 <role>，因為部分物件仍依賴該角色**

如果您刪除具有 IAM 關聯的資料庫角色，Aurora DSQL 會傳回錯誤，直到您使用 `AWS IAM REVOKE` 撤銷關聯為止。若要深入了解，請參閱[撤銷授權](authentication-authorization.md#authentication-authorization-revoke)。

## SQL 錯誤疑難排解
<a name="troubleshooting-sql"></a>

**錯誤：不支援的查詢**

Aurora DSQL 並未支援所有以 PostgreSQL 為基礎的方言。若要了解支援項目，請參閱 [Aurora DSQL 所支援的 PostgreSQL 功能](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/working-with-postgresql-compatibility-supported-sql-features.html)。

**錯誤：請改用 `CREATE INDEX ASYNC` 替代**。

若要在包含現有資料列的資料表上建立索引，您必須使用 `CREATE INDEX ASYNC` 指令。若要進一步了解，請參閱[在 Aurora DSQL 中非同步建立索引](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/working-with-create-index-async.html)。

## 對並行控制回應進行故障診斷
<a name="troubleshooting-occ"></a>

**OC000 “ERROR：變更與另一個交易衝突 (OC000)”**

此交易嘗試修改與另一個並行交易相同的元組。這表示修改後的元組出現爭用。若要進一步了解，請參閱 [ Aurora DSQL 中的並行控制](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/working-with-concurrency-control.html)。

**OC001 “ERROR：結構描述已由另一個交易更新 (OC001)”**

您的工作階段在版本 V1 具有結構描述目錄的快取副本，在 T1 時載入。

個別交易在 TV2T2。

在 T3 時，當您的工作階段執行查詢時，它會偵測到它落後，並嘗試重新以新的目錄變更為基礎。在某些情況下，重新基底無法成功，Aurora DSQL 會傳回 `40001` OC001 回應。T2 和 T3 之間的時間從毫秒到分鐘不等，因為查詢處理器會以反應方式探索目錄變更，而不是接收主動更新。

當您從相同的工作階段重試時，Aurora DSQL 會重新整理目錄快取。重試的交易使用目錄 V2，只要自 T2 以來沒有發生進一步的目錄變更，就會成功。

## SSL/TLS 連線疑難排解
<a name="troubleshooting-ssl-tls"></a>

**SSL 錯誤：憑證驗證失敗**

此錯誤表示用戶端無法驗證伺服器憑證的有效性。請確認以下事項：

1. Amazon 根 CA 1 憑證已正確安裝。如需驗證與安裝此憑證的相關步驟，請參閱 [為 Aurora DSQL 連線設定 SSL/TLS 憑證](configure-root-certificates.md)。

1. `PGSSLROOTCERT` 環境變數應指向正確的憑證檔案。

1. 憑證檔案已設定正確的權限。

**無法識別的 SSL 錯誤碼：6**

PostgreSQL 用戶端版本低於 14 時，會出現此錯誤。將 PostgreSQL 用戶端升級至版本 17 以解決此問題。

**SSL 錯誤：未註冊的通訊協定 (Windows)**

這是 Windows psql 用戶端在使用系統憑證時的已知問題。請依 [從 Windows 進行連線](configure-root-certificates.md#connect-windows) 說明中的指示，使用下載憑證檔案的方法。