快照同步函数
快照同步函数是导出当前快照的标识符。
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) |