OceanBase集群布署

下载地址:https://www.oceanbase.com/softwarecenter

下载版本:4.2.5

服务器:三台CentOS8.5

内存16G

服务器环境:

主服务器:jdk8

三台服务器参数配置:

useradd admin

passwd admin

usermod -aG wheel admin

mkdir -p /oceanbase/data
mkdir -p /oceanbase/redo
chown -R admin:admin /oceanbase

sudo sh -c 'echo -e "* soft nofile 655350\n* hard nofile 655350" >> /etc/security/limits.d/nofile.conf'

sudo sh -c 'echo -e "* soft nproc 655350\n* hard nproc 655350" >> /etc/security/limits.d/nproc.conf'

sudo sh -c 'echo -e "* soft core unlimited\n* hard core unlimited" >> /etc/security/limits.d/core.conf'
sudo sh -c 'echo -e "* soft stack unlimited\n* hard stack unlimited" >> /etc/security/limits.d/stack.conf'

echo 'vm.max_map_count = 655360' >> /etc/sysctl.conf
echo 'fs.file-max = 6573688' >> /etc/sysctl.conf

sudo sysctl -w vm.max_map_count=655360
sudo sysctl -w fs.file-max=6573688

sudo sysctl --system

主服务器:

上传oceanbase-all-in-one-4.2.5_bp1_20250115.el8.x86_64.tar.gz

tar -zxvf oceanbase-all-in-one-4.2.5_bp1_20250115.el8.x86_64.tar.gz

cd oceanbase-all-in-one/bin

./install.sh

source ~/.oceanbase-all-in-one/bin/env.sh

obd  mirror disable remote

cd ~/.oceanbase-all-in-one/obd/usr/obd/example

修改配置文件:all-components-min.yaml

改为以下内容:

## Only need to configure when remote login is required
user:
  username: admin
  password: HN_jj_2025
#  key_file: /home/admin/.ssh/id_rsa
#   port: your ssh port, default 22
#   timeout: ssh connection timeout (second), default 30
oceanbase-ce:
  depends:
    - ob-configserver
  servers:
    - name: server1
      # Please don't use hostname, only IP can be supported
      ip: 172.16.8.142
    - name: server2
      ip: 172.16.8.226
    - name: server3
      ip: 172.16.8.110
  global:
    # Starting from observer version 4.2, the network selection for the observer is based on the 'local_ip' parameter, and the 'devname' parameter is no longer mandatory.
    # If the 'local_ip' parameter is set, the observer will first use this parameter for the configuration, regardless of the 'devname' parameter.
    # If only the 'devname' parameter is set, the observer will use the 'devname' parameter for the configuration.
    # If neither the 'devname' nor the 'local_ip' parameters are set, the 'local_ip' parameter will be automatically assigned the IP address configured above.
    devname: ens160
    cluster_id: 1
    # please set memory limit to a suitable value which is matching resource. 
    memory_limit: 6G # The maximum running memory for an observer
    system_memory: 1G # The reserved system memory. system_memory is reserved for general tenants. The default value is 30G.
    datafile_size: 20G # Size of the data file. 
    log_disk_size: 15G # The size of disk space used by the clog files.
    cpu_count: 16
    production_mode: false
    enable_syslog_wf: false # Print system logs whose levels are higher than WARNING to a separate log file. The default value is true.
    max_syslog_file_count: 4 # The maximum number of reserved log files before enabling auto recycling. The default value is 0.
    # Cluster name for OceanBase Database. The default value is obcluster. When you deploy OceanBase Database and obproxy, this value must be the same as the cluster_name for obproxy.
    # appname: obcluster
    # root_password: # root user password
    # proxyro_password: # proxyro user pasword, consistent with obproxy's observer_sys_password, can be empty
    # ocp_meta_db: ocp_express # The database name of ocp express meta
    # ocp_meta_username: meta # The username of ocp express meta
    # ocp_meta_password: '' # The password of ocp express meta
    # ocp_agent_monitor_password: '' # The password for obagent monitor user
    ocp_meta_tenant: # The config for ocp express meta tenant
      tenant_name: ocp
      max_cpu: 1
      memory_size: 2G
      log_disk_size: 7680M # The recommend value is (4608 + (expect node num + expect tenant num) * 512) M.
  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.
    obshell_port: 2886 # Operation and maintenance port for Oceanbase Database. The default value is 2886. This parameter is valid only when the version of oceanbase-ce is 4.2.2.0 or later.
    # The working directory for OceanBase Database. OceanBase Database is started under this directory. This is a required field.
    home_path: /home/admin/observer
    # The directory for data storage. The default value is $home_path/store.
    data_dir: /oceanbase/data
    # The directory for clog, ilog, and slog. The default value is the same as the data_dir value.
    redo_dir: /oceanbase/redo
    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.
    obshell_port: 2886 # Operation and maintenance port for Oceanbase Database. The default value is 2886. This parameter is valid only when the version of oceanbase-ce is 4.2.2.0 or later.
    #  The working directory for OceanBase Database. OceanBase Database is started under this directory. This is a required field.
    home_path: /home/admin/observer
    # The directory for data storage. The default value is $home_path/store.
    data_dir: /oceanbase/data
    # The directory for clog, ilog, and slog. The default value is the same as the data_dir value.
    redo_dir: /oceanbase/redo
    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.
    obshell_port: 2886 # Operation and maintenance port for Oceanbase Database. The default value is 2886. This parameter is valid only when the version of oceanbase-ce is 4.2.2.0 or later.
    #  The working directory for OceanBase Database. OceanBase Database is started under this directory. This is a required field.
    home_path: /home/admin/observer
    # The directory for data storage. The default value is $home_path/store.
    data_dir: /oceanbase/data
    # The directory for clog, ilog, and slog. The default value is the same as the data_dir value.
    redo_dir: /oceanbase/redo
    zone: zone3
