您可以將 SQL 物件組合為套件,並以套件為單元使用,藉此擴充 PostgreSQL。本頁說明如何設定 Cloud SQL 支援的 PostgreSQL 擴充功能。
使用 PostgreSQL 擴充功能
您只能安裝 Cloud SQL 支援的擴充功能。詳情請參閱「Cloud SQL 支援的 PostgreSQL 擴充功能」。
安裝擴充功能
使用擴充功能前,請先安裝:
- 在 psql 工具中,執行 CREATE EXTENSION 指令。
超級使用者權限規定
在 Cloud SQL 中,只有屬於 cloudsqlsuperuser 角色的使用者可以建立擴充功能。建立新的 PostgreSQL 執行個體時,系統會為您建立預設的 postgres 使用者 (但您必須設定該使用者的密碼)。預設 postgres 使用者屬於 cloudsqlsuperuser 角色。詳情請參閱「關於 PostgreSQL 使用者」。
資料庫間的連線
連線的目標執行個體必須與連線執行個體位於同一個虛擬私有雲網路。
如果是叢集執行個體,您無法在Google Cloud 控制台中選擇「要求使用信任的用戶端憑證」選項。
此外,如要連線至同一執行個體中的資料庫,您無法將主機設為 localhost 或 127.0.0.1。請改用 Google Cloud 控制台中顯示的執行個體 IP 位址。
申請支援新擴充功能
您無法在 Cloud SQL 中建立自己的擴充功能。
如要要求擴充功能支援,請按一下開啟問題中的「+1」,或建立新問題。如要查看待處理的 Cloud SQL 問題清單,以及瞭解如何建立新問題,請參閱「搜尋或建立問題和功能要求 (按產品劃分)」一節。
Cloud SQL 支援的 PostgreSQL 擴充功能
如要瞭解如何使用特定擴充功能,請參閱下方表格中的說明文件連結。
PostgreSQL 擴充功能的 Cloud SQL 支援可分為下列類別:
PostGIS
PostgreSQL 適用的 Cloud SQL 支援所有主要版本的 PostGIS 擴充功能。
下表列出各個 PostgreSQL 適用的 Cloud SQL 版本適用的 PostGIS 擴充功能版本:
| PostgreSQL 適用的 Cloud SQL 版本 | PostGIS 擴充功能 |
| PostgreSQL 9.6 | 3.2.5 |
| PostgreSQL 10 | 3.2.5 |
| PostgreSQL 11 | 3.2.5 |
| PostgreSQL 12 | 3.4.4 |
| PostgreSQL 13 | 3.5.2 |
| PostgreSQL 14 | 3.5.2 |
| PostgreSQL 15 | 3.5.2 |
| PostgreSQL 16 | 3.5.2 |
| PostgreSQL 17 | 3.5.2 |
如要指定特定 PostgreSQL 主要版本,您可以在 CREATE EXTENSION 指令中使用 VERSION 子句,指定 PostGIS 擴充功能版本。
PostGIS 擴充功能包含下列項目:
postgispostgis_rasterpostgis_sfcgalpostgis_tiger_geocoderpostgis_topologyaddress_standardizeraddress_standardizer_data_us
詳情請參閱「PostGIS 安裝」。
此外,PostgreSQL 適用的 Cloud SQL 包含 3.6.2 版的 pgRouting 擴充功能,可擴充 PostGIS。pgRouting 擴充功能可透過網路路徑和分析,提升地理空間處理能力。
您可以手動將 PostGIS 和相關擴充功能升級至最新版本。如要進一步瞭解如何升級 PostGIS 擴充功能,請參閱「升級 PostGIS」。
資料類型擴充功能
| 擴充功能 | 說明 |
| btree_gin | 提供實作 B 樹狀結構等效行為的範例 GIN 運算子類別。 PostgreSQL 9.6 使用 1.0 版。PostgreSQL 10 使用 1.2 版。 PostgreSQL 11 以上版本使用 1.3 版。 |
| btree_gist | 提供實作 B 樹狀結構等效行為的 GiST 索引運算子類別。 PostgreSQL 9.6 使用 1.2 版。PostgreSQL 10、11、12 和 13 則使用 1.5 版。 PostgreSQL 14 使用 1.6 版。PostgreSQL 15、16 和 17 使用 1.7 版。 PostgreSQL 18 使用 1.8 版。 |
| chkpass | 實作專為儲存加密密碼設計的資料型別 chkpass。PostgreSQL 9.6 和 10 使用 1.0 版。其他版本不支援這項功能。 |
| citext | 提供不區分大小寫的字元字串類型 citext。PostgreSQL 9.6 使用 1.3 版。PostgreSQL 10 使用 1.4 版。 PostgreSQL 11 使用 1.5 版。PostgreSQL 12、13、14、15、16 和 17 使用 1.6 版。 PostgreSQL 18 使用 1.8 版。 |
| cube | 實作資料型別 cube,代表多維度立方體。PostgreSQL 9.6 和 10 使用 1.2 版。PostgreSQL 11 使用 1.3 版。PostgreSQL 12 和 13 使用 1.4 版。PostgreSQL 14 以上版本使用 1.5 版。 |
| hstore | 實作 hstore 資料型別,在單一 PostgreSQL 值中儲存鍵/值組合集。PostgreSQL 9.6 和 10 使用 1.4 版。PostgreSQL 11 使用 1.5 版。PostgreSQL 12 使用 1.6 版。 PostgreSQL 13 使用 1.7 版。PostgreSQL 14 以上版本使用 1.8 版。 |
| ip4r | 提供 IPv4/v6 位址和位址範圍的資料類型,以及索引支援。 PostgreSQL 適用的 Cloud SQL 使用 2.4.2 版。 |
| isn | 提供部分國際產品編號標準的資料類型。 PostgreSQL 9.6 和 10 使用 1.1 版。PostgreSQL 11、12、13、14、15、16 和 17 使用 1.2 版。 PostgreSQL 18 使用 1.3 版。 |
| lo | 支援管理大型物件 (也稱為 LO 或 BLOB)。 PostgreSQL 適用的 Cloud SQL 使用 1.1 版。 |
| ltree | 實作 ltree 資料型別,用於表示儲存在階層式樹狀結構中的資料標籤。PostgreSQL 9.6、10、11 和 12 使用 1.1 版。PostgreSQL 13、14、15 和 16 則使用 1.2 版。PostgreSQL 17 使用 1.3 版。 |
| postgresql-hll | 推出新的資料型別 hll,這是 HyperLogLog 資料結構。另請參閱本文中的 postgresql-hll。PostgreSQL 適用的 Cloud SQL 使用 2.18 版。 |
| prefix | 提供前置字串比對,以及索引支援。 PostgreSQL 適用的 Cloud SQL 使用 1.2.0 版。 |
語言擴充功能
| 擴充功能 | 說明 |
| plpgsql | 可載入的程序語言,用於建立函式、程序和觸發條件。您也可以使用這種語言,直接在 DO 區塊中執行程式碼。 PostgreSQL 適用的 Cloud SQL 使用 1.0 版。 |
| plv8 | 提供啟用 JavaScript 的程序語言。 PostgreSQL 適用的 Cloud SQL 使用 3.2.2 版,該版本則使用 V8 JavaScript 引擎 11.5 版。 |
其他擴充功能
| 擴充功能 | 說明 |
| amcheck | 提供相關函式,用於驗證關係結構的邏輯一致性,讓 pg_amcheck 應用程式檢查是否有損毀情形。 |
| auto_explain | 可自動記錄執行緩慢的陳述式執行計畫,以利進行疑難排解等作業。提供自動執行 EXPLAIN 指令功能的方法。另請參閱本文中的「auto_explain」。 |
| autoinc | 提供自動遞增欄位的函式。這個觸發程序會將序列的下一個值儲存到整數字段中。 PostgreSQL 適用的 Cloud SQL 使用 1.0 版。 |
| bloom | 提供根據 Bloom 篩選器存取索引的方法。布隆篩選器是一種空間效率高的資料結構,可用於測試元素是否為集合的成員。 PostgreSQL 適用的 Cloud SQL 使用 1.0 版。 |
| dblink | 提供從資料庫工作階段連線至 PostgreSQL 資料庫的函式。另請參閱本文中的
dblink。 PostgreSQL 適用的 Cloud SQL 使用 1.2 版。 |
| decoderbufs | PostgreSQL 邏輯解碼器,可將輸出資料以通訊協定緩衝區的形式傳送,並適用於 Debezium。 |
| dict_int | 全文搜尋的附加字典範本,可控制整數的索引作業。 PostgreSQL 適用的 Cloud SQL 使用 1.0 版。 |
| earthdistance | 提供兩種方法,計算地球表面上的大圓距離。 PostgreSQL 9.6、10、11、12、13、14、15 和 16 使用 1.1 版。 PostgreSQL 17 和 18 使用 1.2 版。 |
| fuzzystrmatch | 提供多個函式,可判斷字串之間的相似度和距離。 PostgreSQL 9.6、10、11、12、13、14 和 15 使用 1.1 版。PostgreSQL 16 以上版本使用 1.2 版 |
| google_ml_integration | 生成向量嵌入項目:使用大型語言模型 (LLM) 將文字提示轉換為數值向量。 PostgreSQL 12 以上版本使用 1.4.3 版。其他版本不支援這項功能。 |
| insert_username | 提供將目前使用者名稱儲存至文字欄位的函式。您可以使用這項功能,追蹤資料庫表格中最後修改資料列的使用者。 PostgreSQL 適用的 Cloud SQL 使用 1.0 版。 |
| intagg | 提供整數匯集器與列舉程式。 PostgreSQL 適用的 Cloud SQL 使用 1.1 版。 |
| intarray | 提供一系列函式和運算子,可處理不含空值的整數陣列,並對這些陣列執行索引搜尋。 PostgreSQL 9.6、10、11 和 12 使用 1.2 版。PostgreSQL 13 使用 1.3 版。PostgreSQL 14 以上版本使用 1.5 版。 |
| moddatetime | 提供將目前時間儲存到 timestamp 欄位的函式。您可以使用這項功能,追蹤資料庫表格中資料列的上次修改時間。PostgreSQL 適用的 Cloud SQL 使用 1.0 版。 |
| oracle_fdw | 提供外來資料包裝函式 (fdw),方便有效率地存取 Oracle 資料庫。 PostgreSQL 適用的 Cloud SQL 使用 1.2 版。 如果您使用 Private Service Connect 連線至 Cloud SQL 執行個體,則必須啟用 Private Service Connect 傳出連線,才能使用這個擴充功能。 |
| orafce | 提供函式和運算子,模擬 Oracle 資料庫中的部分函式和套件。使用這些函式將 Oracle 應用程式移植到 PostgreSQL。 PostgreSQL 9.6 和 10 使用 3.25 版。PostgreSQL 11 以上版本使用 4.13 版。 |
| pageinspect | 以低層級檢查資料庫頁面的內容。另請參閱本文中的 pageinspect。 PostgreSQL 9.6 使用 1.5 版。PostgreSQL 10 使用 1.6 版。 PostgreSQL 11 和 12 使用 1.7 版。PostgreSQL 13 和 14 使用 1.8 版。PostgreSQL 15 使用 1.11 版。 PostgreSQL 16 和 17 使用 1.12 版。 PostgreSQL 18 使用 1.13 版。 |
| pgAudit | 收集稽核資料。
pgAudit 所有版本稽核記錄檔的可能值為 如要進一步瞭解如何搭配使用這項擴充功能與 Cloud SQL,請參閱「 使用 pgAudit 執行 PostgreSQL 的稽核作業」。 |
| pg_background | 您可以在背景工作站中執行任意指令。 PostgreSQL 17 和更早版本使用 1.3 版。 PostgreSQL 18 使用 1.4 版。 |
| pg_bigm | 啟用全文搜尋功能,並允許使用雙連字元 (二元組) 索引,加快全文搜尋速度。另請參閱本文中的 pg_bigm。 |
| pg_buffercache | 提供即時檢查共用緩衝區快取中發生情況的方法。 PostgreSQL 9.6 使用 1.2 版。PostgreSQL 10、11、12、13、14 和 15 使用 1.3 版。 PostgreSQL 16 使用 1.4 版。 PostgreSQL 17 以上版本使用 1.5 版。 |
| pg_cron | 提供以 Cron 為基礎的工作排程器。這項擴充功能可啟用 cron 語法,直接從資料庫排定 PostgreSQL 指令。如要進一步瞭解擴充功能,請參閱本文中的 pg_cron。 PostgreSQL 10 以上版本使用 1.6.4 版。 |
| pgcrypto | 為 PostgreSQL 提供加密函式。 PostgreSQL 適用的 Cloud SQL 使用 1.3 版。 |
| pglogical | 提供 PostgreSQL 的邏輯複製功能。請參閱「
設定邏輯複製和解碼」。 PostgreSQL 17 和更早版本使用 2.4.5 版。 PostgreSQL 18 使用 2.4.6 版。 |
| pgfincore | 一組函式,可從 PostgreSQL 管理作業系統磁碟快取記憶體中的頁面。另請參閱本文中的 pgfincore。 PostgreSQL 適用的 Cloud SQL 使用 1.3.1 版。 |
| pg_freespacemap | 檢查可用空間地圖 (FSM)。
另請參閱本文中的 pg_freespacemap。 PostgreSQL 17 和更早版本使用 1.2 版。 PostgreSQL 18 使用 1.3 版。 |
| pg_hint_plan | 您可以使用提示 (SQL 註解中的簡單說明) 改善 PostgreSQL 執行計畫。另請參閱本文中的 pg_hint_plan。 |
| pgoutput | 邏輯複製功能會使用這個外掛程式擷取變更資料。
pgoutput 是預設外掛程式,因此所有版本的 PostgreSQL 適用的 Cloud SQL 都支援此外掛程式。 |
| pg_ivm | 可讓您更新具體化檢視區塊,只計算並套用檢視區塊的增量變更,而非從頭重新計算內容。 PostgreSQL 13 以上版本支援 1.9 版。 |
| pg_partman | 可讓您建立及管理以時間和序號為準的資料表分區集。另請參閱本文中的 pg_partman。 PostgreSQL 14 以上版本支援 5.2.4 版,而 PostgreSQL 14 以下版本僅支援 4.7.4 版。 |
| pg_prewarm | 提供便利的方式,將關聯資料載入作業系統緩衝區快取或 PostgreSQL 緩衝區快取。 PostgreSQL 9.6 和 10 使用 1.1 版。PostgreSQL 11 以上版本使用 1.2 版。 |
| plpgsql_check | PL/pgSQL 的靜態分析 Linter 工具,這是 PostgreSQL 的原生預存程序語言。 PostgreSQL 適用的 Cloud SQL 使用 2.8 版。 PostgreSQL 14 以上版本支援這項擴充功能。 |
| pg_proctab | 讓您搭配 PostgreSQL 適用的 Cloud SQL 使用 pg_top,並從作業系統程序表產生報表。另請參閱本文中的 pg_proctab。 |
| pg_repack | 可移除資料表和索引中的膨脹。
您也可以選擇執行線上 CLUSTER (依叢集索引排序資料表)。另請參閱本文中的 pg_repack。 PostgreSQL 適用的 Cloud SQL 使用 1.5.0 版。 |
| pg_roaringbitmap | pg_roaringbitmap 擴充功能會導入咆哮位元對應
資料類型,可有效率地儲存大量整數集合,並快速執行集合運算。系統會根據整數密度,以壓縮形式 (陣列、點陣圖或執行容器) 動態儲存整數,大幅減少儲存空間用量,並加快聯集、交集和基數計算等常見作業。適用於 PostgreSQL 12 以上版本。 PostgreSQL 適用的 Cloud SQL 使用 pg_roaringbitmap 0.5 版。 |
| pgrowlocks | 提供指定表格的列鎖定資訊。 PostgreSQL 適用的 Cloud SQL 使用 1.2 版。 |
| pgstattuple | 提供各種函式,可取得元組層級的統計資料。 PostgreSQL 9.6 使用 1.4 版。其他所有版本都使用 1.5 版。 |
| pg_similarity | 支援 PostgreSQL 的相似度查詢。 PostgreSQL 適用的 Cloud SQL 使用 1.0 版。 |
| pg_squeeze | 從資料表中移除未使用的空間,並視需要使用索引排序資料表記錄或資料列 (元組)。如要進一步瞭解這項擴充功能,請參閱本文的「pg_squeeze」一節。 PostgreSQL 11 使用 1.5 版。PostgreSQL 12、13、14、15、16 和 17 使用 1.8 版。 PostgreSQL 18 使用 1.9 版。 |
| pg_stat_statements | 可讓您追蹤執行的所有 SQL 陳述式的執行統計資料。 PostgreSQL 9.6 使用 1.4 版。PostgreSQL 10 和 11 請使用 1.6 版。PostgreSQL 12 則使用 1.7。PostgreSQL 13 使用 1.8. PostgreSQL 14 則使用 1.9 版。PostgreSQL 15 和 16 使用 1.10 版。 PostgreSQL 17 使用 1.11。 PostgreSQL 18 使用 1.12。 |
| pgTAP | 提供以 PL/pgSQL 和 PL/SQL 編寫的 PostgreSQL 單元測試架構。 PostgreSQL 適用的 Cloud SQL 使用 1.3.0 版。 |
| pg_trgm | 提供函式和運算子,根據三元組比對判斷英數文字的相似度,以及支援快速搜尋相似字串的索引運算子類別。 PostgreSQL 9.6 和 10 使用 1.3 版。PostgreSQL 11 和 12 使用 1.4 版。 PostgreSQL 13 則使用 1.5。PostgreSQL 14 以上版本使用 1.6 版。 |
| pgtt | 在 PostgreSQL 資料庫中建立及管理 DB2 或 Oracle 樣式的全域暫時資料表。 |
| pgvector |
開放原始碼擴充功能,可在 PostgreSQL 資料庫中儲存及搜尋向量嵌入。 |
| pg_visibility | 提供檢查資料表可見度地圖 (VM) 和網頁層級可見度資訊的方法。另請參閱本文中的 pg_visibility。 PostgreSQL 適用的 Cloud SQL 使用 1.2 版。 |
| pg_wait_sampling | 收集等待事件的取樣統計資料,提供伺服器上程序的等待事件資料。PostgreSQL 適用的 Cloud SQL 使用 1.1.5 版。 |
| PL/Proxy | 程序語言處理常式,可讓 PostgreSQL 資料庫之間進行遠端程序呼叫,並可選擇分片。另請參閱本文中的「PL/Proxy」。 PostgreSQL 適用的 Cloud SQL 使用 2.11.0 版。 |
| postgres_fdw | 允許在執行個體內或跨執行個體建立外部資料包裝函式。另請參閱本文中的 postgres_fdw。 PostgreSQL 9.6、10、11、12 和 13 使用 1.0 版。 PostgreSQL 14 以上版本使用 1.1 版。 |
| postgresql_anonymizer | 遮蓋或取代 PostgreSQL 資料庫中的個人識別資訊 (PII) 或機密資料。詳情請參閱「postgresql_anonymizer」一節。 PostgreSQL 適用的 Cloud SQL 使用 1.0.0 版。 |
| postgresql_hll | 提供 HyperLogLog ( PostgreSQL 適用的 Cloud SQL 使用 2.18 版。 |
| rdkit | 這是一套化學資訊學和機器學習軟體,您可以使用這項擴充功能比較、操控及識別分子結構。 PostgreSQL 適用的 Cloud SQL 使用 4.6.1 版。 |
| refint | 包括檢查外鍵限制、參照資料表和參照資料表的函式。這個擴充功能也會示範 伺服器程式設計介面 (SPI)。PostgreSQL 適用的 Cloud SQL 使用 1.0 版。 |
| sslinfo | 提供目前用戶端連線至執行個體時提供的 SSL 憑證相關資訊。 PostgreSQL 適用的 Cloud SQL 使用 1.2 版。 |
| tablefunc | 包含傳回表格 (多列) 的各種函式。 PostgreSQL 適用的 Cloud SQL 使用 1.0 版。 |
| tcn | 提供觸發函式,可將資料庫表格內容的變更通知給監聽器。 PostgreSQL 適用的 Cloud SQL 使用 1.0 版。 |
| tds_fdw | 提供外來資料包裝函式 (fdw),用於存取使用表格資料串流 (TDS) 通訊協定的資料庫,例如 Microsoft SQL Server 和 Sybase。PostgreSQL 適用的 Cloud SQL 使用 2.0.4 版。Postgres 用戶端可以使用 SSL 加密連線至 SQL Server 來源。不過,系統不會強制執行伺服器憑證驗證。 |
| temporal_tables | 支援時間表。時間性資料表會記錄資料列從資料庫角度來看有效的時間範圍。 PostgreSQL 適用的 Cloud SQL 使用 1.2.2 版。 |
| tsm_system_rows | 提供資料表取樣方法 SYSTEM_ROWS,可用於 SELECT 指令的 TABLESAMPLE 子句。 PostgreSQL 適用的 Cloud SQL 使用 1.0 版。 |
| tsm_system_time | 提供資料表取樣方法 SYSTEM_TIME,可用於 SELECT 指令的 TABLESAMPLE 子句。 PostgreSQL 適用的 Cloud SQL 使用 1.0 版。 |
| unaccent | 文字搜尋字典,可從詞素中移除重音符號 (變音符號)。 PostgreSQL 適用的 Cloud SQL 使用 1.1 版。 |
| uuid-ossp | 提供函式,藉此使用多個標準演算法中的其中一個來產生通用唯一識別碼 (UUID)。 PostgreSQL 適用的 Cloud SQL 使用 1.1 版。 |
部分 PostgreSQL 擴充功能詳情
本節將詳細說明上表中的部分 PostgreSQL 擴充功能。
auto_explain
如要在執行個體上開始使用這項擴充功能,請將 cloudsql.enable_auto_explain 旗標設為 on。如要瞭解如何設定旗標,以及查看這項擴充功能支援的旗標,請參閱「設定資料庫旗標」。
如要查看與這項擴充功能啟用的執行計畫記錄相關聯的記錄資料和事件,請參閱 Cloud Logging 說明文件。
或者,如果使用者只有 cloudsqlsuperuser 角色,您可以使用 load 指令,為一個工作階段載入這個擴充功能。
dblink
在資料庫工作階段中,您可以使用這個擴充功能連線至 PostgreSQL 資料庫並執行查詢。
目前,這個擴充功能適用於同一個虛擬私有雲網路中的兩個 Cloud SQL 私人 IP 執行個體,或同一個執行個體中的跨資料庫。
詳情請參閱 PostgreSQL 說明文件中的「dblink」。
使用 dblink 連線並提供密碼
如要連線至資料庫,或與其他使用者連線至相同執行個體,您必須指定密碼。以下程式碼片段僅供參考 (不適用於正式環境):
SELECT * FROM dblink (
'dbname=name port=1234 host=host user=user password=password',
'select id, name from table' \
) AS t(id int, name text);
或者,如要只設定連線,以下是程式碼片段範例 (不適用於正式版):
SELECT dblink_connect('dbname=dblinktest user=postgres host=name_or_ip password=xxx');
使用 dblink 連線,不必輸入密碼
如要以相同使用者身分連線至相同執行個體,可以不必輸入密碼。例如:
設定下列資料庫旗標,即可在沒有密碼的情況下啟用本機連線
cloudsql.allow_passwordless_local_connections連線時不指定主機,這表示連線至相同例項。範例如下:
SELECT * FROM dblink('dbname=finance user=alice', 'select income from revenue') AS revenue(income integer);結果可能類似下列內容:
income -------- 1000 (1 row)
如要連線至同一執行個體內的資料庫,您無法將主機設為 localhost 或 127.0.0.1。請改用 Google Cloud 控制台中顯示的執行個體 IP 位址。
另請參閱本文中的 postgres_fdw 和 PL/Proxy。
pageinspect
這項擴充功能會檢查資料庫網頁的內容,層級較低。 詳情請參閱 PostgreSQL 說明文件中的「pageinspect」一節。
pg_bigm
這個擴充功能可啟用全文搜尋,並允許使用雙連字 (雙字母) 索引,加快全文搜尋速度。
如要在執行個體上開始使用這項擴充功能,請將 cloudsql.enable_pg_bigm 旗標設為 on。系統也支援下列旗標:
pg_bigm.enable_recheckpg_bigm.gin_key_limitpg_bigm.similarity_limit
如要瞭解如何設定旗標,以及查看這個擴充功能支援的旗標,請參閱「設定資料庫旗標」。
pg_cron
如要在執行個體上開始使用 pg_cron,請將 cloudsql.enable_pg_cron 旗標設為 on。如要瞭解如何設定旗標,以及查看這項擴充功能支援的旗標,請參閱「設定資料庫旗標」。
這些工作會設定為背景工作站,因此您可能需要使用標準 PostgreSQL 技術 (例如 max_worker_processes 標記),調整背景工作站的數量。
Cloud SQL 支援這個擴充功能的背景工作者模式,但不支援 libpq 介面。因此,不需要直接驗證涉及這個擴充功能的信任關係。
pgfincore
這個擴充功能包含的函式,可從 PostgreSQL 管理作業系統磁碟快取記憶體中的頁面。詳情請參閱 pgfincore 說明文件。
pg_freespacemap
這項擴充功能會檢查可用空間地圖 (FSM)。詳情請參閱 PostgreSQL 說明文件中的 pg_freespacemap。
pg_hint_plan
如要在執行個體上開始使用這項擴充功能,請將 cloudsql.enable_pg_hint_plan 旗標設為 on。如要瞭解如何設定旗標,以及查看這項擴充功能支援的旗標,請參閱「設定資料庫旗標」。
或者,如果只有 cloudsqlsuperuser 角色的使用者,可以使用 load 指令為單一工作階段載入這個擴充功能。
pg_partman
這項擴充功能可讓您建立及管理以時間和序號為準的資料表分割區集。
在 Cloud SQL 中,這個擴充功能不包含自動分割區維護的背景工作站。您可以改用 Cloud Scheduler 等服務,定期呼叫維護函式來執行維護作業。
pg_proctab
以下是使用 pg_proctab 擴充功能啟用 pg_top 公用程式的步驟:
- 在 psql 工具中,針對 pg_proctab 執行 CREATE EXTENSION 指令。
- 下載並執行 pg_top。
- 連線至 PostgreSQL 適用的 Cloud SQL 執行個體時,請新增
-r選項,以便連線至遠端資料庫,並取得指標。
輸出內容中包含下列執行個體層級指標,包括執行個體中其他支援代理程式和服務的使用量:
- 平均負載
- CPU 狀態 (使用者、nice、系統、閒置和 iowait 的百分比)
- 記憶體 (已用、可用和快取)
pg_repack
這個擴充功能可讓您移除表格和索引中的膨脹資料。您也可以選擇使用這個擴充功能執行線上 CLUSTER (依叢集索引排序資料表)。詳情請參閱 pg_repack 說明文件。此外,如要在 Cloud SQL 中使用這項擴充功能,必須採用特殊程序,才能為使用者新增權限。
如果 cloudsqlsuperuser 角色以外的使用者想使用擴充功能,您必須授予該使用者 cloudsqlsuperuser 權限。詳情請參閱本文「超級使用者權限規定」一節。下列範例使用 GRANT 指令新增必要權限。
新增權限的範例
在下方的範例中,csuper1 是 cloudsqlsuperuser,而 testdb 是 testuser 擁有的資料庫。如要在 testdb 中建立 pg_repack 擴充功能,請先執行下列指令:
以
cloudsqlsuperuser身分連線至testdb:psql -U csuper1 -d testdb;將資料庫擁有者 (即
testuser,) 授予csuper1:GRANT testuser TO csuper1;建立擴充功能:
CREATE EXTENSION pg_repack;在資料表上執行
pg_repack指令,例如testdb中的t1,如csuper1所示:pg_repack -h <hostname> -d testdb -U csuper1 -k -t t1pg_repack 工作完成後,請撤銷您在步驟 2 中執行的授權:
REVOKE testuser FROM csuper1;
pg_repack 指令可能會失敗並顯示下列錯誤:
"ERROR: query failed: SSL SYSCALL error: EOF detected"
如果發生該錯誤,請嘗試將 TCP Keepalive 值設為較小的值,然後執行 pg_repack 指令。詳情請參閱「連線逾時 (從 Compute Engine)」。
pg_squeeze
這個擴充功能會移除資料表中未使用的空間,並視需要使用索引排序資料表元組。如要在執行個體上開始使用擴充功能,請將 cloudsql.enable_pg_squeeze 旗標設為 on。
這項擴充功能也會將額外資訊寫入預先寫入記錄 (WAL),支援邏輯解碼。如要為擴充功能啟用這項功能,請將 wal_level 設定參數設為 logical 以上,方法是將 cloudsql.logical_decoding 旗標設為 on。
擴充功能需要為 max_replication_slots 旗標設定值。如果尚未指定此標記的值,請將值設為 1。否則,請將旗標的值加 1。
如要瞭解如何設定旗標,以及查看這項擴充功能支援的旗標,請參閱「設定資料庫旗標」。
pgtt
如要在執行個體上開始使用這項擴充功能,請將 pgtt.enabled 旗標設為 on。如要瞭解如何設定旗標,以及查看這項擴充功能支援的旗標,請參閱「設定資料庫旗標」。
pg_visibility
這項擴充功能可檢查資料表的顯示地圖 (VM) 和網頁層級顯示資訊。詳情請參閱 PostgreSQL 說明文件中的 pg_visibility。
PL/Proxy
這個擴充功能是程序語言處理常式,可讓 PostgreSQL 資料庫之間進行遠端程序呼叫,並視需要進行分片。
詳情請參閱 PL/Proxy 說明文件。
連線的目標執行個體必須與連線執行個體位於相同的虛擬私有雲網路。此外,您無法在Google Cloud 控制台中,為叢集執行個體選擇「僅允許 SSL 連線」按鈕。
如要連線至同一執行個體內的資料庫,您無法將主機設為 localhost 或 127.0.0.1。請改用 Google Cloud 控制台中顯示的執行個體 IP 位址。
另請參閱本文中的 postgres_fdw 和 dblink。
postgresql_anonymizer
如要在執行個體上開始使用這項擴充功能,請將 cloudsql.enable_anon 旗標設為 on。如要瞭解如何設定旗標,以及查看這項擴充功能支援的旗標,請參閱「設定資料庫旗標」。
postgres_fdw
這項擴充功能可將其他 (「外部」) PostgreSQL 資料庫中的資料表,公開為目前資料庫中的「外部」資料表。這些資料表隨後即可使用,幾乎與本機資料表無異。詳情請參閱 PostgreSQL 說明文件中的「postgres_fdw」。
這個擴充功能適用於同一虛擬私有雲網路中的兩個 Cloud SQL 私人 IP 執行個體,或同一執行個體中的跨資料庫。
如要連線至同一執行個體內的資料庫,您無法將主機設為 localhost 或 127.0.0.1。請改用 Google Cloud 控制台中顯示的執行個體 IP 位址。
此外,如果執行個體儲存外部資料,您可以在 Google Cloud 控制台中選擇「僅允許 SSL 連線」選項。您無法選擇「要求使用信任的用戶端憑證」選項。只有cloudsqlsuperuser才能成為postgres_fdw外部資料包裝函式的擁有者。
postgresql-hll
這個擴充功能會導入新的資料型別 hll,也就是 HyperLogLog 資料結構。詳情請參閱 postgresql-hll 說明文件。