四海内皆兄弟

OpenTenBase V5的全新简易安装

有些数据库不得其法的话安装会费力,而有些数据库可能天生就是费力

  • 今天我们说的是前者,后者那种数据库没必要去说
  • 自 OpenTenBase 5 版本起,官方正式推出了 opentenbase_ctl 工具集,旨在显著简化入门用户的部署与安装流程。这就是我说的得其法。 如果没有官方的努力安装就不会这样简单。
  • 官方很贴心给我提供了编译好的opentenbase_ctl工具与使用教程。此外,通过源码编译或rpm包中,bin目录下也有这个工具。
  • 即使作为一名完全的新手,仅使用一台 CentOS 7 服务器,严格遵循官方教程操作,不到十分钟便成功部署并启动了一个可用的OpenTenBase数据库实例。

实践之路

  • 接下来,我将完整展示本次安装的具体步骤。

  1. 准备工作
  • 1.1) root账号下创建目录 /data

  • mkdir -p /data
    • 1.2) root账号下创建用户opentenbase
    useradd -d /data/opentenbase -s /bin/bash -m opentenbase
    • 1.3) 修改opentenbase的密码(所有服务器的opentenbase密码要一致)
    passwd opentenbase
    • 1.4) 把opentenbase用户加入到 wheel group
      For RedHat(CentOS等)
    usermod -aG wheel opentenbase
    • For Debian(Ubuntu/Kylin V10/统信UOS等)
    usermod -aG sudo opentenbase
    • 1.5) 启用wheel group 的 sudo 权限
      执行 visudo 命令,然后搜索wheel,可以看到%wheel开头的两条配置,分别去掉最左边的#,保存退出。
      visudo
      %wheel ALL=(ALL) ALL
      %wheel ALL=(ALL) NOPASSWD: ALL

    • 2)服务器安装 sshpass,用于自动分发软件包

    yum install sshpass

    创建一个软链接:

    sudo ln -s /usr/lib64/libssh2.so.1 /usr/lib64/libssh2.so
    • 3)准备三大件(一键部署工具、内核包、部署的配置文件),都放入/data/opentenbase/ 目录中。

    • 3.1)准备好一键部署工具
      我这边是官方直接提供给我的,下面连接下载也行。

    su - opentenbase
    wget https://opentenbase-1302252972.cos.ap-nanjing.myqcloud.com/opentenbase_ctl
    chmod +x opentenbase_ctl
    • 3.2)准备好内核包
      我是下载官方归档的
      wget https://opentenbase-1302252972.cos.ap-nanjing.myqcloud.com/opentenbase-5.21.8-i.x86_64.tar.gz

    • 3.3)准备好部署的配置文件
      在opentenbase用户下,cd 到 /data/opentenbase 目录下,新建2个配置文件postgres.conf和config.ini,
      postgres.conf:对新人试用,为空就行。
      config.ini: 部署信息,包括gtm、coordinators、datanodes的端口。其中 server 中的 ssh-password 是opentenbase账号的密码。
      然后复制下面的配置模板信息粘贴到 config.ini,并根据自己环境信息作调整,保存退出。

    - su - opentenbase
    touch postgres.conf
    touch config.ini
    vim config.ini 
    • 我的配置文件如下:
    -  Instance configuration
    [instance]
    name=opentenbase01
    type=distributed
    package=/data/opentenbase/opentenbase-5.21.8-i.x86_64.tar.gz

    -  GTM nodes
    [gtm]
    master=10.xx.xxx.xxx

    -  Coordinator nodes
    [coordinators]
    master=10.xx.xxx.xxx
    nodes-per-server=1
    conf=/data/opentenbase/postgres.conf

    -  Data nodes
    [datanodes]
    master=10.xx.xxx.xxx
    nodes-per-server=1
    conf=/data/opentenbase/postgres.conf

    -  Login and deployment account
    [server]
    ssh-user=opentenbase
    ssh-password=xxx
    ssh-port=22

    -  Log configuration
    [log]
    level=DEBUG

    • 2、实例初始化
    ./opentenbase_ctl install  -c config.ini

    看到====== Installation completed successfully ====== ,代表已经安装成功了

    • 3、测试
      查看数据库状态,
    ./opentenbase_ctl status

     ------------- Instance status -----------  
    Instance name: opentenbase01
    Version: v5.21.8

     -------------- Node status --------------  
    Node cn0001(10.xx.xxx.xxx:11003) is Running 
    Node gtm0001(10.xx.xxx.xxx:11000) is Running 
    Node dn0001(10.xx.xxx.xxx:11006) is Running 
    [Result] Total: 3, Running: 3, Stopped: 0, Unknown: 0

     ------- Master CN Connection Info -------  
    [1] cn0001(10.xx.xxx.xxx)  
    Environment variable: export LD_LIBRARY_PATH=/data/opentenbase/install/opentenbase/5.21.8/lib  && export PATH=/data/opentenbase/install/opentenbase/5.21.8/bin:${PATH} 
    PSQL connection: psql -h 10.xx.xxx.xxx -p 11003 -U opentenbase postgres

    • 我们可以看到输出 ------- Master CN Connection Info ------- 部分,已经贴心的把如何连接库写上了。
      export LD_LIBRARY_PATH=/data/opentenbase/install/opentenbase/5.21.8/lib && export PATH=/data/opentenbase/install/opentenbase/5.21.8/bin:${PATH}
      psql -h 10.xx.xxx.xxx -p 11003 -U opentenbase postgres

    • 登录后验证基本功能:

    postgres=# create table test(id int);
    CREATE TABLE
    postgres=# insert into test(id) values(1);
    INSERT 0 1
    postgres=# select * from test;
     id 
    -----
      1
    (1 row)

    postgres=#

    • 以上,我们搭建好一个最简单的opentenbase实例,可以测试了。
    Image