設定 PostgreSQL 擴充功能

您可以將 SQL 物件組合為套件,並以套件為單元使用,藉此擴充 PostgreSQL。本頁說明如何設定 Cloud SQL 支援的 PostgreSQL 擴充功能。

使用 PostgreSQL 擴充功能

您只能安裝 Cloud SQL 支援的擴充功能。詳情請參閱「Cloud SQL 支援的 PostgreSQL 擴充功能」。

安裝擴充功能

使用擴充功能前,請先安裝:

超級使用者權限需求

在 Cloud SQL 中,只有屬於 cloudsqlsuperuser 角色的使用者可以建立擴充功能。建立新的 PostgreSQL 執行個體時,系統會為您建立預設的 postgres 使用者 (但您必須設定該使用者的密碼)。預設 postgres 使用者屬於 cloudsqlsuperuser 角色。詳情請參閱「關於 PostgreSQL 使用者」。

資料庫間的連線

連線的目標執行個體必須與連線執行個體位於同一個 VPC 網路。

如果是叢集執行個體,您無法在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 擴充功能包含下列項目:

詳情請參閱「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 以上版本使用 1.7 版。
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 以上版本使用 1.6 版。
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 以上版本使用 1.2 版。
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 適用的 Cloud SQL 使用 1.1 版。
fuzzystrmatch 提供多個函式,可判斷字串之間的相似度和距離。
PostgreSQL 9.6、10、11、12、13、14 和 15 使用 1.1 版。PostgreSQL 16 以上版本使用 1.2 版
google_ml_integration 生成向量嵌入項目:使用大型語言模型 (LLM) 將文字提示轉換為數值向量。
PostgreSQL 12 以上版本使用 1.4.2 版。其他版本不支援這項功能。
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 版。
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 以上版本使用 1.12 版。
pgAudit 收集稽核資料。

pgAudit 所有版本稽核記錄檔的可能值為 READWRITEFUNCTIONROLEDDLMISCALL。如果是 1.4.2 以上版本,您也可以設定 MISC_SET 的值。

如要進一步瞭解如何搭配使用這個擴充功能與 Cloud SQL,請參閱「 使用 pgAudit 執行 PostgreSQL 的稽核作業」。

pg_background 您可以在背景工作站中執行任意指令。
PostgreSQL 適用的 Cloud SQL 使用 1.2 版。
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 適用的 Cloud SQL 使用 2.4.5 版。
pgfincore 一組函式,用於從 PostgreSQL 管理作業系統磁碟快取記憶體中的頁面。另請參閱本文中的 pgfincore
PostgreSQL 適用的 Cloud SQL 使用 1.3.1 版。
pg_freespacemap 檢查可用空間地圖 (FSM)。 另請參閱本文中的 pg_freespacemap
PostgreSQL 適用的 Cloud SQL 使用 1.2 版。
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 版。
pg_proctab 讓您搭配 PostgreSQL 適用的 Cloud SQL 使用 pg_top,並從作業系統程序表產生報表。另請參閱本文中的 pg_proctab
pg_repack 可移除資料表和索引中的膨脹。 您也可以選擇執行線上 CLUSTER (依叢集索引排序資料表)。另請參閱本文中的 pg_repack
PostgreSQL 適用的 Cloud SQL 使用 1.5.0 版。
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 版。
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 版。
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 樣式的全域暫時資料表。
PostgreSQL 9.6、10 和 11 使用 3.0 版。PostgreSQL 12 以上版本使用 4.0 版。

pgvector

開放原始碼擴充功能,可在 PostgreSQL 資料庫中儲存及搜尋向量嵌入。
PostgreSQL 13 以上版本支援 0.8.0 版,PostgreSQL 12 最高支援 0.7.4 版,PostgreSQL 11 最高支援 0.5.1 版。

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 (hll) 資料結構,用於估計集合的基數。

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 版。
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 指令,為一個工作階段載入這個擴充功能。

在資料庫工作階段中,您可以使用這個擴充功能連線至 PostgreSQL 資料庫,並執行查詢。

目前,這個擴充功能適用於同一個 VPC 網路中的兩個 Cloud SQL 私人 IP 執行個體,或同一個執行個體中的跨資料庫。

詳情請參閱 PostgreSQL 說明文件中的「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');

如要以相同使用者身分連線至相同執行個體,可以不必輸入密碼。例如:

  1. 設定下列資料庫旗標,即可在沒有密碼的情況下啟用本機連線
    cloudsql.allow_passwordless_local_connections

  2. 連線時不指定主機,這表示連線至相同例項。範例如下:

    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_fdwPL/Proxy

