更新时间:2024-06-03 GMT+08:00

hashbucket系统函数

  • gs_redis_get_plan(origin_group_id OID,target_group_id OID)

    描述:获取完整的迁移计划。只支持在扩容期间调用;只支持管理员权限用户查询;只支持CN上调用。

    参数说明:

    名称

    类型

    描述

    origin_group_id

    OID

    源节点的node group。

    target_group_id

    OID

    新节点的node group。

    返回值说明:

    名称

    类型

    描述

    sender_id

    OID

    源节点的node oid。

    sender_name

    CSTRING

    源节点的节点名称。

    receiver_id

    OID

    新节点的node oid。

    receiver_name

    CSTRING

    新节点的节点名称。

    bucket_number

    INT4

    bucket_list中包含的bucket个数。

    bucket_list

    OIDVECTOR_EXTEND

    迁移计划涉及的bucket列表。

    示例:

    gaussdb=# SELECT * FROM gs_redis_get_plan(16388, 16417);
    
    sender_id | sender_name | receiver_id | receiver_name | bucket_number |                                                                                                                                                                                                                                                                            bucket_list                                                                                                                               
    -----------+-------------+-------------+---------------+---------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
         16385 | datanode1   |       16415 | datanode3     |           256 | 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
     59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
     129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 18
    8 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 2
    48 249 250 251 252 253 254 255
         16386 | datanode2   |       16416 | datanode4     |           256 | 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 55
    3 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 6
    13 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 
    673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732
     733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767
    (2 rows)
  • gs_redis_get_bucket_statistics

    描述:获取日志流传输状态。只支持在扩容期间调用;只支持管理员权限用户查询。

    参数:void

    返回值说明:

    名称

    类型

    描述

    bucket_id

    OID

    bucket id

    redis_state

    INT1

    bucket的扩容状态,0表示扩容未开始,1表示扩容基线数据已完成。

    xlog_count

    INT8

    bucket在当前database扩容开始后(即上次调用gs_redis_set_distributed_db后)在原DN产生的xlog数量。

    sndr_latest_lsn

    INT8

    bucket在当前database扩容开始后(即上次调用gs_redis_set_distributed_db后)在原DN产生的最新LSN。

    parser_latest_lsn

    INT8

    bucket在当前database扩容开始后(即上次调用gs_redis_set_distributed_db后)被原DN的扩容相关线程解析到的最新LSN。

    parser_latest_lsn_new

    INT8

    bucket在当前database扩容开始后(即上次调用gs_redis_set_distributed_db后)被原DN的扩容相关线程解析到bucketxlog的最新LSN。

    rcvr_redo_latest_lsn

    INT8

    bucket在当前database扩容开始后(即上次调用gs_redis_set_distributed_db后)被新DN的扩容相关线程回放到的最新LSN。

    rcvr_redo_latest_lsn_new

    INT8

    bucket在当前database扩容开始后(即上次调用gs_redis_set_distributed_db后)被原DN的扩容相关线程解析到bucketxlog的最新LSN。

    rcvr_checkpoint

    INT8

    bucket在当前database扩容开始后(即上次调用gs_redis_set_distributed_db后)的checkpoint点。

    rcvr_redo_start_lsn

    INT8

    bucket在当前database扩容开始后(即上次调用gs_redis_set_distributed_db后)回放开始的原始LSN。

    rcvr_redo_end_lsn

    INT8

    bucket在当前database扩容开始后(即上次调用gs_redis_set_distributed_db后)回放结束的原始LSN。

    示例:

    gaussdb=#  SELECT * FROM gs_redis_get_bucket_statistics();
     bucket_id | redis_state | xlog_count | sndr_latest_lsn | parser_latest_lsn | parser_latest_lsn_new | rcvr_redo_latest_lsn | rcvr_redo_latest_lsn_new | rcvr_checkpoint | rcvr_redo_start_lsn | rcvr_redo_end_lsn
    -----------+-------------+------------+-----------------+-------------------+-----------------------+----------------------+--------------------------+-----------------+
    --------------------+-------------------
             0 | 1           |          1 |        79303808 |          79303808 |              16777352 |             79326320 |                 16801904 |       762624525 |
               77256412 |          79326320
             1 | 1           |          1 |        79303896 |          79303896 |              16777448 |             79326320 |                 16801904 |       762624525 |
               77256412 |          79326320
             2 | 1           |          1 |        79303984 |          79303984 |              16777544 |             79326320 |                 16801904 |       762624525 |
               77256412 |          79326320
             3 | 1           |          1 |        79304072 |          79304072 |              16777640 |             79326320 |                 16801904 |       762624525 |
               77256412 |          79326320
             4 | 1           |          1 |        79304160 |          79304160 |              16777736 |             79326320 |                 16801904 |       762624525 |
               77256412 |          79326320
    ...(数据较多,仅展示部分)                                                                                                                                                          
  • gs_redis_set_distributed_db(db_name CSTRING)

    描述:设置当前正在hashbucket重分布的数据库。只支持在扩容期间调用;只支持管理员权限用户查询;只支持DN上调用。

    参数说明:

    • db_name:本次要重分布的数据库库名。

    返回值说明:void

    示例:

    gaussdb=# SELECT gs_redis_set_distributed_db('gaussdb');
     gs_redis_set_distributed_db 
    -----------------------------
    0
    (1 row)
  • gs_redis_hashbucket_update_segment_header(origin_group_id OID,target_group_id OID)

    描述:更新当前数据库所有hashbucket表的header。只支持在扩容期间调用;只支持管理员权限用户查询;只支持CN上调用。

    参数说明:

    名称

    类型

    描述

    origin_group_id

    OID

    源节点的node group。

    target_group_id

    OID

    新节点的node group。

    返回值类型:Boolean

    示例:

    gaussdb=#  SELECT * FROM gs_redis_hashbucket_update_segment_header(16388, 16417);
     gs_redis_hashbucket_update_segment_header 
    -------------------------------------------
     t
    (1 row)
  • gs_redis_local_get_segment_header(table_name REGCLASS,bucketlist OIDVECTOR_EXTEND)

    描述:获取段页式表header。只支持DN上调用。

    参数说明:

    名称

    类型

    描述

    table_name

    REGCLASS

    表名

    bucketlist

    OIDVECTOR_EXTEND

    bucket列表。

    返回值类型:header_info

    示例:

    gaussdb=#  SELECT * FROM gs_redis_local_get_segment_header('mytable', '256');
     gs_redis_local_get_segment_header
    ----------------------------------------------------------------------------------------------------------------------------
    4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,...(数据较多,仅展示部分) 
    (1 row)
  • gs_redis_local_update_segment_header(table_name REGCLASS,header_info CSTRING)

    描述:更新段页式表header。只支持DN上调用。

    参数说明:

    名称

    类型

    描述

    table_name

    REGCLASS

    表名

    header_info

    CSTRING

    段页式表header。

    返回值类型:void

    示例:

    gaussdb=#  SELECT * FROM gs_redis_local_update_segment_header('mytable', '4294967295,4294967295,4294967295,4294967295,....'); (数据较多,仅展示部分)
     gs_redis_local_update_segment_header
    -------------------------------------------
     0 
    (1 row)
  • gs_redis_hashbucket_update_inverse_pointer(buckets TEXT, origin_dn_name TEXT, new_dn_name TEXT)

    描述:更新当前db所有hashbucket表本批次bucket的反向指针。只支持在扩容期间调用;只支持管理员权限用户查询;只支持CN上调用。

    参数说明:

    名称

    类型

    描述

    buckets

    TEXT

    本次上线的bucket列表。

    origin_dn_name

    TEXT

    源节点名称。

    new_dn_name

    TEXT

    新节点名称。

    返回值类型:void

    示例:

    gaussdb=#  SELECT * FROM gs_redis_hashbucket_update_inverse_pointer('0,1,2,3,4,5,6,7,8,9,10','datanode1','datanode3');
     gs_redis_hashbucket_update_inverse_pointer
    -------------------------------------------
     0 
    (1 row)
  • gs_redis_local_get_inverse_pointer(buckets TEXT,origin_dn_name TEXT, new_dn_name TEXT)

    描述:获取反向指针。只支持在扩容期间调用;只支持管理员权限用户查询;只支持DN上调用。

    参数说明:

    名称

    类型

    描述

    buckets

    TEXT

    本次上线的bucket列表。

    origin_dn_name

    TEXT

    源节点名称。

    new_dn_name

    TEXT

    新节点名称。

    返回值类型:void

    示例:

    gaussdb=#  SELECT * FROM gs_redis_hashbucket_update_inverse_pointer('0,1,2,3,4,5,6,7,8,9,10','datanode1','datanode3');
     gs_redis_hashbucket_update_inverse_pointer
    -------------------------------------------
     0 
    (1 row)
  • gs_redis_local_update_inverse_pointer(table_name TEXT,header_info TEXT, bucketlist TEXT)

    描述:记录更新反向指针的XLOG。只支持在扩容期间调用;只支持管理员权限用户查询;只支持DN上调用。

    参数说明:

    名称

    类型

    描述

    table_name

    REGCLASS

    表名。

    header_info

    TEXT

    段页式表header。

    bucketlist

    TEXT

    bucket列表。

    返回值类型:void

    示例:

    gaussdb=#  SELECT * FROM gs_redis_local_update_inverse_pointer('mytable', '4294967295,4294967295,4294967295,4294967295,....','1 2 3'); (数据较多,仅展示部分)
     gs_redis_local_update_inverse_pointer
    -------------------------------------------
     0 
    (1 row)
  • gs_redis_local_set_hashbucket_frozenxid

    描述:修改hashbucket表在系统表中的relfrozenxid64值。只支持在扩容期间调用;只支持管理员权限用户查询;只支持DN上调用。

    参数说明:void

    返回值类型:void

    示例:

    gaussdb=#  SELECT * FROM gs_redis_local_set_hashbucket_frozenxid();
     gs_redis_local_set_hashbucket_frozenxid
    -------------------------------------------
     0 
    (1 row)
  • gs_redis_set_hashbucket_frozenxid(origin_group_id OID,target_group_id OID)

    描述:修改新DN节点hashbucket表在系统表中的relfrozenxid64值。只支持在扩容期间调用;只支持管理员权限用户查询;只支持CN上调用。

    参数说明:

    名称

    类型

    描述

    origin_group_id

    OID

    源节点的node group。

    target_group_id

    OID

    新节点的node group。

    返回值类型:void

    示例:

    gaussdb=#  SELECT * FROM gs_redis_set_hashbucket_frozenxid(16388, 16417);
     gs_redis_set_hashbucket_frozenxid
    -------------------------------------------
     0
    (1 row)
  • gs_redis_set_nextxid(xid BIGINT)

    描述:修改DN节点next_xid值。只支持在扩容期间调用。只支持管理员权限用户查询;只支持DN上调用。

    参数说明:xid:预期next_xid的值

    返回值类型:void

    示例:

    gaussdb=#  SELECT * FROM gs_redis_set_nextxid('15268817');
     gs_redis_set_nextxid
    -------------------------------------------
     0
    (1 row)
  • gs_redis_set_csn(csn BIGINT)

    描述:修改DN节点next_csn值。只支持在扩容期间调用;只支持管理员权限用户查询;只支持DN上调用;只支持在GTM_FREE模式下调用。

    参数说明:

    • csn:预期next_csn的值。

    返回值类型:void

    示例:

    gaussdb=#  SELECT * FROM gs_redis_set_csn('15268817');
     gs_redis_set_csn
    -------------------------------------------
     0
    (1 row)
  • gs_redis_check_bucket_flush(dn_array NAME[])

    描述:查询RTO回放私有buffer是否全部刷下去。只支持在扩容期间调用;只支持管理员权限用户查询。

    参数说明:

    • dn_array:DN节点名称列表

    返回值类型:Boolean

    示例:

    gaussdb=#  SELECT * FROM gs_redis_check_bucket_flush('{datanode1, datanode2}');
     gs_redis_check_bucket_flush 
    -----------------------------
     f
    (1 row)
  • gs_redis_get_flush_page_lsn(isclean bool)

    描述:查询bucket扩容回放的刷页信息。

    权限:只支持debug版本调用,只支持在扩容期间调用;只支持管理员权限用户查询。

    参数说明:isclean:BOOLEAN类型,是否清理刷页信息。

    返回值说明:

    名称

    类型

    描述

    node_name

    TEXT

    页面所在dn名

    space_id

    OID

    表空间id

    db_id

    OID

    数据库id

    file_id

    OID

    数据文件编号,取值范围1-5

    bucket_id

    OID

    bucket分区id,取值范围0-1023

    forknum

    OID

    数据文件分支,取值范围0-2

    blocknum

    OID

    物理页面在数据文件中的偏移页面号

    latest_flush_lsn

    UINT8

    刷脏页面最新的lsn

    示例:

    gaussdb=#  SELECT * FROM gs_redis_get_flush_page_lsn(false);
     node_name | space_id | db_id | file_id | bucket_id | forknum | blocknum | last_flush_lsn
    -------------------------------------------------------------------------------------------
     datanode2 |     1633 | 16387 |       1 |        66 |       0 |       20 |     1571838992
    (1 row)
  • gs_redis_show_bucketxid(bucketid_list OIDVECTOR_EXTEND)

    描述:查询指定bucket对应的bucketxid。只支持在扩容期间调用;只支持管理员权限用户查询;只支持DN上调用。

    参数说明:

    • bucketid_list:bucket列表。

    返回值类型:CSTRING

    示例:

    gaussdb=#  SELECT * FROM gs_redis_show_bucketxid('1 2 3');
     gs_redis_show_bucketxid
    ----------------------------
     88880001 88880001 88880001
    (1 row)
  • gs_redis_drop_bucket_files(origin_group_id OID,target_group_id OID)

    描述:删除源节点已经物理搬迁的文件。只支持在扩容期间调用;只支持管理员权限用户查询;只支持CN上调用。

    参数说明:

    名称

    类型

    描述

    origin_group_id

    OID

    源节点的node group

    target_group_id

    OID

    新节点的node group

    返回值类型:BOOLEAN

    示例:

    gaussdb=# SELECT * FROM gs_redis_drop_bucket_files(16388, 16417);
     gs_redis_drop_bucket_files
    -------------------------------------------
     t
    (1 row)
  • gs_redis_local_drop_bucket_files(bucketlist CSTRING,bucketnum SMALLINT)

    描述:删除对应的bucket list。只支持在扩容期间调用;只支持管理员权限用户查询;只支持DN上调用。

    参数说明:

    名称

    类型

    描述

    bucketlist

    CSTRING

    指定bucket列表

    bucketnum

    SMALLINT

    bucket的个数

    返回值类型:Boolean

    示例:

    gaussdb=# SELECT * FROM gs_redis_local_drop_bucket_files('1 2 3', 3);
     gs_redis_local_drop_bucket_files
    -------------------------------------------
     t
    (1 row)