本文說明如何排解將 AlloyDB for PostgreSQL 資料庫升級至就地主要版本時可能遇到的問題。詳情請參閱「就地升級資料庫主要版本」。如要瞭解就地升級主要版本時發生的錯誤,請參閱「資料庫就地升級主要版本時發生的錯誤」。
如要分析升級失敗情形,請從回應中找出失敗的升級階段,並使用本文中的資訊找出可能的解決方法。
AlloyDB 會同步驗證您的要求,如果出現下列任一情況,就會傳回錯誤訊息:
- 要求無效。舉例來說,如果提供的目標主要版本不受支援,或小於或等於目前的主要版本。
- 叢集資源處於無法觸發主要版本升級的狀態。舉例來說,如果叢集或任何相關聯的執行個體不在
READY
狀態。
如果要求有效,升級失敗的可能原因如下:
- 在各個階段執行的升級前檢查可能會失敗,這表示系統偵測到違規行為。請務必先解決這些違規事項,再重新啟動升級程序。
- 發生內部錯誤表示您需要重試升級。如果重試失敗,請與 Google Cloud 支援團隊聯絡。
AlloyDB 升級前檢查失敗
升級前檢查失敗可能發生在下列任一階段:
- AlloyDB 升級前檢查 (
ALLOYDB_PRECHECK
) pg_upgrade
檢查 (PG_UPGRADE_CHECK
)- 主要叢集升級 (
PRIMARY_INSTANCE_UPGRADE
)
升級前檢查失敗是指 AlloyDB 在升級前驗證階段偵測到的問題,可能會導致直接升級主要版本失敗。舉例來說,AlloyDB 會檢查目前和目標主要版本之間的擴充功能是否不相容。
升級作業回應中的 logs_url
會填入錯誤訊息。如要查看這些記錄,請前往 Google Cloud 控制台的「記錄檔探索工具」。詳情請參閱「查看升級記錄」。
如要查看失敗情形和記錄檔中可能顯示的對應錯誤訊息,請參閱「資料庫就地升級主要版本時發生錯誤」。
以下是 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.
後續步驟
- 瞭解資料庫就地升級主要版本時發生的錯誤。
- 瞭解如何就地升級資料庫的主要版本。