如要診斷及解決 AlloyDB for PostgreSQL 叢集就地升級主要版本時發生的問題,請在作業回應中找出失敗的升級階段,並處理任何違反升級前檢查規定的情況。如需逐步升級操作說明,請參閱「就地升級資料庫主要版本」。如需特定錯誤訊息和解決方法,請參閱「資料庫就地主要版本升級錯誤」。
AlloyDB 會同步驗證要求,如果符合下列任一情況,就會傳回錯誤訊息:
- 要求無效。例如,如果提供的目標主要版本不受支援,或小於或等於目前的主要版本。
- 叢集資源處於無法觸發主要版本升級的狀態。例如,如果叢集或任何相關聯的執行個體並非處於
READY狀態。
如果要求有效,升級作業可能會因下列原因而失敗:
- 在各階段執行的升級前檢查可能會失敗,這表示偵測到違規事項。您必須先解決這些違規問題,才能重新開始升級。
- 內部錯誤表示您需要重新嘗試升級。如果重試失敗,請與 Cloud Customer Care 聯絡。
AlloyDB 升級前檢查失敗
升級前檢查失敗可能發生在下列任一階段:
- AlloyDB 升級前檢查 (
ALLOYDB_PRECHECK) pg_upgrade項檢查 (PG_UPGRADE_CHECK)- 主要叢集升級 (
PRIMARY_INSTANCE_UPGRADE)
升級前檢查失敗是指 AlloyDB 在升級前驗證階段偵測到的問題,可能導致就地主要版本升級失敗。舉例來說,AlloyDB 會檢查目前和目標主要版本之間的擴充功能不相容性。
錯誤訊息會填入升級作業回應的 logs_url。如要查看這些記錄,請前往 Google Cloud 控制台的「Logs Explorer」。詳情請參閱「查看升級記錄」。
如要查看記錄中可能出現的失敗和對應錯誤訊息,請參閱「資料庫就地主要版本升級錯誤」。
以下是 AlloyDB 升級前檢查在記錄中生成的摘要範例:
Total number of databases checked for custom checks: 3 Total number of databases containing pg_largeobject: 0 Total number of databases containing event triggers permissions issue: 0 Total number of databases containing extensions compatibility violation: 1 Total number of databases containing search path violations: 0
pg_upgrade 檢查失敗
PG_UPGRADE_CHECK 會使用標準 pg_upgrade 公用程式檢查違規情形。這項升級檢查包含因各種因素而產生的資料不一致問題,包括版本專屬資料結構的差異、編碼和定序的變更、資料類型的修改,以及系統目錄的調整。
多個檔案 (例如 pg_upgrade 期間產生的 tables_with_oids.txt 和 tables_using_reg.txt) 會匯出至 postgres_upgrade 記錄檔。您可以使用 labels.FILE_NAME 標籤篩選這些檔案。
可能含有待解決錯誤的檔案名稱包括:
| 檔案名稱 | 說明 |
|---|---|
|
這個檔案包含以物件 ID (OID) 列出的資料表。請刪除資料表或修改資料表,使其不使用 OID。 |
|
這個檔案包含使用系統定義複合類型列出的資料表。請刪除資料表,或修改資料表,避免使用這些複合類型。 |
|
這個檔案包含使用 UNKNOWN 資料類型列出的資料表。請刪除資料表,或修改資料表,使其不使用這個資料類型。 |
|
這個檔案包含使用 SQL_IDENTIFIER 資料類型列出的資料表。請刪除資料表,或修改資料表,使其不使用這個資料類型。 |
|
這個檔案包含使用 REG* 資料類型列出的資料表,例如 REGCOLLATION 或 REGNAMESPACE。請刪除資料表,或修改資料表,使其不使用這個資料類型。 |
|
這個檔案包含使用 postfix (右一元) 運算子列出的資料表。請刪除資料表,或修改資料表,避免使用這些運算子。 |
pg_upgrade 失敗
PG_UPGRADE 記錄的結構與 PG_UPGRADE_CHECK 記錄類似。
以下是標籤為 labels.FILE_NAME=pg_upgrade_dump*.log: 的記錄範例
pg_upgrade_dump: error: query failed: ERROR: out of shared memory HINT: You might need to increase max_locks_per_transaction.
後續步驟
- 瞭解資料庫就地升級主要版本錯誤。
- 瞭解如何就地升級資料庫主要版本。