obproxy-ce:
  # 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
    - ob-configserver
  servers:
    - 172.16.8.142
  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: /home/admin/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
    enable_strict_kernel_release: false
    # 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:
  depends:
    - oceanbase-ce
  # 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: 172.16.8.142
    - name: server2
      ip: 172.16.8.226
    - name: server3
      ip: 172.16.8.110
  global:
    home_path: /home/admin/obagent
prometheus:
  servers:
    - 172.16.8.142
  depends:
    - obagent
  global:
    # The working directory for prometheus. prometheus is started under this directory. This is a required field.
    home_path: /home/admin/prometheus
    # address: 0.0.0.0  # The ip address to bind to. Along with port, corresponds to the `web.listen-address` parameter.
    # port: 9090 # The http port to use. Along with address, corresponds to the `web.listen-address` parameter.
    # enable_lifecycle: true # Enable shutdown and reload via HTTP request. Corresponds to the `web.enable-lifecycle` parameter.
    # data_dir: /root/prometheus/data # Base path for metrics storage. Corresponds to the `storage.tsdb.path` parameter.
    # basic_auth_users:  # Usernames and passwords that have full access to the web server via basic authentication. Corresponds to the `basic_auth_users` parameter.
    #   <username>: <password>  # The format of `basic_auth_users` : the key is the user name and the value is the password.
    # web_config: # Content of Prometheus web service config file. The format is consistent with the file. However, `basic_auth_users` cannot be set in it. Please set `basic_auth_users` above if needed. Corresponds to the `web.config.file` parameter.
    #   tls_server_config:
    #     # Certificate and key files for server to use to authenticate to client.
    #     cert_file: <filename>
    #     key_file: <filename>
    # config: # Configuration of the Prometheus service. The format is consistent with the Prometheus config file. Corresponds to the `config.file` parameter.
    #   rule_files:
    #   - rules/*rules.yaml
    #   scrape_configs:
    #   - job_name: prometheus
    #     metrics_path: /metrics
    #     scheme: http
    #     static_configs:
    #       - targets:
    #           - localhost:9090
    #   - job_name: node
    #     basic_auth:
    #       username: admin
    #       password: '******'
    #     metrics_path: /metrics/node/host
    #     scheme: http
    #     file_sd_configs:  # Set the targets to be collected by reading local files. The example is to collect targets corresponding to all yaml files in the 'targets' directory under $home_path.
    #     - files:
    #       - 'targets/*.yaml'
    #   - job_name: ob_basic
    #     basic_auth:
    #       username: admin
    #       password: '******'
    #     metrics_path: /metrics/ob/basic
    #     scheme: http
    #     file_sd_configs:
    #     - files:
    #       - 'targets/*.yaml'
    #   - job_name: ob_extra
    #     basic_auth:
    #       username: admin
    #       password: '******'
    #     metrics_path: /metrics/ob/extra
    #     scheme: http
    #     file_sd_configs:
    #     - files:
    #       - 'targets/*.yaml'
    #   - job_name: agent
    #     basic_auth:
    #       username: admin
    #       password: '******'
    #     metrics_path: /metrics/stat
    #     scheme: http
    #     file_sd_configs:
    #     - files:
    #       - 'targets/*.yaml'
    # additional_parameters: # Additional parameters for Prometheus service, among which `web.listen-address`, `web.enable-lifecycle`, `storage.tsdb.path`, `config.file` and `web.config.file` cannot be set. Please set them in the corresponding configuration above if needed.
    # - log.level: debug
