9.3.?测试环境部署

9.3.1. mpp环境部署
9.3.2. 扩容测试
9.3.3. 缩容测试

需要两台虚拟机和4个DB节点:

192.29.0.164:5432(master)

192.29.0.164:5433(work1)

192.29.0.164:5434(work2)

192.29.0.163:5435(新增work3)

9.3.1.?mpp环境部署

  1. 164机器初始化节点mpp_master、mpp_work1和mpp_work2;163机器初始化节点mpp_work3。

  2. 修改每个节点下的uxsinodb.conf配置文件中的shared_preload_libraries参数。

  3. 在mpp_master节点配置~/.uxpass文件。

    • Test1:数据库:用户名---> uxdb:uxdb

    • Test2:数据库:用户名---> test:uxdb

    • Test3:数据库:用户名---> test:test

    注意

    扩容缩容工具支持非uxdb数据库,如果创建的是其他数据库或用户,则对应的uxpass文件也需要修改,所有的节点在配置文件中database:username这部分需保持一致。

    暂不支持master节点使用uxdb数据库,uxdb用户,而某个work节点使用test数据库,test用户这种情况。

  4. 创建uxmpp扩展。

    启动所有节点的实例

    uxsql -p 5432 -U uxdb -d test -c "CREATE EXTENSION uxmpp;"

    在每个节点上修改对应的port执行,如果使用的默认数据库和用户uxdb,则-U & -d参数可省略。

    扩容和缩容测试按照Test2的配置进行。

9.3.2.?扩容测试

  1. 通过master节点登录客户端,添加节点work1 & work2。

    select * from master_add_node('192.29.0.164’,'5433');
    select * from master_add_node('192.29.0.164’,'5434');
  2. master创建分区表并插入数据。

    create table test_utility(id int, id2 int, t text);
    select create_distributed_table('test_utility', 'id2');
    insert into test_utility select id, id, lpad(id::text, 5, id::text) from generate_series(1,10000) as t(id);

    分别登录work1和work2查看分片表。

    ./uxsql -p 5433 -U uxdb -d test
    ./uxsql -p 5434 -U uxdb -d test
  3. master控制台中添加新节点。

    select * from master_add_node('192.29.0.163','5435');
  4. master控制台创建uxmpp_utility插件。

    create extension uxmpp_utility ;
  5. master控制台进行扩容。

    扩容对应的SQL函数master_extend_table_to_node,共有6个参数。

    表?9.1.?master_extend_table_to_node参数表

    参数说明
    schema_name模式名
    table_name表名
    target_host目标节点host
    target_port目标节点port
    target_username目标节点对应的用户名
    target_dbname目标节点对应的数据库名

    select master_extend_table_to_node('public','test_utility','192.29.0.163',5435,'uxdb','test');

    查看3个work节点上的分片表:

9.3.3.?缩容测试

  1. 通过master节点登录客户端,添加节点work1 & work2 & work3。

    select * from master_add_node('192.29.0.164’,'5433');
    select * from master_add_node('192.29.0.164’,'5434');
    select * from master_add_node('192.29.0.163’,'5435');
  2. master创建分区表并插入数据。

    create table test_utility(id int, id2 int, t text);
    select create_distributed_table('test_utility', 'id2');
    insert into test_utility select id, id, lpad(id::text, 5, id::text) from generate_series(1,10000) as t(id);
  3. master控制台创建uxmpp_utility插件。

    create extension uxmpp_utility ;
  4. master控制台进行缩容。

    缩容使用的SQL函数master_shrink_node,总共4个参数。

    表?9.2.?master_shrink_node参数表

    参数说明
    target_host目标节点host
    target_port目标节点port
    target_username目标节点对应的用户名
    target_dbname目标节点对应的数据库名

    select master_shrink_node('192.29.0.163',5435,'uxdb','test');

    查看各work节点的结果:

XML 地图 | Sitemap 地图