更新时间:2023-10-23 GMT+08:00

双数据库实例容灾控制函数

双数据库实例容灾控制函数可以创建归档槽,归档槽指定了保存物理日志的obs信息。

  • pg_create_physical_replication_slot_extern(slotname text, dummy_standby bool, extra_content text, need_recycle_xlog bool)

    描述:创建OBS/NAS归档槽。slotname 为本次灾备的slotname ,主备必须使用同一个slotname 。dummy_standby标志是主备从还是一主多备,false表示一主多备,true表示主备从。extra_content包含了归档槽的一些信息。对于OBS归档槽,其格式为"OBS;obs_server_ip;obs_bucket_name;obs_ak;obs_sk;archive_path;is_recovery;is_vote_replicate",OBS表示归档槽的归档的介质,obs_server_ip为obs的ip,obs_bucket_name为obs的桶名,obs_ak为obs的ak,obs_sk为obs的sk,archive_path为归档的路径i,is_recovery标志是归档槽还是恢复槽,0表示是归档槽,主要是主数据库实例使用;1表示是恢复槽,主要是灾备数据库实例使用。is_vote_replicate标志是否是投票副本优先,0表示同步备机归档优先,1表示投票副本归档优先,当前版本该字段为预留字段,暂未适配。对于NAS归档槽,其格式为"NAS;archive_path;is_recovery;is_vote_replicate",相比OBS归档槽,缺少了OBS相关的配置信息,其余字段意义相同。

    如果是不指定OBS或NAS介质的话,默认指定的是OBS归档槽,其extra_content格式为"obs_server_ip;obs_bucket_name;obs_ak;obs_sk;archive_path;is_recovery;is_vote_replicate"。

  • need_recycle_xlog标志创建归档槽时是否回收老的归档日志,true表示回收,false表示不回收。

    返回值类型:records包含本次灾备的slotname和xlog_position

    备注:调用该函数的用户需要具有SYSADMIN权限或具有REPLICATION权限或继承了内置角色gs_role_replication的权限。

    例如:

    创建OBS归档槽:

    1
    2
    3
    4
    5
    openGauss=# select * from pg_create_physical_replication_slot_extern('uuid', false, 'OBS;obs.cn-north-7.ulanqab.huawei.com;dyk;19D772JBCACXX3KWS51D;********;openGauss_uuid/dn1;0;0', false);
     slotname | xlog_position
    ----------+---------------
     uuid     |
    (1 row)
    

    创建NAS归档槽:

    1
    2
    3
    4
    openGauss=# select * from pg_create_physical_replication_slot_extern('uuid', false, 'NAS;/data/nas/media/openGauss_uuid/dn1;0;0',false);
     slotname | xlog_position
    ----------+---------------
     uuid     |
    
  • gs_set_obs_delete_location(delete_location text)

    描述:设置obs归档日志可删除的位置。delete_location实际为Log Sequence Number ( LSN ),该位置之前的日志在灾备数据库实例已经完成回放并且落盘,可以在obs上进行删除。

    返回值类型:xlog_file_name text,表明此次可删除点所在的日志文件名。无论obs删除是否成功,该值都会正常返回。

    openGauss=# select gs_set_obs_delete_location('0/54000000');
     gs_set_obs_delete_location  
    -----------------------------
     000000010000000000000054_00
    (1 row)
  • gs_set_obs_delete_location_with_slotname(cstring, cstring )

    描述:设置某个容灾关系上obs归档日志可删除的位置。第一个参数实际为Log Sequence Number ( LSN ),该位置之前的日志在灾备数据库实例已经完成回放并且落盘,可以在obs上进行删除,第二个参数为归档槽的名称。

    返回值类型:xlog_file_name text,表明此次可删除点所在的日志文件名。无论obs删除是否成功,该值都会正常返回。

  • gs_hadr_do_switchover()

    描述:基于OBS的异地容灾解决方案中主数据库实例在执行计划内swithover过程中截断业务的接口。

    返回值类型:bool,表明此次业务截断是否成功,是否可以正常进行switchover流程。

  • gs_streaming_dr_in_switchover()

    描述:基于流式复制的异地容灾解决方案中主数据库实例在执行计划内swithover过程中截断业务的接口。

    返回值类型:bool,表明此次业务截断是否成功,是否可以正常进行switchover流程。