• 手动部署 OceanBase 集群


      1. 手动部署一个 OB 单副本集群,包括一个 OBProxy 节点
        1. 部署环境

    服务器信息

    IP地址

    192.168.0.26

    网卡名

    ifcfg-enp1s0

    OS

    Kylin Linux Advanced Server release V10

    CPU

    8C

    内存

    32G

    磁盘1

    本地盘 /data/1

    磁盘2

    本地盘 /data/log1 

    机器和角色划分

    角色

    机器

    备注

    OBPROXY

    192.168.0.26

    OceanBase反向代理访问

    OBSERVER

    192.168.0.26

    OceanBase数据库

    OBCLIENT

    192.168.0.26

    OceanBase命令行客户端

        1. 服务器初始化

    执行OceanBase数据库软件部署前对服务器的相关初始化配置。

          1. 内核参数修改

    vim /etc/sysctl.conf

    kernel.sysrq=0

    net.ipv4.ip_forward = 1

    net.ipv4.conf.all.send_redirects=0

    net.ipv4.conf.default.send_redirects=0

    net.ipv4.conf.all.accept_source_route=0

    net.ipv4.conf.default.accept_source_route = 0

    net.ipv4.conf.all.accept_redirects=0

    net.ipv4.conf.default.accept_redirects=0

    net.ipv4.conf.all.secure_redirects=0

    net.ipv4.conf.default.secure_redirects=0

    net.ipv4.icmp_echo_ignore_broadcasts=1

    net.ipv4.icmp_ignore_bogus_error_responses=1

    net.ipv4.conf.all.rp_filter=1

    net.ipv4.conf.default.rp_filter = 1

    net.ipv4.tcp_syncookies = 0

    kernel.dmesg_restrict=1

    net.ipv6.conf.all.accept_redirects=0

    net.ipv6.conf.default.accept_redirects=0

    ####################################################

    #  for oceanbase

    net.core.somaxconn = 2048

    net.core.netdev_max_backlog = 10000

    net.core.rmem_default = 16777216

    让配置生效

    sysctl -p

          1. 修改会话变量设置

    vi /etc/security/limits.conf

    * soft nofile 655360

    * hard nofile 655360

    * soft nproc 655360

    * hard nproc 655360

    * soft core unlimited

    * hard core unlimited

    * soft stack unlimited

    * hard stack unlimited

          1. 关闭防火墙

    systemctl stop firewalld

    systemctl disable firewalld

          1. 关闭SELinux

    vi /etc/selinux/config

    SELINUX=disabled

          1. 创建安装用户

    # 新增普通用户 admin

    useradd admin

    # 改用户密码

    passwd admin

    # 配置用户admin sudo权限

    vi /etc/sudoers

          1. 修改系统时区

    将系统时区设置为中国的+8区

    tzselect

    分别依次选择 5) Asia、9) China、1) Beijing Time、1) Yes

    vi /etc/profile

    export TZ='Asia/Shanghai'

    #生效修改

    source /etc/profile

          1. 磁盘目录配置

    模拟生产环境中使用LV进行数据存储。

    # 创建pv

    pvcreate  /dev/nvme0n1

    pvcreate  /dev/nvme1n1

    # 创建vg

    vgcreate  vgdata  /dev/nvme0n1

    vgcreate  vgredo  /dev/nvme1n1

    # 创建lv

    lvcreate -l 100%free vgdata -n lvdata

    lvcreate -L 50G vgredo -n lvredo

    # 格式化文件系统

    mkfs.ext4  /dev/mapper/vgdata-lvdata

    mkfs.ext4  /dev/mapper/vgredo-lvredo

    # 挂载文件系统

    mkdir -p /data /redo

    vi /etc/fstab

    /dev/mapper/vgdata-lvdata  /data/1  ext4  defaults,noatime,nodiratime,nodelalloc,barrier=0  0  0

    /dev/mapper/vgredo-lvredo  /data/log1  ext4  defaults,noatime,nodiratime,nodelalloc,barrier=0  0  0

    mount -a

          1. 初始化目录

    # 创建相关目录

    mkdir -p /home/admin/{oceanbase,logs} 

        1. 部署单副本OceanBase集群

    包括代理服务obproxy和obclient。

          1. 安装程序包文件

    tar -zxvf obpoc_20220506_arm\ .tar.gz

    cd ocp-ob-obp-odc-antman_20220506_arm

    yum -y install t-oceanbase-antman-1.4.2-20220430002909.alios7.aarch64.rpm

          1. 安装oceanbase数据库程序

    rpm –ivh oceanbase-3.2.3.0-20220418212020.el7.aarch64.rpm

          1. 安装obclient客户端程序

    rpm -ivh obclient-1.2.8-20210918193105.el7.alios7.aarch64.rpm

          1. 安装obproxy代理程序

    #执行如下命令

    rpm -ivh obproxy-3.2.3.2-20220413115557.el7.aarch64.rpm

          1. 启动节点observer

    #执行如下命令启动单节点单副本observer进程

    su - admin

    cd /home/admin/oceanbase

    bin/observer  -p 2881 -P 2882 -z zone1 -d ~/oceanbase/store/obcluster -r '192.168.0.26:2882:2881' -c 1673835228 -n obcluster -o "datafile_size=50G,__min_full_resource_pool_memory=268435456,config_additional_dir=/data/1/admin/etc3;/data/log1/admin/etc2"

          1. 初始化集群

    #执行如下命令初始化集群(初始密码为空)

    obclient -h 192.168.0.26 -P 2881 -uroot -p -c -A

    alter system bootstrap ZONE 'zone1' SERVER '192.168.0.26:2882';

    # 退出重新登录(租户sys),执行如下命令:

    obclient -h 192.168.0.26 -P 2881 -uroot@sys -p -c -A oceanbase

    # 并查看当前server列表

    select zone, svr_ip, svr_port, with_rootserver, status from __all_server order by zone, with_rootserver desc;

          1. 设置相关密码

    alter user root identified by 'root123';

    grant select on oceanbase.* to proxyro identified by 'proxyro';

          1. 启动obproxy进程

    启动OBPROXY进程也推荐在软件安装目录,进程obproxy会在该目录下生成目录etc保存OBPROXY的运行参数,以及目录log保存运行日志。

    # 执行如下命令启动obproxy进程

    bin/obproxy -r "192.168.0.26:2881" -p 2883 -o "enable_strict_kernel_release=false,enable_cluster_checkout=false,enable_metadb_used=false" -c obcluster

    # 登录obproxy,查看系统管理员密码参数

    obclient -h10.64.8.28 -P2883 -uroot@sys#admin -p -A

    show proxyconfig like '%sys_password%';

      1. 验证OceanBase集群
        1. 登录测试OceanBase集群

    登录使用命令:obclient -h192.168.0.28 -P2883 -uroot@sys#admin -p -A

        1. 创建租户

    #查看当前资源规格及资源池配置:

    Use oceanbase;

    select unit_config_id, name from __all_unit_config;

    select resource_pool_id, name from __all_resource_pool;

    #创建租户所需的资源规格和资源池

    create resource unit my_unit1 max_cpu=1, max_memory='1g', max_iops=128, max_disk_size='5g', max_session_num=64, min_cpu=1, min_memory='1g', min_iops=128;

    create resource pool my_pool1 unit='my_unit1', unit_num=1, zone_list=('zone1');

    #再次查看资源规格及资源池配置

    #执行如下命令创建一个租户对象

    create tenant my_tenant1 resource_pool_list=('my_pool1');

        1. 创建业务数据库

    重新登录数据库,连接新建业务租户:my_tenant1

    执行命令:obclient -h 192.168.0.26 -P 2883 -u root@my_tenant1 -p -c -A oceanbase

    注:新建租户下默认管理员密码为空

        1. 创建业务数据表

    create table user1(id int(4) primary key, name varchar(20));

    #新增数据表记录

    insert into user1(id, name) values(1, '张三');

    insert into user1(id, name) values(2, '李四');

  • 相关阅读:
    MogaFX—乐观的通胀报告意味着美元刚刚经历了15年来最糟糕的一天
    让程序员崩溃的微信群消息置顶
    Elasticsearch基础
    微软AI文生图新突破,用于图像生成的多LoRA组合训练模型Multi-LoRA-Composition
    [附源码]Python计算机毕业设计SSM健身俱乐部管理系统(程序+LW)
    Spring学习(2) Spring的IOC底层实现
    Go 初识微信订阅号(测试号)
    Qt4升级到Qt5中文乱码问题的解决
    Day2多种抓包工具介绍以及使用封包监听工具找到挑战数据包实现发送数据包进行挑战
    python项目实战——银行取款机系统(六)
  • 原文地址:https://blog.csdn.net/shijian0916/article/details/133176546