View a markdown version of this page

rds_tools 函數參考 - Amazon Relational Database Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

rds_tools 函數參考

rds_tools 延伸項目提供一組公用程式函數,用於管理和監控 RDS for PostgreSQL 資料庫執行個體。使用這些函數,您可以直接從 SQL 診斷複寫、清空和組態問題,而無需單獨的監控工具。這些函數是標準 PostgreSQL 函數以外的函數。如需標準 PostgreSQL 函數的詳細資訊,請參閱 PostgreSQL 文件中的函數和運算子。

本節說明 RDS for PostgreSQL 上可用的rds_tools函數。每個函數描述都會記下函數可用的rds_tools延伸版本。

若要建立擴充功能,請執行下列命令。

postgres=> CREATE EXTENSION rds_tools; CREATE EXTENSION

rds_tools.role_password_encryption_type

傳回用於每個資料庫角色的密碼加密方法。此集合傳回函數會從輸出中排除受 RDS 保護的系統角色。從rds_tools延伸模組 1.0 版開始可用。

如需使用此函數在將資料庫使用者遷移至 SCRAM 之前檢閱密碼加密的範例,請參閱 使用 SCRAM 進行 PostgreSQL 密碼加密。

函數原型

rds_tools.role_password_encryption_type()

引數

無。

Output

  • rolname – 資料庫角色的名稱。

  • encryption_type – 使用的密碼加密方法,例如 md5或 scram-sha-256。

使用範例

=> SELECT * FROM rds_tools.role_password_encryption_type(); rolname | encryption_type ---------------+----------------- postgres | md5 app_user | md5 readonly_user | scram-sha-256 (3 rows)

rds_tools.blue_green_get_status

檢查在藍/綠部署操作期間執行的限制命令。在使用邏輯複寫的藍/綠部署期間,您無法在藍和綠環境之間複寫資料定義語言 (DDL) 命令或大型物件 (LO) 操作。如果偵測到受限制的命令,請重新啟動藍/綠部署,因為資料無法正確複寫至綠色環境。從rds_tools延伸模組 1.3 版開始可用。

函數原型

rds_tools.blue_green_get_status(command_type)

引數

  • command_type – 要檢查的限制命令類型。有效值為 'DDL'(資料定義語言命令) 和 'LO'(大型物件操作)。

Output

該 boolean 數值。true 如果在部署期間執行指定類型的限制命令,或未偵測到此類命令false,則傳回 。

使用範例

=> SELECT rds_tools.blue_green_get_status('DDL'); blue_green_get_status ----------------------- f (1 row)

rds_tools.postgres_get_av_diag

擷取有關封鎖或落後自動清空程序的診斷資訊,以及解決每個問題的建議。在具有最舊交易 ID 的資料庫中執行此集合傳回函數,以獲得準確的結果。如需詳細資訊,請參閱識別和解決積極的清空封鎖程式。

從rds_tools延伸模組 1.9 版開始可用。

函數原型

rds_tools.postgres_get_av_diag()

引數

無。

Output

  • blocker – 封鎖清空的資料庫活動類別。值可以是下列其中一項:

    • 作用中陳述式

    • 交易閒置

    • 備妥交易

    • 邏輯複寫槽

    • 僅供讀取複本和實體複寫槽

    • 具有串流複寫的僅供讀取複本

    • 暫時資料表

  • database – 發生封鎖活動的資料庫名稱。

  • blocker_identifier – 封鎖活動的識別符。值取決於封鎖程式類型:

    • 對於作用中陳述idle-in-transaction工作階段,程序 ID 及其 SQL 陳述式。

    • 對於預備交易,則為預備交易名稱。

    • 對於僅供讀取複本,則為複本的 IP 地址。

    • 對於複寫插槽,複寫插槽名稱。

  • wait_event – 封鎖工作階段的等待事件,如適用。

  • autovacuum_lagging_by – 自動清空落後於 類別的交易數量。

  • suggestion – 解析封鎖程式的建議,包括資料庫名稱、程序 ID 和要採取的動作。

  • suggested_action – 要用來解析封鎖程式的動作陣列。

使用範例

=> SELECT * FROM rds_tools.postgres_get_av_diag() ORDER BY autovacuum_lagging_by DESC; blocker | Active statement database | my_database blocker_identifier | SELECT pg_sleep(20000); wait_event | Timeout:PgSleep autovacuum_lagging_by | 568600871 suggestion | Connect to database "my_database", review carefully, and consider terminating the process using suggested_action. suggested_action | {"SELECT pg_terminate_backend(29621);"}

rds_tools.rds_version

顯示資料庫執行個體的 RDS for PostgreSQL 引擎版本。此函數會從執行個體的組態檔案讀取版本資訊。從rds_tools延伸模組 1.1 版開始可用。

函數原型

rds_tools.rds_version()

引數

無。

Output

包含引擎版本的字元字串。

使用範例

=> SELECT rds_tools.rds_version(); rds_version ------------- 18.1.R1 (1 row)

rds_tools.logical_seed_lsn

傳回邏輯種子日誌序號 (LSN),代表邏輯複寫與來源執行個體分歧的點。使用此函數來管理邏輯複寫設定並了解複寫一致性點。從rds_tools延伸模組 1.2 版開始可用。

函數原型

rds_tools.logical_seed_lsn()

引數

無。

Output

該 pg_lsn 數值。

使用範例

