本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Aurora DSQL 問題故障診斷
注意
下列主題提供在使用 Aurora DSQL 時,針對可能發生的錯誤與問題之故障排除建議。若您發現此處未列出的問題,請聯絡 AWS 支援團隊。
主題
連線錯誤故障排除
錯誤:無法辨識的 SSL 錯誤碼:6 或無法接受連線,未收到 SNI
您可能正在使用 psql 版本 14 之前的版本
您可以使用 psql --version 檢查用戶端版本。
錯誤:NetworkUnreachable
連線嘗試期間出現的 NetworkUnreachable 錯誤可能表示您的用戶端不支援 IPv6 連線,而非真正的網路問題。此錯誤通常發生於僅支援 IPv4 的執行個體,原因在於 PostgreSQL 用戶端處理雙堆疊連線的方式。當伺服器支援雙堆疊模式時,用戶端會先將主機名稱解析為 IPv4 與 IPv6 位址。用戶端會先嘗試 IPv4 連線,若初始連線失敗再改用 IPv6。若系統不支援 IPv6,畫面將顯示一般性 NetworkUnreachable 錯誤,而非明確的「IPv6 不支援」訊息。
身分驗證錯誤故障排除
使用者 "..." 的 IAM 身分驗證失敗
產生 Aurora DSQL IAM 驗證權杖時,可設定的最長有效期為 1 週。一週後,該權杖將失效,無法再用於身分驗證。
此外,若您所假設的角色已過期,Aurora DSQL 將拒絕您的連線請求。例如,即使驗證權杖仍有效,若您使用臨時 IAM 角色嘗試連線,Aurora DSQL 仍會拒絕請求。
若要深入了解 IAM 與 Aurora DSQL 的整合機制,請參閱了解 Aurora DSQL 的身分驗證與授權及 Aurora DSQL 中的AWS Identity and Access Management。
呼叫 GetObject 操作時發生錯誤 (InvalidAccessKeyId):您提供的 AWS 存取金鑰 ID 不存在於我們的記錄中
IAM 拒絕了您的請求。如需詳細資訊,請參閱為什麼要簽署請求。
IAM 角色 <role> 不存在
Aurora DSQL 找不到您的 IAM 角色。如需詳細資訊,請參閱 IAM 角色。
IAM 角色必須符合 IAM ARN 格式
如需詳細資訊,請參閱 IAM 識別碼 - IAM ARN。
錯誤的使用者對動作映射
當身分驗證字符類型與資料庫角色不相符時,就會發生此錯誤。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: DbConnectAdmingenerate-db-connect-auth-token而非generate-db-connect-admin-auth-token。
授權錯誤故障排除
角色 <role> 不受支援
Aurora DSQL 不支援 GRANT 操作。請參閱 Aurora DSQL 中支援的 SQL 命令子集。
無法使用角色 <role> 建立信任
Aurora DSQL 不支援 GRANT 操作。請參閱 Aurora DSQL 中支援的 SQL 命令子集。
角色 <role> 不存在
Aurora DSQL 找不到指定的資料庫使用者帳號。請參閱授權自訂資料庫角色以連線至叢集。
錯誤:拒絕以角色 <role> 授予 IAM 信任的權限
若要授與資料庫角色存取權限,您必須以管理員角色連線至叢集。若要進一步了解,請參閱授權資料庫角色以在資料庫中使用 SQL。
錯誤:角色 <role> 必須具有 LOGIN 屬性
您建立的任何資料庫角色都必須具有 LOGIN 權限。
若要解決此錯誤,請確定您已使用 LOGIN許可建立 PostgreSQL 角色。如需詳細資訊,請參閱 PostgreSQL 文件中的 CREATE ROLE
錯誤:無法刪除角色 <role>,因為部分物件仍依賴該角色
如果您刪除具有 IAM 關聯的資料庫角色,Aurora DSQL 會傳回錯誤,直到您使用 AWS IAM REVOKE 撤銷關聯為止。若要深入了解,請參閱撤銷授權。
SQL 錯誤疑難排解
錯誤:不支援的查詢
Aurora DSQL 並未支援所有以 PostgreSQL 為基礎的方言。若要了解支援項目,請參閱 Aurora DSQL 所支援的 PostgreSQL 功能。
錯誤:請改用 CREATE INDEX ASYNC 替代。
若要在包含現有資料列的資料表上建立索引,您必須使用 CREATE INDEX
ASYNC 指令。若要進一步了解,請參閱在 Aurora DSQL 中非同步建立索引。
錯誤:伺服器無法使用 (SQLSTATE XX000)
伺服器無法使用錯誤表示暫時服務條件。您的連線會保持作用中狀態,因此您無需重新連線即可重試。
一律從頭開始重試整個交易,包括 COMMIT命令,具有指數退避和抖動。
不確定的遞交結果
如果在遞交交易時發生錯誤,即使您的應用程式收到錯誤,交易可能已遞交。
盡可能將交易設計為等冪。對於非等冪交易,請確認 Aurora DSQL 是否套用寫入,然後再重試交易。
監控伺服器無法使用錯誤的速率。預期偶爾重試。如果錯誤持續發生或影響應用程式效能,請聯絡 AWS Support。
對並行控制回應進行故障診斷
OC000 "ERROR:變更與另一個交易衝突 (OC000)"
此交易嘗試修改與另一個並行交易相同的元組。這表示修改後的元組出現爭用。若要進一步了解,請參閱 Aurora DSQL 中的並行控制。
OC001 "ERROR:結構描述已由另一個交易更新 (OC001)"
您的工作階段在版本 V1 具有結構描述目錄的快取副本,在 T1 時載入。
個別交易在 TV2T2。
在 T3 時,當您的工作階段執行查詢時,它會偵測到它落後,並嘗試重新以新的目錄變更為基礎。在某些情況下,重新基底無法成功,Aurora DSQL 會傳回 40001 OC001 回應。T2 和 T3 之間的時間從毫秒到分鐘不等,因為查詢處理器會以反應方式探索目錄變更,而不是接收主動更新。
當您從相同的工作階段重試時,Aurora DSQL 會重新整理目錄快取。只要自 T2 以來沒有發生進一步的目錄變更,重試的交易就會使用目錄 V2 並成功。 T2
SSL/TLS 連線疑難排解
SSL 錯誤:憑證驗證失敗
此錯誤表示用戶端無法驗證伺服器憑證的有效性。請確認以下事項:
-
Amazon 根 CA 1 憑證已正確安裝。如需驗證與安裝此憑證的相關步驟,請參閱 為 Aurora DSQL 連線設定 SSL/TLS 憑證。
-
PGSSLROOTCERT環境變數應指向正確的憑證檔案。 -
憑證檔案已設定正確的權限。
無法識別的 SSL 錯誤碼:6
PostgreSQL 用戶端版本低於 14 時,會出現此錯誤。將 PostgreSQL 用戶端升級至版本 17 以解決此問題。
SSL 錯誤:未註冊的通訊協定 (Windows)
這是 Windows psql 用戶端在使用系統憑證時的已知問題。請依 從 Windows 進行連線 說明中的指示,使用下載憑證檔案的方法。
從 Amazon CloudWatch Database Insights 主控台對缺少的指標進行故障診斷
Aurora DSQL 叢集未出現在 Amazon CloudWatch Database Insights 主控台中
Amazon CloudWatch Database Insights 會使用來自 Aurora DSQL 資料庫洞見的活動資料填入其叢集選取器。如需 Aurora DSQL 資料庫洞見的詳細資訊,請參閱 使用 Aurora DSQL Database Insights 監控 Aurora DSQL 叢集。只有在叢集在過去八天內產生由 Aurora DSQL 作用中工作階段歷史記錄 (DASH) 採樣器擷取的負載之後,叢集才會在 Database Insights 中顯示。
DASH 使用 1 秒取樣,這可能會錯過以毫秒為單位完成的快速、不常發生的交易。
使用下列步驟來確認這是否說明您看到的內容:
-
確認您在過去八天內已在叢集上執行交易。閒置時間超過 的叢集不會出現在 Database Insights 中,無論您先前如何使用它。若要檢查最近的活動,請在 CloudWatch
TotalTransactions中檢視叢集的指標。如需此指標的詳細資訊,請參閱 可觀測性和效能。 -
針對叢集執行持續工作負載,讓至少一個工作階段保持作用中狀態。範例包括負載測試指令碼、一批插入或長時間執行的查詢。由於 DASH 每秒取樣一次,可能無法擷取簡短的工作負載,因此活動越連續,出現的可能性就越高。
-
執行工作負載後請等待幾分鐘,然後重新整理 Database Insights 主控台。
-
確認您正在檢視建立叢集的相同 AWS 區域和帳戶。選取錯誤的區域或帳戶是叢集似乎遺失的常見原因。