暂无图片
暂无图片
9
暂无图片
暂无图片
暂无图片

OceanBase添加OBServer

OceanBase 2022-12-18
1280

您可以向管理的集群中添加 OBServer 节点。

关于 OBServer

OceanBase 数据库是单进程软件,进程名为 observer,通常每个机器启动一个进程就是一个节点(节点不完全等同于物理机器)。OBServer 是 OceanBase 数据库的服务器,observer 进程就运行在该服务器上。

每一个 OceanBase 数据库的进程 observer 由 IP 和端口作为唯一标识。通常一台物理或者虚拟服务器运行一个 observer 进程。observer 进程作为 OceanBase 数据库最核心的进程负责几乎所有数据库内核功能,包括 SQL 引擎、存储引擎和事务引擎。分布式的功能也同样在这个进程中,包括 RPC 通信、负载均衡和分区管理等。

通过命令向集群中添加 OBServer 节点

通过命令添加 OBServer 节点前,需要提前准备好对应版本的 OceanBase 数据库 RPM 包。有关 OceanBase 数据库 RPM 包的获取方式,请联系 OceanBase 技术支持人员。

  1. 通过 root 用户登录到 OceanBase 数据库的 sys 租户。

  2. (可选)依次执行以下语句,添加 Zone,并设置 Zone 的区域与 IDC 属性。

    说明

    如果是向已有的 Zone 中添加 OBServer 节点,则该步骤可省略。如果需要新增 Zone 并向其中添加 OBServer 节点,则需要执行该步骤。

    本节以待添加 Zone 为 zone4,且 REGION='HANGZHOU',IDC='HZ1' 为例,提供操作指导。

    obclient> ALTER SYSTEM ADD ZONE zone4 REGION HANGZHOU;
    
    obclient> ALTER SYSTEM START ZONE zone4;
    
    obclient> ALTER SYSTEM ALTER ZONE zone4 SET REGION='HANGZHOU',IDC='HZ1';
    
  3. 通过 ssh 登录到待添加的 OBServer,进行安装前检查。

    1. 进入工具所在的目录。

      [root@hostname /]# cd /root/t-oceanbase-antman/clonescripts 
      
    2. 执行以下命令,开始检查。

      建议您使用 oat-cli 工具进行检查,有关 oat-cli 工具的详细信息及使用,请参见当前版本对应的 《OceanBase 数据库 部署指南》文档。

      [root@hostname clonescripts]# sh precheck.sh -m ob
      
    3. 执行以下命令,检查时钟同步情况,保证所有节点的时钟偏差在 100 ms 以内。

      其中,$IP 表示集群中其他 OBServer 的 IP 地址。

      [root@hostname /]# ntpdate $IP
      
  4. 安装 OceanBase 数据库的 RPM 包。

    其中,rpm_dir 表示存放 RPM 包的目录;$rpm_name 表示 RPM 包的名称。

    [root@hostname /]# cd $rpm_dir
    
    [root@hostname $rpm_dir]# rpm -i --prefix=/home/admin/oceanbase $rpm_name
    
  5. 在待添加的 OBServer 服务器上创建 /data/1 和 /data/log1 目录,并将目录的拥有者(Owner)修改为 admin

    通常情况下,使用 /data/1 作为数据目录,/data/log1 作为日志目录。

    [root@xxx /]# mkdir -p /data/1 /data/log1
    [root@xxx /]# cd data
    [root@xxx data]# ll
    total 8
    drwxr-xr-x 2 root root 4096 Nov 18 14:24 1
    drwxr-xr-x 2 root root 4096 Nov 18 14:24 log1
    [root@xxx data]# cd ..
    [root@xxx /]# chown -R admin:admin data
    [root@xxx /]# cd data
    [root@xxx data]# ll
    total 8
    drwxr-xr-x 2 admin admin 4096 Nov 18 14:24 1
    drwxr-xr-x 2 admin admin 4096 Nov 18 14:24 log1
    
  6. 初始化 OceanBase 数据库的目录。

    OceanBase 数据库的数据目录通常建议设置在独立的磁盘上,然后通过软链接方式链接到软件的 Home 目录下面。

    [root@xxx admin]# su - admin
    -bash-4.2$ mkdir -p /data/1/$cluster_name/{etc3,sort_dir,sstable,slog} 
    -bash-4.2$ mkdir -p /data/log1/$cluster_name/{clog,etc2,ilog,oob_clog} 
    -bash-4.2$ mkdir -p /home/admin/oceanbase/store/$cluster_name
    -bash-4.2$ for t in {etc3,sort_dir,sstable,slog};do ln -s /data/1/$cluster_name/$t /home/admin/oceanbase/store/$cluster_name/$t; done
    -bash-4.2$ for t in {clog,etc2,ilog,oob_clog};do ln -s /data/log1/$cluster_name/$t /home/admin/oceanbase/store/$cluster_name/$t; done
    

    其中,$cluster_name 表示待添加 OBServer 节点的集群。

    示例如下:

    [root@xxx admin]# su - admin
    -bash-4.2$ mkdir -p /data/1/obdemo/{etc3,sort_dir,sstable,slog} 
    -bash-4.2$ mkdir -p /data/log1/obdemo/{clog,etc2,ilog,oob_clog} 
    -bash-4.2$ mkdir -p /home/admin/oceanbase/store/obdemo
    -bash-4.2$ for t in {etc3,sort_dir,sstable,slog};do ln -s /data/1/obdemo/$t /home/admin/oceanbase/store/obdemo/$t; done
    -bash-4.2$ for t in {clog,etc2,ilog,oob_clog};do ln -s /data/log1/obdemo/$t /home/admin/oceanbase/store/obdemo/$t; done
    
  7. 启动 OBServer,并将 OBServer 注册到集群。

    1. 设置 admin 用户的 ulimit。

      [admin@hostname oceanbase]$ ulimit -s 10240; ulimit -c unlimited
      
    2. 配置环境变量。

      [admin@hostname oceanbase]$ export LD_LIBRARY_PATH=/home/admin/oceanbase/lib:$LD_LIBRARY_PATH LD_PRELOAD=''
      
    3. 启动 OBServer。

      语句如下:

      [admin@hostname oceanbase]$ /home/admin/oceanbase/bin/observer -i eth0 -P XXXX -p YYYY -z zone1 -d /home/admin/oceanbase/store/obdemo -r 'xxx.xxx.xxx.xxx:xxxx:xxx.xxx.xxx.xxx:xxxx xxx.xxx.xxx.xxx:xxxx:yyyy' -c 20190716 -n obdemo -o "memory_limit_percentage=90,memstore_limit_percentage=60,datafile_disk_percentage=80,config_additional_dir=/data/1/obdemo/etc3;/data/log1/obdemo/etc2"
      

      其中:

      • -P 参数用于指定 RPC 端口号。

      • -p 参数用于指定直连端口号。

      • -z 参数用于指定待加入的 Zone。

      • -d 参数用于指定数据的存储目录。

      • -r 参数用于指定待添加的 OBServer 的 IP 地址列表。

      • -c 参数用于指定集群 ID。

      • -n 参数用于指定集群名。

      • -o 参数用于指定启动配置项。

        更多配置项的详细信息,请参见 系统配置项

      注意

      在启动 OBServer 时,请务必指定正确的 Zone 名称和初始化参数值。

  8. 再次通过 root 用户登录到 OceanBase 数据库的 sys 租户,向集群中添加 OBServer 节点。

    其中,$IP 表示待添加的 OBServer 的 IP 地址;$PORT 表示 OBServer 的 RPC 端口号,默认为 2882

    obclient> ALTER SYSTEM ADD SERVER '$IP:$PORT' ZONE 'zone4';
    

    该操作会将 OBServer 加入到服务列表,只有服务列表中的 OBServer 才可以提供服务。

    添加后,可以执行以下语句,确认列表中是否有刚才添加的 OBServer,如果有,则表示添加成功。

    obclient> SELECT * FROM oceanbase.DBA_OB_SERVERS;
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论