OB从双机房切成三机房操作咨询

【 生产环境 】
【 OB 】
【 4.2。1.7 】
【问题描述】
之前是通过OCP部署的双机房集群(一个机房2节点、一个机房单节点),现在要改为三机房各一个节点。但是好像不能直接替换、需要怎么操作呢

OceanBase 社区已接收您的帖子,正在跟进中。

需要一些细节,有没有停机窗口、多余机器、新建机房的IP是否需要变更、网络延迟和目前机房大概是多少等等。。
最简单的肯定就是直接把机器搬过去,IP啥的都不用变就修改一些地域信息、IDC信息之类的 :joy:

步骤:

1、通过ocp先增加一个zon4配置信息和其他zone一样

2、查看unit资源分布

3、缩减集群


4、查看迁移和均衡任务
查看正在执行的transfer任务
select * From CDB_OB_TRANSFER_TASKS \G;
查看正在执行的LS均衡任务
select * From CDB_OB_BALANCE_TASKS \G;
查看transfer任务的历史记录
select tenant_id,TASK_ID,CREATE_TIME,FINISH_TIME,TABLET_COUNT,STATUS,RESULT from CDB_OB_TRANSFER_TASK_HISTORY order by create_time desc limit 20;
查看LS均衡任务的历史记录
select tenant_id,TASK_ID,CREATE_TIME,FINISH_TIME,PART_COUNT,STATUS,RESULT from CDB_OB_BALANCE_TASK_HISTORY order by create_time desc limit 20;

5、分区均衡的判定方法

  • 分区数量均衡
select svr_ip,svr_port,ls_id,count(*) from CDB_OB_TABLE_LOCATIONS where role='leader' and table_type='USER TABLE' and tenant_id=xxx group by svr_ip,svr_port,ls_id;
  • 分区磁盘均衡
select a.svr_ip,a.svr_port,b.ls_id,sum(data_size)/1024/1024/1024 as total_data_size from CDB_OB_TABLET_REPLICAS a, CDB_OB_TABLE_LOCATIONS b where a.tenant_id=b.tenant_id and a.svr_ip=b.svr_ip and a.svr_port=b.svr_port and a.tablet_id=b.tablet_id and b.role='leader' and b.table_type='USER TABLE' and a.tenant_id=xxxx group by svr_ip,svr_port,ls_id;

6、均衡过程报-7114错误

问题原因

没有开启 transfer 杀事务时(_enable_balance_kill_transaction ),transfer 要等待活跃事务完成(默认 100ms)。当活跃事务本身持续时间较长,且业务侧持续开启新事务时,transfer 等不到活跃事务结束,导致 transfer 持续失败。

修改配置项: 两个配置项都要修改才会生效。

obclient> alter system set _enable_balance_kill_transaction = true tenant = my_tenant;
obclient> alter system set _balance_wait_killing_transaction_end_threshold = '10s' tenant = my_tenant;

注意:等迁移完成以后,记得修改回来

7、调整分区均衡调度

调整分区均衡调度周期配置项 partition_balance_schedule_interval,默认为 2h,调整为 20s。
—用户租户下仅修改本租户的配置项信息:
obclient> alter system set partition_balance_schedule_interval = ‘20s’;

—系统租户下可修改任意租户的配置项信息:
obclient> alter system set partition_balance_schedule_interval = ‘1h’ tenant = all;
obclient> alter system set partition_balance_schedule_interval = ‘20s’ tenant = ‘tenant_name’;

:warning::可以在没有业务流量的间隙,临时调小partition_balance_schedule_interval到30s,观察CDB_OB_BALANCE_JOBS_HISTORY、CDB_OB_BALANCE_JOBS两个视图,长时间没有新任务产生,且通过本文5中SQL确认分区均衡后,再调回默认值2h或者关闭。partition_balance_schedule_interval的值不要长期保持小于2h,太频繁容易影响业务。

8、查看odp的启动方式

obclient -uroot@proxysys -h10.10.10.1 -P2883 -p
show proxyconfig like 'obproxy_config_server_url';
show proxyconfig like 'rootservice_list';

  • rslist方式

    • 不会主动更新,需要修改rootservice_list参数的值,需要reboot
  • configurl方式

    • 会主动更新,不需要reboot

文档参考:

https://www.oceanbase.com/docs/common-ocp-1000000001126796
https://www.oceanbase.com/docs/common-ocp-1000000001126803
https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001050177
https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000366656?back=kb

1 个赞