• OB入门到实践3使用 OBD 部署一个 三副本OceanBase 集群


    实践练习三(可选):使用OBD 部署一个 三副本OceanBase 集群

    练习目的

    本次练习目的掌握 OceanBase 集群的自动化部署(OBD工具)技术,能自动部署OB集群,包含 OBProxy,以及部署 OBAgent 等。

    练习条件

    • 有 服务器,内存资源至少 12G*3台 或者 32G*1台

    练习内容

    请记录并分享下列内容:

    • (必选)部署 OBD 软件,离线或者在线都可以。
    • (必选)使用 OBD 部署一套三副本集群(单机3节点或者3节点都可以),部署至少1个 OBProxy。
    • (必选)部署至少一个 OBAgent 。
    • (可选)部署 Promethues ,能查看采集的 OB 性能或状态数据。
    • (可选)部署 Grafana,能使用 OB 的性能模板查看 OB性能数据。

    具体实现

    架构规划

    组件 节点 说明 软件目录 端口
    obd 192.168.10.201 中控机,自动化部署软件
    observer 192.168.10.201 OceanBase 数据库 zone1 home_path: /ups/app/oceanbase/cluster
    data_dir: /obdata/data/201
    redo_dir: /obdata/redo/201
    2881/2882
    192.168.10.202 OceanBase 数据库 zone2 home_path: /ups/app/oceanbase/cluster
    data_dir: /obdata/data/202
    redo_dir: /obdata/redo/202
    192.168.10.203 OceanBase 数据库 zone3 home_path: /ups/app/oceanbase/cluster
    data_dir: /obdata/data/203
    redo_dir: /obdata/redo/203
    obproxy 192.168.10.221 OceanBase 访问反向代理 /ups/app/oceanbase/obproxy 2883/2884
    192.168.10.222
    192.168.10.223
    obagent 192.168.10.211 监控采集 /ups/app/oceanbase/obagent 8088/8089
    192.168.10.212
    192.168.10.213
    obclient 192.168.10.201 OceanBase 命令行客户端

    安装OBD软件

    # 下载
    curl https://mirrors.aliyun.com/oceanbase/community/stable/el/7/x86_64/ob-deploy-1.1.2-1.el7.x86_64.rpm
    # 安装
    sudo rpm -ivh ob-deploy-1.1.2-1.el7.x86_64.rpm
    # 加载环境变量
    source /etc/profile.d/obd.sh
    
    # 查看可执行文件的安装路径
    rpm -ql `rpm -qa|grep ob-deploy`
    

    配置本地镜像仓库

    # 1. 首先要删除远程仓库
    mv ~/.obd/mirror/remote/OceanBase.repo ~/.obd/mirror/remote/OceanBase.repo.bak
    
    # 2. 将所需的软件上传到指定目录,如:/ups/app/obrpm/
    
    # 3. 离线仓库
    obd mirror clone /ups/app/obrpm/*.rpm
    
    # 4. 输出本地仓库中rpm包列表
    obd mirror list local
    

    image-20211213162230123

    配置集群部署yaml文件

    三节点+3proxy+3obagent

    ## Only need to configure when remote login is required
    user:
      username: ober # your os username
    #   password: your password if need
      key_file: /ups/app/oceanbase/.ssh/id_rsa.pub # your ssh-key file path if need
    #   port: your ssh port, default 22
    #   timeout: ssh connection timeout (second), default 30
    oceanbase-ce:
      servers:
        - name: server1
          # Please don't use hostname, only IP can be supported
          ip: 192.168.10.201
        - name: server2
          ip: 192.168.10.202
        - name: server3
          ip: 192.168.10.203
      global:
        # Please set devname as the network adaptor's name whose ip is  in the setting of severs.
        # if set severs as "127.0.0.1", please set devname as "lo"
        # if current ip is 192.168.1.10, and the ip's network adaptor's name is "eth0", please use "eth0"
        devname: ens32
        # if current hardware's memory capacity is smaller than 50G, please use the setting of "mini-single-example.yaml" and do a small adjustment.
        memory_limit: 8G # The maximum running memory for an observer
        # The reserved system memory. system_memory is reserved for general tenants. The default value is 30G.
        system_memory: 4G
        datafile_disk_percentage: 20 # The percentage of the data_dir space to the total disk space. This value takes effect only when datafile_size is 0. The default value is 90.
        syslog_level: INFO # System log level. The default value is INFO.
        enable_syslog_wf: false # Print system logs whose levels are higher than WARNING to a separate log file. The default value is true.
        enable_syslog_recycle: true # Enable auto system log recycling or not. The default value is false.
        max_syslog_file_count: 4 # The maximum number of reserved log files before enabling auto recycling. The default value is 0.
        # observer cluster name, consistent with obproxy's cluster_name
        appname: obce
        # root_password: # root user password, can be empty
        # proxyro_password: # proxyro user pasword, consistent with obproxy's observer_sys_password, can be empty
      # In this example , support multiple ob process in single node, so different process use different ports.
      # If deploy ob cluster in multiple nodes, the port and path setting can be same. 
      server1:
        mysql_port: 2881 # External port for OceanBase Database. The default value is 2881. DO NOT change this value after the cluster is started.
        rpc_port: 2882 # Internal port for OceanBase Database. The default value is 2882. DO NOT change this value after the cluster is started.
        #  The working directory for OceanBase Database. OceanBase Database is started under this directory. This is a required field.
        home_path: /ups/app/oceanbase/cluster
        # The directory for data storage. The default value is $home_path/store.
        data_dir: /obdata/data/201
        # The directory for clog, ilog, and slog. The default value is the same as the data_dir value.
        redo_dir: /obdata/redo/201
        zone: zone1
      server2:
        mysql_port: 2881 # External port for OceanBase Database. The default value is 2881. DO NOT change this value after the cluster is started.
        rpc_port: 2882 # Internal port for OceanBase Database. The default value is 2882. DO NOT change this value after the cluster is started.
        #  The working directory for OceanBase Database. OceanBase Database is started under this directory. This is a required field.
        home_path: /ups/app/oceanbase/cluster
        # The directory for data storage. The default value is $home_path/store.
        data_dir: /obdata/data/202
        # The directory for clog, ilog, and slog. The default value is the same as the data_dir value.
        redo_dir: /obdata/redo/202
        zone: zone2
      server3:
        mysql_port: 2881 # External port for OceanBase Database. The default value is 2881. DO NOT change this value after the cluster is started.
        rpc_port: 2882 # Internal port for OceanBase Database. The default value is 2882. DO NOT change this value after the cluster is started.
        #  The working directory for OceanBase Database. OceanBase Database is started under this directory. This is a required field.
        home_path: /ups/app/oceanbase/cluster
        # The directory for data storage. The default value is $home_path/store.
        data_dir: /obdata/data/203
        # The directory for clog, ilog, and slog. The default value is the same as the data_dir value.
        redo_dir: /obdata/redo/203
        zone: zone3
    obproxy:
      # Set dependent components for the component.
      # When the associated configurations are not done, OBD will automatically get the these configurations from the dependent components.
      depends:
        - oceanbase-ce
      servers:
        - 192.168.10.221
        - 192.168.10.222
        - 192.168.10.223
      global:
        listen_port: 2883 # External port. The default value is 2883.
        prometheus_listen_port: 2884 # The Prometheus port. The default value is 2884.
        home_path: /ups/app/oceanbase/obproxy
        # oceanbase root server list
        # format: ip:mysql_port;ip:mysql_port. When a depends exists, OBD gets this value from the oceanbase-ce of the depends.
        # rs_list: 192.168.1.2:2881;192.168.1.3:2881;192.168.1.4:2881
        enable_cluster_checkout: false
        # observer cluster name, consistent with oceanbase-ce's appname. When a depends exists, OBD gets this value from the oceanbase-ce of the depends.
        # cluster_name: obcluster
        skip_proxy_sys_private_check: true
        # obproxy_sys_password: # obproxy sys user password, can be empty. When a depends exists, OBD gets this value from the oceanbase-ce of the depends.
        # observer_sys_password: # proxyro user pasword, consistent with oceanbase-ce's proxyro_password, can be empty. When a depends exists, OBD gets this value from the oceanbase-ce of the depends.
    obagent:
      # The list of servers to be monitored. This list is consistent with the servers in oceanbase-ce. 
      servers:
        - name: server1
          # Please don't use hostname, only IP can be supported
          ip: 192.168.10.211
        - name: server2
          ip: 192.168.10.212
        - name: server3
          ip: 192.168.10.213
      # Set dependent components for the component.
      # When the associated configurations are not done, OBD will automatically get the these configurations from the dependent components.
      depends:
        - oceanbase-ce
      global:
        # The working directory for obagent. obagent is started under this directory. This is a required field.
        home_path: /ups/app/oceanbase/obagent
        # The port that pulls and manages the metrics. The default port number is 8088.
        server_port: 8088
        # Debug port for pprof. The default port number is 8089.
        pprof_port: 8089
        # Log level. The default value is INFO.
        log_level: INFO
        # Log path. The default value is log/monagent.log.
        log_path: log/monagent.log
        # Encryption method. OBD supports aes and plain. The default value is plain.
        crypto_method: plain
        # Path to store the crypto key. The default value is conf/.config_secret.key.
        # crypto_path: conf/.config_secret.key
        # Size for a single log file. Log size is measured in Megabytes. The default value is 30M.
        log_size: 30
        # Expiration time for logs. The default value is 7 days.
        log_expire_day: 7
        # The maximum number for log files. The default value is 10.
        log_file_count: 10
        # Whether to use local time for log files. The default value is true.
        # log_use_localtime: true
        # Whether to enable log compression. The default value is true.
        # log_compress: true
        # Username for HTTP authentication. The default value is admin.
        http_basic_auth_user: admin
        # Password for HTTP authentication. The default value is root.
        http_basic_auth_password: root
        # Username for debug service. The default value is admin.
        pprof_basic_auth_user: admin
        # Password for debug service. The default value is root.
        pprof_basic_auth_password: root
        # Monitor username for OceanBase Database. The user must have read access to OceanBase Database as a system tenant. The default value is root.
        # monitor_user: root
        # Monitor password for OceanBase Database. The default value is empty. When a depends exists, OBD gets this value from the oceanbase-ce of the depends. The value is the same as the root_password in oceanbase-ce.
        # monitor_password: 
        # The SQL port for observer. The default value is 2881. When a depends exists, OBD gets this value from the oceanbase-ce of the depends. The value is the same as the mysql_port in oceanbase-ce.
        # sql_port: 2881
        # The RPC port for observer. The default value is 2882. When a depends exists, OBD gets this value from the oceanbase-ce of the depends. The value is the same as the rpc_port in oceanbase-ce.
        # rpc_port: 2882
        # Cluster name for OceanBase Database. When a depends exists, OBD gets this value from the oceanbase-ce of the depends. The value is the same as the appname in oceanbase-ce.
        # cluster_name: obcluster
        # Cluster ID for OceanBase Database. When a depends exists, OBD gets this value from the oceanbase-ce of the depends. The value is the same as the cluster_id in oceanbase-ce.
        # cluster_id: 1
        # Zone name for your observer. The default value is zone1. When a depends exists, OBD gets this value from the oceanbase-ce of the depends. The value is the same as the zone name in oceanbase-ce.
        # zone_name: zone1
        # Monitor status for OceanBase Database.  Active is to enable. Inactive is to disable. The default value is active. When you deploy an cluster automatically, OBD decides whether to enable this parameter based on depends.
        ob_monitor_status: active
        # Monitor status for your host. Active is to enable. Inactive is to disable. The default value is active.
        host_monitor_status: active
        # Whether to disable the basic authentication for HTTP service. True is to disable. False is to enable. The default value is false.
        disable_http_basic_auth: false
        # Whether to disable the basic authentication for the debug interface. True is to disable. False is to enable. The default value is false.
        disable_pprof_basic_auth: false
    

    部署集群软件

    # 用法:obd cluster deploy [集群名] -c 集群配置文件 
    obd cluster deploy obce-single -c obce.yaml
    

    启动及初始化集群

    obd cluster start obce
    

    检查集群状态

    obd cluster display obce
    

    安装obclient客户端

    rpm -ivh obclient-2.0.0-2.el7.x86_64.rpm libobclient-2.0.0-2.el7.x86_64.rpm
    
  • 相关阅读:
    namespace
    kubernetes环境搭建
    verdaccio私有仓库搭建
    mysql中间件proxysql
    MySQL存储引擎
    关于分布式系统
    转载:ETL讲解
    用原生JS 写Web首页轮播图
    javascript——记忆小便签
    转载:JavaScript 的 this 原理
  • 原文地址:https://www.cnblogs.com/binliubiao/p/15684354.html
Copyright © 2020-2023  润新知