pageinspect

這項擴充功能會檢查資料庫網頁的內容,層級較低。 詳情請參閱 PostgreSQL 說明文件中的「pageinspect」。

pg_bigm

這項擴充功能可啟用全文搜尋功能,並允許雙連字 (雙連字) 索引,加快全文搜尋速度。

如要在執行個體上開始使用這項擴充功能,請將 cloudsql.enable_pg_bigm 旗標設為 on。系統也支援下列旗標:

  • pg_bigm.enable_recheck
  • pg_bigm.gin_key_limit
  • pg_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 公用程式,請按照下列步驟操作:

  1. 在 psql 工具中,針對 pg_proctab 執行 CREATE EXTENSION 指令。
  2. 下載並執行 pg_top
  3. 連線至 PostgreSQL 適用的 Cloud SQL 執行個體時,請新增 -r 選項,以便連線至遠端資料庫,並取得指標。

輸出內容中包含下列執行個體層級指標,包括執行個體中其他支援代理程式和服務的用量:

  • 平均負載
  • CPU 狀態 (使用者、nice、系統、閒置和 iowait 的百分比)
  • 記憶體 (已用、可用和快取)

pg_repack

這個擴充功能可讓您移除表格和索引中的膨脹資料。您也可以選擇使用這個擴充功能執行線上 CLUSTER (依叢集索引排序資料表)。詳情請參閱 pg_repack 說明文件。此外,如要在 Cloud SQL 中使用這項擴充功能,您需要透過特殊程序為使用者新增權限。

如果 cloudsqlsuperuser 角色以外的使用者想使用擴充功能,您必須授予該使用者 cloudsqlsuperuser 權限。詳情請參閱本文的「超級使用者權限規定」。下列範例使用 GRANT 指令新增必要權限。

新增權限的範例

在下方的範例中,csuper1cloudsqlsuperusertestdb 則是 testuser 擁有的資料庫。如要在 testdb 中建立 pg_repack 擴充功能,請先執行下列指令:

  1. cloudsqlsuperuser 身分連線至 testdb

    psql -U csuper1 -d testdb;
    
  2. 將資料庫擁有者 (即 testuser,) 授予 csuper1

    GRANT testuser TO csuper1;
    
  3. 建立擴充功能:

    CREATE EXTENSION pg_repack;
    
  4. 在資料表上執行 pg_repack 指令,例如 testdb 中的 t1,如下所示:csuper1

    pg_repack -h <hostname> -d testdb -U csuper1 -k -t t1
    
  5. pg_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 說明文件

連線的目標執行個體必須與連線執行個體位於同一個 VPC 網路。此外,您無法在Google Cloud 控制台中,為叢集執行個體選擇「僅允許 SSL 連線」按鈕。

如要連線至同一執行個體內的資料庫,您無法將主機設為 localhost 或 127.0.0.1。請改用 Google Cloud 控制台中顯示的執行個體 IP 位址。

另請參閱本文中的 postgres_fdwdblink

postgresql_anonymizer

如要在執行個體上開始使用這項擴充功能,請將 cloudsql.enable_anon 旗標設為 on。如要瞭解如何設定旗標,以及查看這項擴充功能支援的旗標,請參閱「設定資料庫旗標」。

postgres_fdw

這項擴充功能可將其他 (「外部」) PostgreSQL 資料庫中的資料表,公開為目前資料庫中的「外部」資料表。這些資料表隨後即可使用,幾乎與本機資料表無異。詳情請參閱 PostgreSQL 說明文件中的 postgres_fdw

這個擴充功能適用於相同 VPC 網路中的兩個 Cloud SQL 私人 IP 執行個體,或相同執行個體中的跨資料庫。

如要連線至同一執行個體內的資料庫,您無法將主機設為 localhost 或 127.0.0.1。請改用 Google Cloud 控制台中顯示的執行個體 IP 位址。

此外,如果執行個體儲存外部資料,您可以在 Google Cloud 控制台中選擇「僅允許 SSL 連線」選項。您無法選擇「要求使用信任的用戶端憑證」選項。只有 cloudsqlsuperuser 才能成為postgres_fdw外部資料包裝函式的擁有者。

另請參閱本文中的「PL/Proxy」和「dblink」。

postgresql-hll

這個擴充功能會導入新的資料型別 hll,也就是 HyperLogLog 資料結構。詳情請參閱 postgresql-hll 說明文件