grafana:
  servers:
    - 172.16.8.142
  depends:
    - prometheus
  global:
    home_path: /home/admin/grafana
    login_password: 'HN_jj_2025' # Grafana login password.
    # data_dir: # Path to where grafana can store temp files, sessions, and the sqlite3 db (if that is used).$data_dir can be empty. The default value is $home_path/data.
    # logs_dir: # Directory where grafana can store logs, can be empty. The default value is $data_dir/log.
    # plugins_dir: # Directory where grafana will automatically scan and look for plugins, can be empty. The default value is $data_dir/plugins.
    # provisioning_dir: # folder that contains provisioning config files that grafana will apply on startup and while running, can be empty. The default value is $home_path/conf/provisioning.
    # temp_data_lifetime: # How long temporary images in data directory should be kept. Supported modifiers h (hours), m (minutes), Use 0 to never clean up temporary files, can be empty. The default value is 24h.
    # log_max_days: # Expired days of log file(delete after max days), can be empty. The default value is 7.
    # domian: # The public facing domain name used to access grafana from a browser, can be empty. The default value is $server.ip.
    # port: # The http port to use, can be empty. The default value is 3000.

    # # list of datasources to insert/update depending on what's available in the database, can be empty.
    # # For more parameter settings, please refer to https://grafana.com/docs/grafana/latest/administration/provisioning/#datasources
    # datasources:
    #   name: # name of the datasource. Required and should not be 'OB-Prometheus'
    #   type: # datasource type. Required
    #   access: # access mode. direct or proxy. Required
    #   url: # the url of datasource

    # list of dashboards providers that load dashboards into Grafana from the local filesystem, can be empty.
    # For more information, please refer to https://grafana.com/docs/grafana/latest/administration/provisioning/#dashboards
    # providers:
    #   name: # an unique provider name. Required and should not be 'OceanBase Metrics'
    #   type: # provider type. Default to 'file'
    #   options:
    #     path: # path to dashboard files on disk. Required when using the 'file' type

    # # customize your Grafana instance by adding/modifying the custom configuration as follows
    # # for more information, please refer to https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/#configure-grafana
    # # Here, setting parameters is required for format conversion.
    # # For example, if the original grafana configuration format is
    # #
    # # [section1.section2]
    # # key1 = value1
    # # key2 = value2
    # #
    # # Then when writing the configuration below, you need to write it as
    # #
    # # section1:
    # #   section2:
    # #     key1: value1
    # #     key2: value2
    # #
    # # Here we only list one item, because there are more than 500 items. Please add them according to your own needs.
    # customize_config:
    #   # original grafana configuration format is
    #   # [server]
    #   # protocol = http
    #   server:
    #     protocol: http