=> SELECT rds_tools.logical_seed_lsn(); logical_seed_lsn ------------------ 0/1677B68 (1 row)

rds_tools.db_instance_identifier

顯示資料庫執行個體識別符。您可以在建立資料庫執行個體時指定此識別符,而 AWS 服務會使用它來識別您的資料庫。從rds_tools延伸模組 1.2 版開始可用。

函數原型

rds_tools.db_instance_identifier()

引數

無。

Output

包含資料庫執行個體識別符的字元字串。

使用範例

=> SELECT rds_tools.db_instance_identifier(); db_instance_identifier ------------------------ my-postgres-instance (1 row)

rds_tools.dbi_resource_id

顯示資料庫執行個體的資料庫執行個體資源 ID (DBI 資源 ID)。DBI 資源 ID 是 AWS 為資料庫執行個體產生的唯一不可變識別符。即使您重新命名執行個體,它仍會在執行個體的生命週期內保持不變。使用此值將資料庫活動與 AWS CloudTrail 日誌或其他 AWS 監控服務建立關聯。此值符合 DBInstance RDS API 命令傳回DbiResourceId的欄位。從rds_tools延伸模組 1.4 版開始可用。

函數原型

rds_tools.dbi_resource_id()

引數

無。

Output

包含 DBI 資源 ID 的字元字串。

使用範例

=> SELECT rds_tools.dbi_resource_id(); dbi_resource_id ----------------------------------- db-ABC123DEF456GHI789JKL012MNO345P (1 row)

rds_tools.multi_az_db_cluster_source_dbi_resource_id

顯示多可用區域資料庫叢集部署之來源執行個體的 DBI 資源 ID。使用此函數來了解多可用區組態中執行個體之間的關係,以及疑難排解複寫或容錯移轉案例。從rds_tools延伸模組 1.4 版開始可用。

函數原型

rds_tools.multi_az_db_cluster_source_dbi_resource_id()

引數

無。

Output

包含來源 DBI 資源 ID 的字元字串。如果執行個體不屬於多可用區域資料庫叢集、組態檔案不存在,或組態中不存在 dbi_resource_id 欄位,則傳回 NULL。

使用範例

=> SELECT rds_tools.multi_az_db_cluster_source_dbi_resource_id(); multi_az_db_cluster_source_dbi_resource_id -------------------------------------------- db-XYZ789ABC123DEF456GHI012JKL345MNO678P (1 row)

rds_tools.show_topology

顯示 RDS 多可用區域叢集的拓撲中繼資料,透過提供叢集中所有執行個體的連線資訊來啟用快速切換。AWS Advanced JDBC Wrapper Driver 等用戶端程式庫使用此集合傳回函數,直接連線至 RDS Multi-AZ 叢集中的所有執行個體。若要識別寫入器執行個體的資源 ID,請將此函數與 rds_tools.multi_az_db_cluster_source_dbi_resource_id函數搭配使用。從rds_tools延伸模組 1.4 版開始可用。

函數原型

rds_tools.show_topology([client_identifier])

引數

  • client_identifier (選用) – 正在查詢拓撲之用戶端程式庫或代理的識別符。此參數是選用的,但建議使用,因為它允許 Amazon RDS 追蹤哪些用戶端正在主動查詢拓撲,並提供遙測以支援其他用戶端。

Output

  • id – RDS Multi-AZ 叢集中每個執行個體的 DBI 資源 ID。

  • endpoint – 叢集中每個節點的端點。

  • port – RDS Multi-AZ 叢集中每個執行個體的連接埠號碼。

  • role – 叢集中節點的角色,例如寫入器或讀取器。

  • status – 節點的狀態。

  • version – 拓撲記錄的版本。

使用範例

=> SELECT id, endpoint, port, role FROM rds_tools.show_topology('my-jdbc-app'); id | endpoint | port | role -----------------+-----------------------------------------------------------+------+-------- db-IDENTIFIER-1 | somedb-instance-1.aaaaaaaaaaaa.us-west-2.rds.amazonaws.com | 5432 | writer db-IDENTIFIER-2 | somedb-instance-2.aaaaaaaaaaaa.us-west-2.rds.amazonaws.com | 5432 | reader db-IDENTIFIER-3 | somedb-instance-3.aaaaaaaaaaaa.us-west-2.rds.amazonaws.com | 5432 | reader (3 rows)

rds_tools.pg_ls_multixactdir

列出 pg_multixact目錄的內容,該目錄會將多筆交易資料存放在 PostgreSQL 中。使用此集合傳回函數來監控 multixact 用量、疑難排解與 multixact 相關的問題,以及了解資料庫儲存模式。從rds_tools延伸模組 1.7 版開始可用。

函數原型

rds_tools.pg_ls_multixactdir()

引數

無。

Output

  • name – 檔案或目錄的名稱。

  • size – 以位元組為單位的大小。

  • modification – 上次修改時間戳記。

使用範例

=> SELECT * FROM rds_tools.pg_ls_multixactdir(); name | size | modification ---------------------------+------+------------------------ pg_multixact/members/ | 4096 | 2026-10-01 19:17:29+00 pg_multixact/members/0000 | 8192 | 2025-08-22 21:53:46+00 pg_multixact/offsets/ | 4096 | 2026-10-01 19:17:29+00 pg_multixact/offsets/0000 | 8192 | 2026-10-01 19:22:38+00 (4 rows)