更新时间:2024-09-02 GMT+08:00

快照同步函数

快照同步函数是导出当前快照的标识符。

create_wdr_snapshot()

描述:创建性能数据快照。

返回值类型:text

  • 该函数只有数据库管理员SYSADMIN才可以执行,非管理员执行会提示无权限。
  • 该函数只能在CN上执行,在DN上执行会返回:“WDR snapshot can only be created on coordinator.”。
  • 执行该函数前需确认enable_wdr_snapshot参数处于开启状态。如果enable_wdr_snapshot为off,执行该函数会返回:“WDR snapshot request can't be executed, because GUC parameter 'enable_wdr_snapshot' is off.”。
  • 如果执行该函数时,快照线程由于节点重启等原因尚未启动,会提示错误:“WDR snapshot request can not be accepted, please retry later.”。
  • 如果执行该函数失败,会提示:“Cannot respond to WDR snapshot request.”。
  • 如果执行成功,会返回:“WDR snapshot request has been submitted.”。该提示表明创建快照请求已发送至后台快照线程,但不代表创建快照成功。

kill_snapshot(scope cstring)

描述:中止后台快照线程。该函数向后台快照线程发送中止信号并等待线程结束。

输入参数scope:表示操作范围。该参数取值范围为local和global。

  • local表示中止当前CN上的快照线程。
  • global表示不仅会中止当前CN上的快照线程,还会向集群中所有其他CN发送中止快照线程的请求,即中止集群中所有CN上的快照线程。
  • 如果输入其他值,则报错“Scope is invalid, use "local" or "global".”。
  • 输入参数可为空,表示默认取值为local。

返回值类型:无

  • 该函数只有数据库管理员SYSADMIN才有权执行,非管理员执行会提示无权限。
  • 该函数只能在CN上执行,在DN上执行会提示:“kill_snapshot can only be executed on coordinator.”;
  • 执行该函数会向后台快照线程发送中止信号并等待其结束。如果100s内快照线程仍未中止则会报错:“Kill snapshot thread failed”;

pg_export_snapshot()

描述:保存当前的快照并返回它的标识符。

返回值类型:text

备注:函数pg_export_snapshot保存当前的快照并返回一个文本字符串标识此快照。这个字符串必须传递给想要导入快照的客户端。可用在set transaction snapshot snapshot_id时导入snapshot,但是应用的前提是该事务设置了REPEATABLE READ隔离级别。该函数的输出不可用做set transaction snapshot的输入。

示例:

1
2
3
4
5
SELECT pg_export_snapshot();
 pg_export_snapshot
--------------------
 00000000000A7128-1
(1 row)