ocp-express:
  depends:
    - oceanbase-ce
    - obproxy-ce
    - obagent
  servers:
    - 172.16.8.142
  global:
    # The working directory for prometheus. prometheus is started under this directory. This is a required field.
    home_path: /home/admin/ocp-express
    # log_dir: /home/oceanbase/ocp-express/log # The log directory of ocp express server. The default value is {home_path}/log.
    memory_size: 1G # The memory size of ocp-express server.  The recommend value is 512MB * (expect node num + expect tenant num) * 60MB.
    # logging_file_total_size_cap: 10G # The total log file size of ocp-express server
    # logging_file_max_history: 1 # The maximum of retention days the log archive log files to keep. The default value is unlimited
ob-configserver:
  servers:
    - 127.0.0.1
  global:
    listen_port: 8080 # The port of ob-configserver web
    # server_ip: 0.0.0.0 # Listen to the ob-configserver server IP。When you want to listen to the specified IP address,use it.
    home_path: /home/admin/ob-configserver  # The working directory for prometheus. ob-configserver is started under this directory. This is a required field.
    ## log config
    # log_level: info # Log printing level of ob-configserver。The default value is `info`
    # log_maxsize: 30 # The total size of manager ob-configserver.Log size is measured in Megabytes.The default value is 30
    # log_maxage: 7 # The days of manager expired ob-configserver.Log retention days. The default value is 7
    # log_maxbackups: 10  #The number of manager expired ob-configserver.Log. The default value is 10
    # log_localtime: true #  Switch of ob-configserver.Log naming with localtime. The default value is true
    # log_compress: true # Compress ob-configserver.Log switch. The default value is true

    ## vip config, configserver will generate url with vip_address and port and return it to the client
    ## do not use some random value that can't be connected
    # vip_address: "10.10.10.1"
    # vip_port: 8080
    ## storage config
    # storage:
    #   database_type: sqlite3 # sqlite3 or mysql. Default sqlite3
    #   connection_url: "" # When database_type is set to sqlite3, the connection_url parameter can be left empty. If it is empty, the default value $home_path/.data.db?cache=shared&_fk=1 will be used. When database_type is set to mysql, the connection_url parameter must be configured, with a sample value of user:password@tcp(10.10.10.1:2883)/test?parseTime=true.

obd cluster deploy obtest -c all-components-2025.yaml

obd cluster start obtest

### OceanBase 集群安装部署教程最佳实践 #### 准备工作 对于内网环境中进行OceanBase集群的离线安装,准备工作至关重要。确保中控机器能够访问所需资源文件,下载相关软件包[^1]。 #### 安装依赖项 为了使OceanBase数据库正常运行,在目标服务器上需预先设置一些必要的环境条件。例如通过`yum`工具来安装时间同步服务Chrony,这有助于保持分布式系统的时间一致性[^4]: ```bash yum -y install chrony ``` #### 使用OBD工具进行部署 OBD (OceanBase Deployer),作为一款专为OceanBase设计的自动化部署解决方案,极大地简化了集群构建过程。无论是初次接触还是有经验的操作人员都能从中受益。该工具支持多种场景下的灵活配置选项,并针对不同网络状况提供了相应的解决策略——特别是对于无法直接连通外部互联网的情况特别适用。 #### Kubernetes集成方案概述 当考虑将OceanBase与Kubernetes平台相结合时,则会涉及到利用特定于云原生架构的设计模式和技术栈。这里提到kubeblocks/oceanbase组件扩展正是为此目的而设;它不仅描述了一个完整的OBDB实例生命周期管理框架,还涵盖了从初始化到销毁期间可能遇到的各种操作细节[^2]。 #### 验证部署状态 完成上述步骤之后,可以通过执行如下命令验证Prometheus监控Pod的状态以确认整个流程是否顺利完成: ```bash kubectl get pod -n oceanbase | grep prometheus ``` 此指令用于筛选并显示属于oceanbase命名空间内的所有名称中含有“prometheus”的Pod对象信息[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值