Meet OceanBase AI Database, the unified database for operational data, real-time analytics, and AI. Explore ->

Meet OceanBase AI Database, the unified database for operational data, real-time analytics, and AI. Explore ->

OceanBase logo

OceanBase

A unified distributed database ready for your transactional, analytical, and AI workloads.

Product Overview
DEPLOY YOUR WAY

OceanBase Cloud

The best way to deploy and scale OceanBase

OceanBase Enterprise

Run and manage OceanBase on your infra

TRY OPEN SOURCE

OceanBase Community Edition

The free, open-source distributed database

OceanBase seekdb

Open source AI native search database

Customer Stories

Real-world success stories from enterprises across diverse industries.

View All
BY USE CASES

Mission-Critical Transactions

Global & Multicloud Application

Elastic Scaling for Peak Traffic

Real-time Analytics

Active Geo-redundancy

Database Consolidation

Resources

Comprehensive knowledge hub for OceanBase.

Blog

Live Demos

Training & Certification

Documentation

Official technical guides, tutorials, API references, and manuals for all OceanBase products.

View All
PRODUCTS

OceanBase Cloud

OceanBase Database

Tools

Connectors and Middleware

QUICK START

OceanBase Cloud

OceanBase Database

BEST PRACTICES

Practical guides for utilizing OceanBase more effectively and conveniently

Company

Learn more about OceanBase – our company, partnerships, and trust and security initiatives.

About OceanBase

Partner

Trust Center

Contact Us

International - English
中国站 - 简体中文
日本 - 日本語
Sign In
Start on Cloud

OceanBase

A unified distributed database ready for your transactional, analytical, and AI workloads.

Product Overview
DEPLOY YOUR WAY

OceanBase Cloud

The best way to deploy and scale OceanBase

OceanBase Enterprise

Run and manage OceanBase on your infra

TRY OPEN SOURCE

OceanBase Community Edition

The free, open-source distributed database

OceanBase seekdb

Open source AI native search database

Customer Stories

Real-world success stories from enterprises across diverse industries.

View All
BY USE CASES

Mission-Critical Transactions

Global & Multicloud Application

Elastic Scaling for Peak Traffic

Real-time Analytics

Active Geo-redundancy

Database Consolidation

Comprehensive knowledge hub for OceanBase.

Blog

Live Demos

Training & Certification

Documentation

Official technical guides, tutorials, API references, and manuals for all OceanBase products.

View All
PRODUCTS
OceanBase CloudOceanBase Database
ToolsConnectors and Middleware
QUICK START
OceanBase CloudOceanBase Database
BEST PRACTICES

Practical guides for utilizing OceanBase more effectively and conveniently

Learn more about OceanBase – our company, partnerships, and trust and security initiatives.

About OceanBase

Partner

Trust Center

Contact Us

Start on Cloud
编组
All Products
    • Databases
    • iconOceanBase Database
    • iconOceanBase Cloud
    • iconOceanBase Tugraph
    • iconInteractive Tutorials
    • iconOceanBase Best Practices
    • Tools
    • iconOceanBase Cloud Platform
    • iconOceanBase Migration Service
    • iconOceanBase Developer Center
    • iconOceanBase Migration Assessment
    • iconOceanBase Admin Tool
    • iconOceanBase Loader and Dumper
    • iconOceanBase Deployer
    • iconKubernetes operator for OceanBase
    • iconOceanBase Diagnostic Tool
    • iconOceanBase Binlog Service
    • Connectors and Middleware
    • iconOceanBase Database Proxy
    • iconEmbedded SQL in C for OceanBase
    • iconOceanBase Call Interface
    • iconOceanBase Connector/C
    • iconOceanBase Connector/J
    • iconOceanBase Connector/ODBC
    • iconOceanBase Connector/NET
icon

OceanBase Deployer

V4.3.0Community Edition

  • What is obd
  • Quick Start
    • Install obd
    • Quick deployment of OceanBase Database
    • Quickly deploy OCP
  • obd Command
    • Quick deployment commands
    • Cluster commands
    • Command groups
    • Image and repository commands
    • Test command groups
    • Tool commands
    • obdiag commands
    • Binlog service commands
    • Hardware commands
    • License commands
    • Password commands
    • Telemetry commands
  • User Guide
    • Usage overview
    • Deploy through GUI
      • Overview
      • Pattern configuration rules
      • Deploy an OceanBase cluster
      • Deploy OCP
      • Deploy OMS
      • Change components
      • Upgrade OCP
      • Upgrade OMS
    • Deploy through CLI
      • Configuration file
      • Component deployment
        • Deploy an OceanBase cluster
        • Deploy seekdb
        • Deploy obconfigserver
        • Deploy OMS
        • Deploy OCP
        • Deploy Alertmanager
        • Deploy obbinlog
        • Deploy oblogproxy
      • Cluster management
        • Physical Standby Database
          • Create a standby tenant
          • Role switching and decoupling
          • Switch the synchronization mode between primary and standby tenants
        • seekdb primary/standby instance
          • Create a standby instance
          • Role switching and decoupling
        • Scale out and component changes
        • Performance test
        • Diagnose a cluster
        • Backup and restore
        • Add a GUI monitoring system to an existing cluster
      • Cluster management
        • Use OCP to take over an OceanBase cluster deployed by obd
        • Take over an OceanBase cluster
      • Component upgrade
        • Upgrade OceanBase Database
        • Upgrade ODP
        • Upgrade OMS
  • Upgrade obd
  • FAQ
  • Error codes
  • Release Notes
    • Version rules
    • V4.3
      • OceanBase Deploy V4.3.0
    • V4.2
      • OceanBase Deployment Tool V4.2.0
    • V4.1
      • OceanBase Deployer V4.1.0
    • V4.0
      • OceanBase Deployer V4.0.0
    • V3.6
      • OceanBase Deployer V3.6.0
    • V3.5
      • OceanBase Deployer V3.5.0
    • V3.4
      • OceanBase Deployer V3.4.0
    • V3.3
      • OceanBase Deployer V3.3.0
    • V3.2
      • OceanBase Deployer V3.2.2
      • OceanBase Deployer V3.2.1
      • OceanBase Deployer V3.2.0
    • V3.1
      • OceanBase Deployer V3.1.2
      • OceanBase Deployer V3.1.1
      • OceanBase Deployer V3.1.0
    • V3.0
      • OceanBase Deployer V3.0.1
      • OceanBase Deployer V3.0.0
    • V2.10
      • OceanBase Deployer V2.10.1
      • OceanBase Deployer V2.10.0
    • V2.9
      • OceanBase Deployer V2.9.2
      • OceanBase Deployer V2.9.1
      • OceanBase Deployer V2.9.0
    • V2.8
      • OceanBase Deployment Tool V2.8.0
    • V2.7
      • OceanBase Deployment Tool V2.7.0
    • V2.6
      • OceanBase Deployment Tool V2.6.2
      • OceanBase Deployment Tool V2.6.1
      • OceanBase Deployment Tool V2.6.0
    • V2.5
      • OceanBase Deployer V2.5.0
    • V2.4
      • OceanBase Deployer V2.4.0
    • V2.3
      • OceanBase Deployment Tool V2.3.1
      • OceanBase Deployer V2.3.0
    • V2.2
      • OceanBase Deployment Tool V2.2.0
    • V2.1
      • OceanBase Deployer V2.1.1
      • OceanBase Deployment Tool V2.1.0
    • V2.0
      • OceanBase Deployment Tool V2.0.1
      • OceanBase Deployment Tool V2.0.0
    • V1.6
      • OceanBase Deployer V1.6.2
      • OceanBase Deployer V1.6.1
      • OceanBase Deployer V1.6.0
    • V1.5
      • OceanBase Deployer V1.5.0
    • V1.4
      • OceanBase Deployer V1.4.0
    • V1.3
      • OceanBase Deployer V1.3.3
      • OceanBase Deployer V1.3.2
      • OceanBase Deployer V1.3.0
    • V1.2
      • OceanBase Deployer V1.2.1
      • OceanBase Deployer V1.2.0
  • Interactive deployment of OceanBase Database Community Edition
  • Deploy a Community Edition cluster using the obd graphical interface
  • Deploy a Community Edition cluster by using an obd configuration file

Download PDF

What is obdInstall obdQuick deployment of OceanBase DatabaseQuickly deploy OCPQuick deployment commandsCluster commandsCommand groupsImage and repository commandsTest command groupsTool commandsobdiag commandsBinlog service commandsHardware commandsLicense commandsPassword commandsTelemetry commandsUsage overviewOverviewPattern configuration rulesDeploy an OceanBase clusterDeploy OCPDeploy OMSChange componentsUpgrade OCPUpgrade OMSConfiguration fileUpgrade obdFAQError codesVersion rulesOceanBase Deploy V4.3.0OceanBase Deployment Tool V4.2.0OceanBase Deployer V4.1.0OceanBase Deployer V4.0.0OceanBase Deployer V3.6.0OceanBase Deployer V3.5.0OceanBase Deployer V3.4.0OceanBase Deployer V3.3.0OceanBase Deployer V3.2.2OceanBase Deployer V3.2.1OceanBase Deployer V3.2.0OceanBase Deployer V3.1.2OceanBase Deployer V3.1.1OceanBase Deployer V3.1.0OceanBase Deployer V3.0.1OceanBase Deployer V3.0.0OceanBase Deployer V2.10.1OceanBase Deployer V2.10.0OceanBase Deployer V2.9.2OceanBase Deployer V2.9.1OceanBase Deployer V2.9.0OceanBase Deployment Tool V2.8.0OceanBase Deployment Tool V2.7.0OceanBase Deployment Tool V2.6.2OceanBase Deployment Tool V2.6.1OceanBase Deployment Tool V2.6.0OceanBase Deployer V2.5.0OceanBase Deployer V2.4.0OceanBase Deployment Tool V2.3.1OceanBase Deployer V2.3.0OceanBase Deployment Tool V2.2.0OceanBase Deployer V2.1.1OceanBase Deployment Tool V2.1.0OceanBase Deployment Tool V2.0.1OceanBase Deployment Tool V2.0.0OceanBase Deployer V1.6.2OceanBase Deployer V1.6.1OceanBase Deployer V1.6.0OceanBase Deployer V1.5.0OceanBase Deployer V1.4.0OceanBase Deployer V1.3.3OceanBase Deployer V1.3.2OceanBase Deployer V1.3.0OceanBase Deployer V1.2.1OceanBase Deployer V1.2.0Interactive deployment of OceanBase Database Community EditionDeploy a Community Edition cluster using the obd graphical interfaceDeploy a Community Edition cluster by using an obd configuration file
OceanBase logo

The Unified Distributed Database for the AI Era.

Follow Us
Products
OceanBase CloudOceanBase EnterpriseOceanBase Community EditionOceanBase seekdb
Resources
DocsBlogWhite PaperLive DemosTraining & CertificationTicket
Company
About OceanBaseTrust CenterLegalPartnerContact Us
Follow Us

© OceanBase 2026. All rights reserved

Cloud Service AgreementPrivacy PolicySecurity
Contact Us
Document Feedback
  1. Documentation Center
  2. OceanBase Deployer
  3. V4.3.0
iconOceanBase Deployer
V 4.3.0Community Edition
Databases
  • OceanBase Database
  • OceanBase Cloud
  • OceanBase Tugraph
  • Interactive Tutorials
  • OceanBase Best Practices
Tools
  • OceanBase Cloud Platform
  • OceanBase Migration Service
  • OceanBase Developer Center
  • OceanBase Migration Assessment
  • OceanBase Admin Tool
  • OceanBase Loader and Dumper
  • OceanBase Deployer
  • Kubernetes operator for OceanBase
  • OceanBase Diagnostic Tool
  • OceanBase Binlog Service
Connectors and Middleware
  • OceanBase Database Proxy
  • Embedded SQL in C for OceanBase
  • OceanBase Call Interface
  • OceanBase Connector/C
  • OceanBase Connector/J
  • OceanBase Connector/ODBC
  • OceanBase Connector/NET
Community Edition
  • V 4.3.0
  • V 3.2.1
  • V 3.2.0
  • V 3.1.0
  • V 3.0.0
  • V 2.10.1
  • V 2.10.0
  • V 2.9.0
  • V 2.8.0
  • V 2.7.0
  • V 2.6.0
  • V 2.5.0
  • V 2.4.0
  • V 2.3.1
  • V 2.3.0
  • V 2.2.0
  • V 2.1.0
  • V 2.0.0
  • V 1.6.1

Deploy a Community Edition cluster using the obd graphical interface

Last Updated:2026-06-30 14:40:58  Updated
Share
What is on this page
Server configuration
Deployment mode
Check the server's hardware and software configuration
Hardware environment
Software environment
Preparations before deployment
Plan the directories
Configure clock synchronization
User and parameter configuration
Configure password-free SSH login
Configure load balancing
Deploy a cluster by using OBD grafana interface
Verify the deployment result
More information

folded

Share

This topic describes how to prepare resources and configure the environment before deploying a Community Edition cluster using the obd graphical interface.

Note

obd supports deploying both the Community Edition and Enterprise Edition of OceanBase Database. This topic describes how to deploy the Community Edition of OceanBase Database using the obd graphical interface.

Server configuration

The following table describes the server configuration used in this example.

Category
Configuration
Number of servers 4
CPU 8-core x86_64
Operating system CentOS Linux release 8.5.2111
Kernel 4.18.0-348.7.1
Available memory 32 GB
Disk SSD storage. The storage space includes 196 GB for the installation directory, 2 TB for the log directory, and 2 TB for the data directory.

Note

  • In a production environment, the server must meet the minimum resource requirements (4 CPU cores and 16 GB of memory). For long-term use, the available memory must be at least 32 GB. Note that the memory limit refers to the value in the available column of the output when you execute the free -g command.

  • If the number of CPU cores is less than 8, the minimum CPU count is set to 8 by default. A low CPU count will negatively affect the performance of OceanBase Database.

Deployment mode

This example uses a three-replica deployment mode. We recommend that you deploy the system on four servers. You can choose an appropriate deployment mode based on your actual situation. The following table describes the usage of the four servers in this example:

Role
Server
Remarks
obd 10.10.10.4 The automated deployment software installed on the control server.
OBServer node 10.10.10.1 OceanBase Database zone 1.
OBServer node 10.10.10.2 OceanBase Database zone 2.
OBServer node 10.10.10.3 OceanBase Database zone 3.
ODP (also known as OBProxy) 10.10.10.1, 10.10.10.2, 10.10.10.3 The dedicated proxy server of OceanBase Database.
OBAgent 10.10.10.1, 10.10.10.2, 10.10.10.3 The monitoring and data collection framework of OceanBase Database.
obconfigserver 10.10.10.4 Provides metadata registration, storage, and query services for OceanBase Database.
Prometheus 10.10.10.4 An open-source service monitoring system and time-series database. It provides a general data model and quick data collection, storage, and query interfaces.
Grafana 10.10.10.4 An open-source data visualization tool. It can visualize various metrics from data sources to help you understand the system status and performance metrics.

Check the server's hardware and software configuration

Before you deploy OceanBase Database, you must check the hardware and software configuration of the server.

Note

You must perform the following checks on each OBServer node.

Hardware environment

Check whether the CPU supports AVX instructions

Note

This check applies only to servers with x86 architecture. You can skip this section if you use servers with other architectures.

OceanBase Database requires that the server's CPU supports AVX instructions. You can run the following command to check whether the CPU supports AVX instructions.

lscpu | grep Flags | grep avx

The following example shows the return result. If the avx field exists in the output, the server supports AVX instructions. If the avx field does not exist in the output, the server does not support AVX instructions. In this case, you must replace the server with one that supports AVX instructions.

Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq monitor ssse3 fma cx16 pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single ssbd ibrs_enhanced fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves avx_vnni avx512_bf16 wbnoinvd ida arat hwp hwp_notify hwp_act_window hwp_epp hwp_pkg_req avx512vbmi umip pku ospke waitpkg avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid bus_lock_detect cldemote movdiri movdir64b enqcmd fsrm md_clear serialize tsxldtrk avx512_fp16 flush_l1d arch_capabilities

Check the memory

Run the following command to check whether the available memory of the server meets the requirements specified in the Software and hardware requirements section of the OceanBase Database documentation.

[root@test001 ~]# free -g

The following example shows the return result. The value of the Mem field in the available column is 32, which meets the available memory requirements.

              total        used        free      shared  buff/cache   available
Mem:             36           4          32           0           0          32
Swap:             0           0           0

If the memory check result does not meet the memory requirements for deploying OceanBase Database, you can run the following commands to clear the Linux cache: PageCache, dentries, and inodes.

sudo sysctl -w vm.drop_caches=3
# or
sudo echo 3 > /proc/sys/vm/drop_caches

Software environment

Check the operating system

Run the following command to check the operating system information. The operating system must meet the requirements specified in the Software and hardware requirements section of the OceanBase Database documentation.

[root@test001 ~]# cat /etc/os-release

The following example shows the return result. The operating system is CentOS Linux (the NAME field) and the version is 8 (the VERSION field).

NAME="CentOS Linux"
VERSION="8"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="CentOS Linux 8"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:8"
HOME_URL="https://centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-8"
CENTOS_MANTISBT_PROJECT_VERSION="8"

Check the kernel

OceanBase Database provides installation packages for x86 architecture (el7 and el8) and ARM architecture (el7 and el8). Before you deploy OceanBase Database, you must check the kernel of the server to obtain the correct installation package.

Run the following command to check the kernel information:

[root@test001 ~]# uname -a

The following example shows the return result. The kernel is 4.18.0-348.7.1, the operating system version is el8, and the CPU architecture is x86_64. Therefore, you must use an installation package with the suffix el8.x86_64, such as oceanbase-ce-4.3.5.2-102020032025070315.el8.x86_64.rpm.

Linux test001 4.18.0-348.7.1.el8_5.x86_64 #1 SMP Wed Dec 22 13:25:12 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Preparations before deployment

To ensure the smooth installation and better usage of OceanBase Database Community Edition, the following configurations need to be made before deployment.

Note

Each OBServer node must be configured as described below.

Plan the directories

To deploy OceanBase Database Community Edition, you need to plan the following three directories. The file system type must be XFS or EXT4.

  • Installation directory: the directory for storing the software and system logs of OceanBase Database. The space must be at least 25 GB to ensure performance.
  • Log directory: the directory for storing the logs of OceanBase Database. The space must be at least twice the size of the memory. We recommend that the space be at least three times the size of the memory.
  • Data directory: the directory for storing data. The space must be at least twice the size of the memory. The space depends on the size of the data to be stored.

Notice

If the capacity of a directory in a mount point exceeds 16 TB, only the XFS file system is supported.

To ensure the stability of the system, we recommend that you use different physical disks for the three directories. If physical resources are limited, OceanBase Database supports the use of one disk for both the data directory and the log directory. However, we do not recommend this configuration for business scenarios with high write pressure.

The IOPS requirements for disks are as follows:

  • If the installation directory, log directory, and data directory are stored in different disks, the IOPS of each disk must be at least 1,000.
  • If the installation directory, log directory, and data directory are stored in the same disk, the IOPS of the disk must be at least 3,000.

Mount the disk

If your server does not have any disks that need to be mounted, or if all disks have been mounted, you can skip this step and proceed to the next step Prepare the directory.

Log in as the root user and perform the following steps to mount the disk:

  1. View the disk information

    1. Use the fdisk -l command to identify the available disks and partitions.

      [root@test001 ~]# fdisk -l
      

      The command output is as follows:

      Disk /dev/nvme0n1: 3.5 TiB, 3840755982336 bytes, 7501476528 sectors
      Units: sectors of 1 * 512 = 512 bytes
      Sector size (logical/physical): 512 bytes / 512 bytes
      I/O size (minimum/optimal): 4096 bytes / 4096 bytes
      
      Disk /dev/nvme1n1: 3.5 TiB, 3840755982336 bytes, 7501476528 sectors
      Units: sectors of 1 * 512 = 512 bytes
      Sector size (logical/physical): 512 bytes / 512 bytes
      I/O size (minimum/optimal): 4096 bytes / 4096 bytes
      
      Disk /dev/sda: 60 GiB, 64424509440 bytes, 125829120 sectors
      Units: sectors of 1 * 512 = 512 bytes
      Sector size (logical/physical): 512 bytes / 512 bytes
      I/O size (minimum/optimal): 512 bytes / 512 bytes
      Disklabel type: gpt
      Disk identifier: 3DC9B58D-90DC-4B90-869A-33592EA28B9E
      
      Device      Start       End   Sectors  Size Type
      /dev/sda1    2048      6143      4096    2M BIOS boot
      /dev/sda2    6144    415743    409600  200M EFI System
      /dev/sda3  415744 125829086 125413343 59.8G Linux filesystem
      
      
      Disk /dev/sdb: 200 GiB, 214748364800 bytes, 419430400 sectors
      Units: sectors of 1 * 512 = 512 bytes
      Sector size (logical/physical): 512 bytes / 512 bytes
      I/O size (minimum/optimal): 512 bytes / 512 bytes
      
    2. Use the lsblk command to view the disk information.

      [root@test001 ~]# lsblk
      

      The command output is as follows:

      NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
      sda       8:0    0   60G  0 disk
      ├─sda1    8:1    0    2M  0 part
      ├─sda2    8:2    0  200M  0 part /boot/efi
      └─sda3    8:3    0 59.8G  0 part /
      sdb       8:16   0  200G  0 disk /home
      sr0      11:0    1    4M  0 rom
      nvme0n1 259:0    0  3.5T  0 disk
      nvme1n1 259:0    0  3.5T  0 disk
      

    Based on the query results, the disks to be mounted are /dev/nvme0n1 and /dev/nvme1n1.

  2. Install the LVM tool

    [root@test001 ~]# yum install lvm2
    
  3. Create a physical volume (PV)

    1. Initialize the partition as a physical volume

      Notice

      When a partition is initialized as a physical volume, it will be reformatted (data will be lost). Proceed with caution.

      [root@test001 ~]# pvcreate /dev/nvme0n1
      [root@test001 ~]# pvcreate /dev/nvme1n1
      

      The command output is as follows:

      Physical volume "/dev/nvme0n1" successfully created.
      Physical volume "/dev/nvme1n1" successfully created.
      
    2. Verify the PV creation result

      [root@test001 ~]# pvs
      

      The command output is as follows:

      PV           VG Fmt  Attr PSize PFree
      /dev/nvme0n1    lvm2 ---  3.49t 3.49t
      /dev/nvme1n1    lvm2 ---  3.49t 3.49t
      
  4. Create a volume group (VG)

    1. Merge multiple physical volumes into one VG

      [root@test001 ~]# vgcreate vgob1 /dev/nvme0n1
      [root@test001 ~]# vgcreate vgob2 /dev/nvme1n1
      

      The command output is as follows:

      Volume group "vgob1" successfully created
      Volume group "vgob2" successfully created
      
    2. View the VG information

      [root@test001 ~]# vgs  
      

      The command output is as follows:

      VG   #PV #LV #SN Attr   VSize VFree
      vgob1  1   0   0 wz--n- 3.49t 3.49t
      vgob2  1   0   0 wz--n- 3.49t 3.49t
      
  5. Create a logical volume (LV)

    1. Divide the logical volume from the VG

      • Create a data logical volume

        [root@test001 ~]# lvcreate -L 2t -n data vgob1
        

        The command output is as follows:

        Logical volume "data" created.
        
      • Create a log logical volume

        [root@test001 ~]# lvcreate -L 2t -n log vgob2
        

        The command output is as follows:

        Logical volume "log" created.
        
    2. View the LV information

      [root@test001 ~]# lvs
      

      The command output is as follows:

      LV   VG    Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      data vgob1 -wi-a----- 2.00t
      log  vgob2 -wi-a----- 2.00t
      
  6. Format and mount

    1. Format as an EXT4 file system

      • Format the data logical volume as an EXT4 file

        [root@test001 ~]# mkfs.ext4 /dev/vgob1/data
        

        The command output is as follows:

        mke2fs 1.46.0 (29-Jan-2020)
        Discarding device blocks: done
        Creating filesystem with 268435456 4k blocks and 67108864 inodes
        Filesystem UUID: eb4708c8-e3e3-49b4-9444-b9c81d4be84e
        Superblock backups stored on blocks:
              32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
              4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
              102400000, 214990848
        
        Allocating group tables: done
        Writing inode tables: done
        Creating journal (262144 blocks): done
        Writing superblocks and filesystem accounting information: done
        
      • Format the log logical volume as an EXT4 file

        [root@test001 ~]# mkfs.ext4 /dev/vgob2/log
        

        The command output is as follows:

        mke2fs 1.46.0 (29-Jan-2020)
        Discarding device blocks: done
        Creating filesystem with 536870912 4k blocks and 134217728 inodes
        Filesystem UUID: c48c39cd-bdb9-4635-9304-721dcf013492
        Superblock backups stored on blocks:
              32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
              4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
              102400000, 214990848, 512000000
        
        Allocating group tables: done
        Writing inode tables: done
        Creating journal (262144 blocks): done
        Writing superblocks and filesystem accounting information: done
        
    2. Create a mount point

      [root@test001 ~]# mkdir -p /data/log1
      [root@test001 ~]# mkdir -p /data/1
      
    3. Temporarily mount

      [root@test001 ~]# mount /dev/vgob2/log /data/log1
      [root@test001 ~]# mount /dev/vgob1/data /data/1
      
  7. Set the automatic mount at boot.

    Edit the /etc/fstab file and add the mount configuration:

    [root@test001 ~]# vim /etc/fstab
    

    Add the following content to the configuration file:

    /dev/vgob2/log /data/log1  ext4  defaults,noatime,nodiratime,nodelalloc,barrier=0  0  0
    /dev/vgob1/data /data/1  ext4  defaults,noatime,nodiratime,nodelalloc,barrier=0  0  0
    
  8. View the disk mount status.

    Use the following command to view the disk mount status.

    [root@test001 ~]# df -h
    

    The command output is as follows, indicating that the disks have been mounted to the directories /data/1 and /data/log1.

    Filesystem             Size  Used Avail Use% Mounted on
    devtmpfs               4.8G     0  4.8G   0% /dev
    tmpfs                  4.8G     0  4.8G   0% /dev/shm
    tmpfs                  4.8G  500K  4.8G   1% /run
    tmpfs                  4.8G     0  4.8G   0% /sys/fs/cgroup
    /dev/sda3               59G  4.8G   52G   9% /
    /dev/sda2              200M  5.8M  195M   3% /boot/efi
    /dev/sdb               196G  3.2G  183G   2% /home
    tmpfs                  970M     0  970M   0% /run/user/1001
    /dev/mapper/vgob1-data 2.0T   28K  1.9T   1% /data/1
    /dev/mapper/vgob2-log  2.0T   28K  1.9T   1% /data/log1
    

Prepare the directories

  • Check the file system type to see whether it is EXT4 or XFS.

    [root@test001 ~]# df -Th
    

    The return result is as follows:

    Filesystem             Type      Size  Used Avail Use% Mounted on
    devtmpfs               devtmpfs  4.8G     0  4.8G   0% /dev
    tmpfs                  tmpfs     4.8G     0  4.8G   0% /dev/shm
    tmpfs                  tmpfs     4.8G  512K  4.8G   1% /run
    tmpfs                  tmpfs     4.8G     0  4.8G   0% /sys/fs/cgroup
    /dev/sda3              ext4       59G  5.0G   52G   9% /
    /dev/sdb               ext4      196G  113G   74G  61% /home
    /dev/sda2              vfat      200M  5.8M  195M   3% /boot/efi
    /dev/mapper/vgob2-log  ext4     2.0T  2.1G  1.9T   1% /data/log1
    /dev/mapper/vgob1-data ext4      2.0T  2.1G  1.9T   1% /data/1
    tmpfs                  tmpfs     970M     0  970M   0% /run/user/1001
    

    Based on the directory query result, set the installation directory to /home, the log storage directory to /data/log1, and the data storage directory to /data/1.

  • Check whether the IOPS of the directory meets the requirements.

    Note

    • Since the installation directory, log storage directory, and data storage directory are on different disks, you need to query the IOPS of each directory. If the installation directory, log storage directory, and data storage directory are on the same disk, you only need to switch to the mount directory of the disk and query the IOPS.

    • If the fio tool is not installed on the server, run the yum install -y fio command to install it.

    • Query the IOPS of the installation directory.

      Switch to the installation directory and run the following command:

      [root@test001 /home]# fio -filename=./testfile -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=4k -size=20G -numjobs=1 -runtime=180 -group_reporting -name=sqe_100write_4k --fsync=1 --fallocate=posix
      

      The return result is as follows:

      sqe_100write_4k: (g=0): rw=write, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=psync, iodepth=1
      fio-3.34
      Starting 1 thread
      Jobs: 1 (f=1): [W(1)][100.0%][w=6648KiB/s][w=1662 IOPS][eta 00m:00s]
      sqe_100write_4k: (groupid=0, jobs=1): err= 0: pid=145805: Thu May  8 10:39:32 2025
      write: IOPS=2012, BW=8051KiB/s (8244kB/s)(1415MiB/180001msec); 0 zone resets
         clat (usec): min=84, max=3732, avg=174.51, stdev=71.93
         lat (usec): min=84, max=3732, avg=174.77, stdev=71.98
         clat percentiles (usec):
         |  1.00th=[   89],  5.00th=[   90], 10.00th=[   91], 20.00th=[   95],
         | 30.00th=[  100], 40.00th=[  141], 50.00th=[  184], 60.00th=[  210],
         | 70.00th=[  221], 80.00th=[  231], 90.00th=[  265], 95.00th=[  285],
         | 99.00th=[  351], 99.50th=[  371], 99.90th=[  441], 99.95th=[  515],
         | 99.99th=[  824]
         bw (  KiB/s): min= 3432, max=17608, per=100.00%, avg=8056.18, stdev=4234.76, samples=359
         iops        : min=  858, max= 4402, avg=2014.04, stdev=1058.69, samples=359
      lat (usec)   : 100=30.58%, 250=57.09%, 500=12.28%, 750=0.04%, 1000=0.02%
      lat (msec)   : 2=0.01%, 4=0.01%
      fsync/fdatasync/sync_file_range:
         sync (usec): min=64, max=5690, avg=319.43, stdev=230.86
         sync percentiles (usec):
         |  1.00th=[   68],  5.00th=[   69], 10.00th=[   70], 20.00th=[   72],
         | 30.00th=[   95], 40.00th=[  194], 50.00th=[  379], 60.00th=[  412],
         | 70.00th=[  457], 80.00th=[  474], 90.00th=[  578], 95.00th=[  685],
         | 99.00th=[  996], 99.50th=[ 1205], 99.90th=[ 1336], 99.95th=[ 1385],
         | 99.99th=[ 1713]
      cpu          : usr=0.86%, sys=11.80%, ctx=714705, majf=0, minf=0
      IO depths    : 1=200.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
         submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
         complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
         issued rwts: total=0,362308,0,362308 short=0,0,0,0 dropped=0,0,0,0
         latency   : target=0, window=0, percentile=100.00%, depth=1
      
      Run status group 0 (all jobs):
      WRITE: bw=8051KiB/s (8244kB/s), 8051KiB/s-8051KiB/s (8244kB/s-8244kB/s), io=1415MiB (1484MB), run=180001-180001msec
      
      Disk stats (read/write):
      sdb: ios=0/935811, merge=0/335611, ticks=0/164939, in_queue=217509, util=99.97%
      

      After you complete the preceding steps, delete the testfile file in the directory to prevent insufficient disk space.

      [root@test001 /home]# rm -rf testfile
      
    • Query the IOPS of the log storage directory.

      Switch to the log storage directory and run the following command:

      [root@test001 /data/log1]# fio -filename=./testfile -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=4k -size=20G -numjobs=1 -runtime=180 -group_reporting -name=sqe_100write_4k --fsync=1 --fallocate=posix
      

      The return result is as follows:

      sqe_100write_4k: (g=0): rw=write, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=psync, iodepth=1
      fio-3.34
      Starting 1 thread
      Jobs: 1 (f=1): [W(1)][100.0%][w=6648KiB/s][w=1662 IOPS][eta 00m:00s]
      sqe_100write_4k: (groupid=0, jobs=1): err= 0: pid=145805: Thu May  8 10:39:32 2025
      write: IOPS=2012, BW=8051KiB/s (8244kB/s)(1415MiB/180001msec); 0 zone resets
         clat (usec): min=84, max=3732, avg=174.51, stdev=71.93
         lat (usec): min=84, max=3732, avg=174.77, stdev=71.98
         clat percentiles (usec):
         |  1.00th=[   89],  5.00th=[   90], 10.00th=[   91], 20.00th=[   95],
         | 30.00th=[  100], 40.00th=[  141], 50.00th=[  184], 60.00th=[  210],
         | 70.00th=[  221], 80.00th=[  231], 90.00th=[  265], 95.00th=[  285],
         | 99.00th=[  351], 99.50th=[  371], 99.90th=[  441], 99.95th=[  515],
         | 99.99th=[  824]
         bw (  KiB/s): min= 3432, max=17608, per=100.00%, avg=8056.18, stdev=4234.76, samples=359
         iops        : min=  858, max= 4402, avg=2014.04, stdev=1058.69, samples=359
      lat (usec)   : 100=30.58%, 250=57.09%, 500=12.28%, 750=0.04%, 1000=0.02%
      lat (msec)   : 2=0.01%, 4=0.01%
      fsync/fdatasync/sync_file_range:
         sync (usec): min=64, max=5690, avg=319.43, stdev=230.86
         sync percentiles (usec):
         |  1.00th=[   68],  5.00th=[   69], 10.00th=[   70], 20.00th=[   72],
         | 30.00th=[   95], 40.00th=[  194], 50.00th=[  379], 60.00th=[  412],
         | 70.00th=[  457], 80.00th=[  474], 90.00th=[  578], 95.00th=[  685],
         | 99.00th=[  996], 99.50th=[ 1205], 99.90th=[ 1336], 99.95th=[ 1385],
         | 99.99th=[ 1713]
      cpu          : usr=0.86%, sys=11.80%, ctx=714705, majf=0, minf=0
      IO depths    : 1=200.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
         submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
         complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
         issued rwts: total=0,362308,0,362308 short=0,0,0,0 dropped=0,0,0,0
         latency   : target=0, window=0, percentile=100.00%, depth=1
      
      Run status group 0 (all jobs):
      WRITE: bw=8051KiB/s (8244kB/s), 8051KiB/s-8051KiB/s (8244kB/s-8244kB/s), io=1415MiB (1484MB), run=180001-180001msec
      
      Disk stats (read/write):
      sdb: ios=0/935811, merge=0/335611, ticks=0/164939, in_queue=217509, util=99.97%
      

      After you complete the preceding steps, delete the testfile file in the directory to prevent insufficient disk space.

      [root@test001 /data/log1]# rm -rf testfile
      
    • Query the IOPS of the data storage directory.

      Switch to the data storage directory and run the following command:

      [root@test001 /data/1]# fio -filename=./testfile -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=4k -size=20G -numjobs=1 -runtime=180 -group_reporting -name=sqe_100write_4k --fsync=1 --fallocate=posix
      

      The return result is as follows:

      sqe_100write_4k: (g=0): rw=write, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=psync, iodepth=1
      fio-3.34
      Starting 1 thread
      Jobs: 1 (f=1): [W(1)][100.0%][w=6648KiB/s][w=1662 IOPS][eta 00m:00s]
      sqe_100write_4k: (groupid=0, jobs=1): err= 0: pid=145805: Thu May  8 10:39:32 2025
      write: IOPS=2012, BW=8051KiB/s (8244kB/s)(1415MiB/180001msec); 0 zone resets
         clat (usec): min=84, max=3732, avg=174.51, stdev=71.93
         lat (usec): min=84, max=3732, avg=174.77, stdev=71.98
         clat percentiles (usec):
         |  1.00th=[   89],  5.00th=[   90], 10.00th=[   91], 20.00th=[   95],
         | 30.00th=[  100], 40.00th=[  141], 50.00th=[  184], 60.00th=[  210],
         | 70.00th=[  221], 80.00th=[  231], 90.00th=[  265], 95.00th=[  285],
         | 99.00th=[  351], 99.50th=[  371], 99.90th=[  441], 99.95th=[  515],
         | 99.99th=[  824]
         bw (  KiB/s): min= 3432, max=17608, per=100.00%, avg=8056.18, stdev=4234.76, samples=359
         iops        : min=  858, max= 4402, avg=2014.04, stdev=1058.69, samples=359
      lat (usec)   : 100=30.58%, 250=57.09%, 500=12.28%, 750=0.04%, 1000=0.02%
      lat (msec)   : 2=0.01%, 4=0.01%
      fsync/fdatasync/sync_file_range:
         sync (usec): min=64, max=5690, avg=319.43, stdev=230.86
         sync percentiles (usec):
         |  1.00th=[   68],  5.00th=[   69], 10.00th=[   70], 20.00th=[   72],
         | 30.00th=[   95], 40.00th=[  194], 50.00th=[  379], 60.00th=[  412],
         | 70.00th=[  457], 80.00th=[  474], 90.00th=[  578], 95.00th=[  685],
         | 99.00th=[  996], 99.50th=[ 1205], 99.90th=[ 1336], 99.95th=[ 1385],
         | 99.99th=[ 1713]
      cpu          : usr=0.86%, sys=11.80%, ctx=714705, majf=0, minf=0
      IO depths    : 1=200.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
         submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
         complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
         issued rwts: total=0,362308,0,362308 short=0,0,0,0 dropped=0,0,0,0
         latency   : target=0, window=0, percentile=100.00%, depth=1
      
      Run status group 0 (all jobs):
      WRITE: bw=8051KiB/s (8244kB/s), 8051KiB/s-8051KiB/s (8244kB/s-8244kB/s), io=1415MiB (1484MB), run=180001-180001msec
      
      Disk stats (read/write):
      sdb: ios=0/935811, merge=0/335611, ticks=0/164939, in_queue=217509, util=99.97%
      

      After you complete the preceding steps, delete the testfile file in the directory to prevent insufficient disk space.

      [root@test001 /data/1]# rm -rf testfile
      

    Based on the query result, the IOPS of each disk meets the requirements.

Configure clock synchronization

When you deploy a distributed OceanBase cluster, you must ensure that the clocks of all servers in the cluster are synchronized. Otherwise, the cluster cannot be started, and services will run abnormally. The maximum allowed time deviation in an OceanBase cluster is 2 seconds. If the time deviation exceeds 2 seconds, no leader will be elected. After you restore the clock synchronization, you can restart the OceanBase cluster to restore normal operation.

Note

The following example shows how to configure clock synchronization for a single server. You must perform the following steps for all servers in the cluster.

  1. Install the chrony service.

    [root@test001 ~]# yum -y install chrony
    
  2. Configure the chrony file.

    [root@test001 ~]# vim /etc/chrony.conf
    

    Here is an example:

    # Use Alibaba NTP server
    # Public NTP
    # Alicloud NTP
    ##Use multiple NTP servers provided by Alibaba Cloud to synchronize time, thereby improving the reliability and fault tolerance of time synchronization.
    ##minpoll 4 indicates that the minimum synchronization interval between the NTP client and server is 16 seconds (when the time deviation is small).
    ##maxpoll 10 indicates that the maximum synchronization interval between the NTP client and server is 1024 seconds (when the time deviation is large).
    ##iburst indicates that 4 NTP packets are sent quickly (with a 2-second interval) when a connection is established for the first time or re-established, thereby accelerating time synchronization and reducing the initial synchronization time deviation.
    server ntp.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
    server ntp.aliyun.com minpoll 4 maxpoll 10 iburst
    server ntp1.aliyun.com minpoll 4 maxpoll 10 iburst
    server ntp1.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
    server ntp10.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
    server ntp11.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
    server ntp12.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
    server ntp2.aliyun.com minpoll 4 maxpoll 10 iburst
    server ntp2.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
    server ntp3.aliyun.com minpoll 4 maxpoll 10 iburst
    server ntp3.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
    server ntp4.aliyun.com minpoll 4 maxpoll 10 iburst
    server ntp4.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
    server ntp5.aliyun.com minpoll 4 maxpoll 10 iburst
    server ntp5.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
    server ntp6.aliyun.com minpoll 4 maxpoll 10 iburst
    server ntp6.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
    server ntp7.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
    server ntp8.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
    server ntp9.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
    
    # Ignore stratum in source selection.
    stratumweight 0.05
    
    # Record the rate at which the system clock gains/losses time.
    ##Calculate the rate at which the server gains or loses time based on the actual time and record the rate in /var/lib/chrony/drift. After the system restarts, the system makes the best time compensation adjustment.
    driftfile /var/lib/chrony/drift
    
    # Enable kernel RTC synchronization.
    ##Enable a kernel mode in which the system time is copied to the real-time clock (RTC) every 11 minutes.
    rtcsync
    
    # In the first three updates, the system clock is set instead of slew
    # if the adjustment is larger than 10 seconds.
    makestep 10 3
    
    # Allow NTP client access from local network.
    #allow 192.168/16
    
    # Listen for commands only on localhost.
    bindcmdaddress 127.0.0.1
    bindcmdaddress ::1
    
    # Disable logging of client accesses.
    noclientlog
    
    # Send a message to syslog if a clock adjustment is larger than 0.5 seconds.
    logchange 0.5
    
    ##Specify the directory for log files.
    logdir /var/log/chrony
    #log measurements statistics tracking
    
  3. Start the chronyd service.

    Set the chronyd service to start automatically when the system boots:

    [root@test001 ~]# systemctl enable chronyd
    

    Start the chronyd service:

    [root@test001 ~]# systemctl start chronyd
    
  4. Force time synchronization

    Run the following command to force time synchronization only after the initial configuration.

    [root@test001 ~]# chronyc makestep
    
  5. View the time tracking status

    [root@test001 ~]# chronyc tracking
    

    The following example shows the return result. You need to pay attention to the Last offset (last synchronization time deviation) and RMS offset (root mean square value of the average time deviation) fields. By comparing the values of these fields in the execution results of each server, you can determine the time deviation of each server.

    Reference ID    : 64643D58 (xx.xx.xx.xx)
    Stratum         : 2
    Ref time (UTC)  : Fri Jul 18 09:44:59 2025
    System time     : 0.000022816 seconds fast of NTP time
    Last offset     : -0.000012218 seconds
    RMS offset      : 0.000051287 seconds
    Frequency       : 6.951 ppm slow
    Residual freq   : -0.000 ppm
    Skew            : 0.010 ppm
    Root delay      : 0.000890165 seconds
    Root dispersion : 0.011471443 seconds
    Update interval : 1041.4 seconds
    Leap status     : Normal
    

User and parameter configuration

Before deployment, you need to perform the following configurations on the host:

  • Create a user

    Note

    It is not recommended to deploy OceanBase Database as the root user. We recommend that you create a user for deployment. We recommend that you use the admin user. The user must be the owner of the directories related to the database.

  • Configure limits.conf

  • Configure sysctl.conf

  • Disable the firewall and SELinux

obd allows you to initialize a host and its corresponding user by using the host commands. You can choose to configure the preceding parameters by using obd commands or manually. We recommend that you configure the parameters by using obd commands.

Use obd commands
Manually configure
  1. Install obd

    Run the following command to install obd online. You can also download the obd package from OceanBase Download Center and install it by using the package. For more information about how to install obd, see Install obd.

    Install yum-utils:

    [root@test001 ~]$ yum install -y yum-utils
    

    Add the OceanBase image source:

    [root@test001 ~]$ yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo
    

    Install obd. By default, the latest version is installed:

    [root@test001 ~]$ yum install -y ob-deploy
    

    Configure the application environment:

    [root@test001 ~]$ source /etc/profile.d/obd.sh
    

    Note

    If you want to deploy OceanBase Database Enterprise Edition, contact Technical Support to obtain the installation package. Then, run the obd mirror clone command to upload the installation package to the local image library of obd. After the installation package is uploaded, run the obd mirror list local command to view the installation package in the local image library.

  2. Create and initialize a user

    Note

    • The obd host user init command is a new command in obd V3.5.0. For more information, see the obd host user init section in Host Commands.

    • You also need to run the following commands to deploy and initialize a user on ODP nodes and other components.

    [root@test001 ~]$ obd host user init -u admin --host=10.10.10.1 -p ********
    

    The following example creates and initializes the admin user on the 10.10.10.1 host. You need to configure the user to be created and initialized (-u), the IP address of the host where the user is to be created (--host), and the user password (-p) based on your actual situation.

    When you run this command, obd will first try to log in to the target host (10.10.10.1) as the specified user (admin in this example). If the login fails, you need to provide a user with sudo privileges and the corresponding password. obd will then log in to the target host as the specified user and perform the following initialization operations on the user:

    • Set the ulimit parameter: Modify the system resource limit parameters. For more information, see Configure limits.conf in the OceanBase Database documentation. After the user is created, you can log in to the user on the target host and run the ulimit -a command to check whether the configuration takes effect.

    • Configure passwordless sudo privileges: Grant the specified user passwordless sudo privileges.

      Note

      Configuring passwordless sudo privileges facilitates operations. You can manually disable passwordless sudo privileges after the cluster is deployed.

    • Enable password login: Ensure that the user can log in to the system by using a password.

    • Modify the directory owner: If the /data/1 and /data/log1 directories exist on the target host, change the owner of the directories to the specified user.

  3. Initialize the host

    [root@test001 ~]$ obd host init admin 10.10.10.1 -p ********
    

    The following example logs in to the 10.10.10.1 host as the admin user and performs initialization. You need to configure the login user, the IP address of the host to be initialized, and the login user password (-p) based on your actual situation. For more information about the command, see the obd host init section in Host Commands.

    This command automatically modifies the recommended kernel parameters for deploying OceanBase Database, disables the firewall and SELinux features, changes the owner of the /data/1 and /data/log1 directories (if they exist), and installs the network component. For more information about the modified kernel parameters, see Configure sysctl.conf in the OceanBase Database documentation.

    The output is as follows:

    get system config ok
    +-------------------------------------------------------------------------------------------------+
    |                                   System Parameter Change List                                  |
    +---------------+-------------------------------------------+---------------+---------------------+
    | ip            | name                                      | current_value | expected_value      |
    +---------------+-------------------------------------------+---------------+---------------------+
    | 10.10.10.1    | fs.aio-max-nr                             | 65536         | 1048576             |
    | 10.10.10.1    | net.core.somaxconn                        | 128           | 2048                |
    | 10.10.10.1    | net.core.netdev_max_backlog               | 1000          | 10000               |
    | 10.10.10.1    | net.core.rmem_default                     | 212992        | 16777216            |
    | 10.10.10.1    | net.core.wmem_default                     | 212992        | 16777216            |
    | 10.10.10.1    | net.core.rmem_max                         | 212992        | 16777216            |
    | 10.10.10.1    | net.core.wmem_max                         | 212992        | 16777216            |
    | 10.10.10.1    | net.ipv4.conf.default.rp_filter           | 0             | 1                   |
    | 10.10.10.1    | net.ipv4.conf.default.accept_source_route | 1             | 0                   |
    | 10.10.10.1    | net.ipv4.tcp_rmem                         | 6291456       | 4096 87380 16777216 |
    | 10.10.10.1    | net.ipv4.tcp_wmem                         | 16384         | 4096 65536 16777216 |
    | 10.10.10.1    | net.ipv4.tcp_max_syn_backlog              | 1024          | 16384               |
    | 10.10.10.1    | net.ipv4.tcp_fin_timeout                  | 60            | 15                  |
    | 10.10.10.1    | vm.min_free_kbytes                        | 67584         | 2097152             |
    | 10.10.10.1    | fs.file-max                               | 3205772       | 6573688             |
    | 10.10.10.1    | fs.pipe-user-pages-soft                   | 16384         | 0                   |
    | 10.10.10.1    | vm.max_map_count                          | 65530         | 655360              |
    | 10.10.10.1    | nofile                                    | 65535         | 655350              |
    +---------------+-------------------------------------------+---------------+---------------------+
    chown dir ok
    modify system parameters
    10.10.10.1: ( fs.aio-max-nr,net.core.somaxconn,net.core.netdev_max_backlog,net.core.rmem_default,net.core.wmem_default... ) have been successfully modified!
    You must reboot the following servers to ensure the ulimit parameters take effect: (10.10.10.1).
    Trace ID: f9491158-71db-11f0-81f0-00163e513302
    If you want to view detailed obd logs, please run: obd display-trace f9491158-71db-11f0-81f0-00163e513302
    
  4. View the admin user

    [root@test001 ~]$ sudo -l -U admin
    

    The following result indicates that the admin user has passwordless sudo privileges.

    Matching Defaults entries for admin on test001:
        !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE
        KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION
        LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE
        LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
    
    User admin may run the following commands on test001:
        (ALL) NOPASSWD: ALL
    
    
  5. Verify whether the ulimit configuration takes effect

    Run the following command as the admin user to check whether the configuration takes effect.

    [admin@test001 ~]# ulimit -a
    

    The output is as follows:

    core file size          (blocks, -c) unlimited
    data seg size           (kbytes, -d) unlimited
    scheduling priority             (-e) 0
    file size               (blocks, -f) unlimited
    pending signals                 (-i) 252876
    max locked memory       (kbytes, -l) 64
    max memory size         (kbytes, -m) unlimited
    open files                      (-n) 655350
    pipe size            (512 bytes, -p) 8
    POSIX message queues     (bytes, -q) 819200
    real-time priority              (-r) 0
    stack size              (kbytes, -s) unlimited
    cpu time               (seconds, -t) unlimited
    max user processes              (-u) 655360
    virtual memory          (kbytes, -v) unlimited
    file locks                      (-x) unlimited
    

    In the preceding query result, pay attention to the following fields:

    • core file size specifies the maximum threshold (in blocks) for core files, corresponding to the core parameter in the limits.conf configuration file. Check if the value is unlimited.

    • open files specifies the maximum number of open file descriptors, corresponding to the nofile parameter in the limits.conf configuration file. Check if the value is 655350.

    • stack size specifies the stack size (in kilobytes), corresponding to the stack parameter in the limits.conf configuration file. Check if the value is unlimited.

    • max user processes specifies the maximum number of user processes, corresponding to the nproc parameter in the limits.conf configuration file. Check if the value is 655360.

  6. Verify other configurations

    You can execute the obd host precheck command to check whether the host meets the requirements. This command checks for kernel parameters in the sysctl.conf file that differ from the recommended values, whether the firewall and SELinux features are disabled, and whether the owners of the /data/1 and /data/log1 directories are the specified users. For more information, see the obd host precheck section in Host commands.

    obd host precheck admin 10.10.10.1 -p ********
    

    If all checks pass, the output is as follows:

    get system config ok
    No need to change system parameters
    Please run `obd host user init -u admin --host=10.10.10.1` to init user.
    Please run `obd host init admin 10.10.10.1 -p *******` to init host.
    Trace ID: 22baecfe-71d8-11f0-9467-00163e513302
    If you want to view detailed obd logs, please run: obd display-trace 22baecfe-71d8-11f0-9467-00163e513302
    

    If any checks fail, the corresponding information will be displayed in the output. You can execute the obd host user init or obd host init command to initialize the host. An example of a failed check is as follows:

    get system config ok
    [WARN] The owner of the ['/data/1', '/data/log1'] directory is not admin.
    No need to change system parameters
    Please run `obd host user init -u admin --host=10.10.10.1` to init user.
    Please run `obd host init admin 10.10.10.1 -p *******` to init host.
    Trace ID: 4dcae674-7be2-11f0-a2bc-00163e53f118
    If you want to view detailed obd logs, please run: obd display-trace 4dcae674-7be2-11f0-a2bc-00163e53f118
    

Create a user

It is not recommended to deploy the OceanBase cluster as the root user. We recommend that you create another user for deployment. The admin user is recommended. The user must be the owner of the directories related to the database.

Note

You also need to create a deployment user for the ODP node and other component nodes based on this section.

  1. Execute the following commands to create the admin user group and the admin user.

    [root@test001 ~]# useradd -U admin -d /home/admin -s /bin/bash
    
  2. Execute the following command to set a password for the admin user.

    [root@test001 ~]# passwd admin
    
  3. Set sudo privileges for the admin user.

    Note

    Granting sudo privileges to the admin user is not mandatory. It is just for convenience in some situations. You can decide whether to perform this operation based on your enterprise security standards.

    Add write permissions to the /etc/sudoers file:

    [root@test001 ~]# chmod u+w /etc/sudoers
    

    Execute the following command to open the /etc/sudoers file:

    [root@test001 ~]# vim /etc/sudoers
    

    Add the following content at the end of the /etc/sudoers file:

    ## Same thing without a password
    # %wheel        ALL=(ALL)       NOPASSWD: ALL
    admin       ALL=(ALL)       NOPASSWD: ALL
    
  4. View the status of the admin user.

    sudo -l -U admin
    

    The following result indicates that the admin user has sudo privileges without a password.

    Matching Defaults entries for admin on test001:
        !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE
        KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION
        LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE
        LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
    
    User admin may run the following commands on test001:
        (ALL) NOPASSWD: ALL
    
  5. Set directory permissions.

    The user deploying OceanBase Database must be the owner of the directories related to the database. Execute the following command to change the owner of the directory corresponding to the disk mount to admin.

    [root@test001 ~]# chown -R admin:admin /data/log1
    [root@test001 ~]# chown -R admin:admin /data/1
    
  6. Verify the directory permissions.

    Switch to the /data directory and check the directory permissions.

    [root@test001 /data]# ls -al
    

    The following result indicates that the owners of the /data/1 and /data/log1 directories are the admin user.

    total 20
    drwxr-xr-x   5 root  root  4096 Apr 29 15:39 .
    dr-xr-xr-x. 20 root  root  4096 Apr 29 15:39 ..
    drwxr-xr-x   2 root  root  4096 Apr 28 15:28 0
    drwxr-xr-x   3 admin admin 4096 Apr 29 15:25 1
    drwxr-xr-x   3 admin admin 4096 Apr 29 15:25 log1
    

Configure limits.conf

Configure the limits.conf file as the admin user. The specific steps are as follows:

  1. Open the /etc/security/limits.conf file for configuration.

    [admin@test001 ~]# sudo vim /etc/security/limits.conf
    

    Add the following content to the /etc/security/limits.conf file:

    * soft nofile 655350
    * hard nofile 655350
    * soft stack unlimited
    * hard stack unlimited
    * soft nproc 655360
    * hard nproc 655360
    * soft core unlimited
    * hard core unlimited
    
  2. Restart the server.

    [admin@test001 ~]# sudo reboot
    
  3. Connect to the server again and execute the following command to check whether the configuration is effective.

    [admin@test001 ~]# ulimit -a
    

    The output is as follows:

    core file size          (blocks, -c) unlimited
    data seg size           (kbytes, -d) unlimited
    scheduling priority             (-e) 0
    file size               (blocks, -f) unlimited
    pending signals                 (-i) 252876
    max locked memory       (kbytes, -l) 64
    max memory size         (kbytes, -m) unlimited
    open files                      (-n) 655350
    pipe size            (512 bytes, -p) 8
    POSIX message queues     (bytes, -q) 819200
    real-time priority              (-r) 0
    stack size              (kbytes, -s) unlimited
    cpu time               (seconds, -t) unlimited
    max user processes              (-u) 655360
    virtual memory          (kbytes, -v) unlimited
    file locks                      (-x) unlimited
    

    In the query result, check the following fields:

    • core file size specifies the maximum threshold (in blocks) for core files, corresponding to the core parameter in the limits.conf configuration file. Check if the value is unlimited.

    • open files specifies the maximum number of open file descriptors, corresponding to the nofile parameter in the limits.conf configuration file. Check if the value is 655350.

    • stack size specifies the stack size (in kilobytes), corresponding to the stack parameter in the limits.conf configuration file. Check if the value is unlimited.

    • max user processes specifies the maximum number of user processes, corresponding to the nproc parameter in the limits.conf configuration file. Check if the value is 655360.

Configure sysctl.conf

Execute the following command as the admin user to open the /etc/sysctl.conf file:

[admin@test001 ~]# sudo vim /etc/sysctl.conf

Add the following content to the /etc/sysctl.conf file:


# for oceanbase

## Modify the kernel asynchronous I/O limit

fs.aio-max-nr = 1048576

## Network optimization

net.core.somaxconn = 2048
net.core.netdev_max_backlog = 10000
net.core.rmem_default = 16777216
net.core.wmem_default = 16777216
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216

net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_slow_start_after_idle=0

vm.swappiness = 0
vm.min_free_kbytes = 2097152
vm.overcommit_memory = 0

fs.file-max = 6573688
fs.pipe-user-pages-soft = 0

# Change the number of virtual memory areas that can be mapped by a process

vm.max_map_count = 655360

# Set the filename format and directory for core files

kernel.core_pattern = /data/core-%e-%p-%t

After you change the configuration, run the following command to load the configuration and make it take effect.

[admin@test001 ~]# sudo sysctl -p

Note

When the value of the kernel parameter net.ipv4.ip_forward is set to 0, the IP forwarding feature of the system is disabled. When OceanBase Database is deployed together with other Docker containers on the same host, this setting will block communication between the containers and the external network, as Docker containers rely on the host's IP forwarding for network connectivity. We recommend that you enable IP forwarding by running the following commands:

  • Temporarily enable IP forwarding: sysctl -w net.ipv4.ip_forward=1
  • Permanently enable IP forwarding: Set net.ipv4.ip_forward=1 in the /etc/sysctl.conf file and run sysctl -p to apply the changes.

Disable the firewall and SELinux

Continue to run the following commands as the admin user to disable the firewall and SELinux.

  • Disable the firewall

    Run the following commands in sequence to disable the firewall:

    [admin@test001 ~]# sudo systemctl disable firewalld 
    [admin@test001 ~]# sudo systemctl stop firewalld
    

    After the firewall is disabled, run the systemctl status firewalld command to check the status. The output should be as follows:

    firewalld.service - firewalld - dynamic firewall daemon
    Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
    Active: inactive (dead)
      Docs: man:firewalld(1)
    
  • Disable SELinux

    Run the following command to open the /etc/selinux/config configuration file:

    [admin@test001 ~]# sudo vim /etc/selinux/config
    

    In the /etc/selinux/config configuration file, modify the corresponding configuration item to the following content:

    SELINUX=disabled
    

    Run the following command or restart the server to make the changes take effect:

    [admin@test001 ~]# setenforce 0
    

    Run the following command to check whether the changes take effect:

    sestatus
    

    The following result indicates that SELinux is disabled:

    SELinux status:                 disabled
    

Configure password-free SSH login

As the admin user, configure password-free SSH login from the machine where obd is installed (the central control node) to the local machine and each component node.

Note

  • ODP nodes and other component nodes also need to configure password-free SSH login from the central control node to each node.

  • Configure password-free SSH login for convenience. If the admin user passwords of all nodes are the same, you can skip this step and log in by using the password verification method.

  1. Check whether the key exists on the central control node.

    [admin@test001 ~]# ls ~/.ssh/id_rsa.pub
    
  2. (Optional) Generate an SSH public key and a private key

    If no key exists on the machine where obd is installed, run the following command to generate an SSH public key and a private key. Press the Enter key to use the default values.

    [admin@test001 ~]# ssh-keygen -t rsa
    
  3. Copy the public key to the authorized_keys file of the OBServer node.

    [admin@test001 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub admin@10.10.10.1
    

    You need to copy the public key to the central control node and each cluster node. Here, we use 10.10.10.1 as an example.

Configure load balancing

Starting from obd V3.3.0, you can configure load balancing (VIP/DNS) when you deploy ODP by using the graphical interface. If you plan to deploy multiple ODP nodes, you can configure load balancing for ODP as described in this section.

F5 BIG-IP Local Traffic Manager (LTM) is an application traffic management system. You can connect multiple ODP nodes to F5 to implement load balancing for ODP. You can use the LTM layer 4 feature as described in the following steps to configure the port for ODP to provide services.

Note

Before you perform the following steps, make sure that you have completed the configuration of F5 BIG-IP and activated the license. Make sure that you have confirmed the IP address of F5 (the default IP address is 192.168.1.245). Make sure that you have confirmed the IP address and port of the ODP server.

  1. Log in to F5 BIG-IP by using the username and password. The default username and password are admin/admin.

    image.png

  2. Create Pools:

    1. Click Local Traffic>Monitors and add a Monitor of the TCP Half Open type.

      11121742

    2. Click Local Traffic>Pools and click + to create a pool.

      11121749

    3. In the Available list, select the Monitor created in step a and move it to the Active list.

      c

    4. Scroll down and select New Node. Enter the IP address and port of the ODP server in the Address and Service Port fields.

    5. Click Add. You can add multiple nodes. After you finish, click Finished.

      e

    6. On the Local Traffic>Pools>Pool List page, check whether the status of each Member is green.

      f

  3. Click Local Traffic>Profiles>FastL4 and add a profile. Set the Type of the layer 4 mode to Performance(Layer 4). Do not enable session persistence. Set Idle Timeout to a value greater than or equal to 1800 seconds.

    c

  4. Click Local Traffic>Virtual Servers and add a server.

    11121752

    1. Enter the following information. 4.a

      Parameter
      Description
      Type Performance(Layer 4)
      Source Address 0.0.0.0/0
      Destination Address/Mask The VIP or self IP, for example: 10.10.10.5
      Service Port Port, which is customer-defined
      Protocol Profile(Client) Select the profile you added in step 3
    2. On the pull-down menu, select Auto Map for Source Address Translation.

      11121755

    3. Default Pool Select the pool created in step 2.

      4.3

    4. Click Finished.

    5. Once the status of the newly created virtual server is green in the Virtual Server List tab of the Local Traffic > Virtual Servers page, the virtual server has been added successfully.

      5.e

  5. After creating the ODP instance, choose a host that is connected to the F5 and ODP host networks. Run the telnet 10.10.10.1 2883 and telnet 10.10.10.5 3306 commands. If you see the following output, the ODP instance has successfully connected to the F5 instance.

    Connected to xx.xx.x.xxx.Escape character is '^]'.
    

Deploy a cluster by using OBD grafana interface

  1. (Optional) Install the obd tool.

    Note

    If Manual configuration is selected for User and parameter configuration, install obd based on this procedure.

    You can execute the following command to install obd online. You can also download obd packages from OceanBase Download Center and install them. For more information about how to install obd, see Install obd.

    Install yum-utils:

    [admin@test001 ~]$ sudo yum install -y yum-utils
    

    Add the OceanBase image source:

    [admin@test001 ~]$ sudo yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo
    

    To install obd, enter the following command:

    [admin@test001 ~]$ sudo yum install -y ob-deploy
    

    Configure the application environment:

    [admin@test001 ~]$ source /etc/profile.d/obd.sh
    

    Explanation

    To deploy OceanBase Database Enterprise Edition, contact Technical Support to obtain the installation package, and execute the obd mirror clone command to upload it to the local image library of obd. After uploading, execute the obd mirror list local command to view the installation packages in the local image library.

  2. Use the graphical user interface to deploy the application.

    Run the obd web command at the command line to start the graphical interface.

    [admin@test001 ~]$ obd web
    start OBD WEB in 0.0.0.0:8680
    please open http://xxx.xxx.xxx.250:8680
    

    Overview

    • The GUI service listens on the 8680 port by default. You can run the obd web -p <PORT> command to specify the port, which must be in the [1025, 65535] range.

    • In an Alibaba Cloud or other cloud environment, the system may output an internal network address when it fails to obtain a public IP address. This is not a public IP address, so please access the graphical interface using the correct address.

    • When you use the obd web command, the OBD Web UI is bound to the IP address of the network interface. If the OBD server is deployed on a multinet host, you can access the OBD Web UI through any accessible IP address.

    • You can use the nohup or screen command to run the obd web command in the background.

  3. On the graphical interface, click Start your journey.

  4. Go to the deployment page of OceanBase Database.

    In the Welcome to OceanBase Deployment Wizard page that appears, select the OceanBase Database and Tools module and click Install. The database deployment page appears.

  5. Deploy configuration

    On the Deployment Configuration page, configure the cluster name and the components to be deployed. By default, the Deployment Configuration page is displayed as follows.

    1. Cluster Configuration

    2. Component Selection

    Click Next to go to the Node Configuration page.

  6. Node configuration

    In the Node Configuration interface, configure the database, deploy users, and software installation path. The Node Configuration interface is as follows.

    After you configure the required parameters, click Next to go to the Cluster Configuration page.

  7. Cluster configuration

    In the Cluster Configuration interface, you can configure the cluster, including the administrator password of the system tenant (root@sys), the data and log directories, the ports and parameters of the database and components, etc. The specific settings are shown in the following figure.

    • Cluster configurations

      Note

      For this example, the cluster mode configuration uses the maximum occupancy. When deploying, users can choose between maximum and minimum occupancy based on their requirements.

    • Component Configuration

    After all configurations are completed, click Next to go to the Pre-check page.

  8. Configuration confirmation

    On the Configuration confirmation page, you can view all configuration information. If you find any issues, click Previous to make modifications. After confirming that everything is correct, click Next to proceed to the Pre-check step. The system will verify whether your environment and configurations meet all the requirements for deploying an OceanBase cluster.

    When the Deployment mode is set to Distributed and the number of configured zones is greater than or equal to 2, the Configuration confirmation page will display a cluster topology diagram. You can click Topology to view it.

  9. Pre-check

    On the Pre-check page, you can view all configuration information. If you find any issues, click Previous to make modifications. After confirming that everything is correct, click Pre-check to proceed.

    If the pre-check fails, you can choose Automatic Fix (for fixable items) or click View More Solutions to jump to the error code documentation for further modifications. After all errors are fixed, click Recheck to perform the pre-check again.

    If the pre-check is successful, click Deploy to start deploying OceanBase Database.

  10. Deployment

    After the OceanBase cluster is deployed, click Copy to copy and save the access address and account password.

    After saving the information, click the Create Business Tenant button in the lower-right corner of the deployment success page to proceed to the tenant creation process.

  11. Create a business tenant

    On the Create Business Tenant page, configure the corresponding parameters and click Next: Create Business Tenant. The system will then create the corresponding tenant.

    Note

    In this example, the tenant is configured with the maximum specifications. In actual deployment, you can choose the maximum, minimum, or custom specifications based on your requirements.

    After the tenant is created, the page will display the business tenant information, including the tenant name, root user password, and connection string. Click the Copy button next to Tenant Root Password and Connection String to copy and save the corresponding information.

    After saving the information, click the Exit button in the lower-left corner to exit the tenant creation process. Then, click the Exit button on the deployment result page to exit the deployment process.

Verify the deployment result

In the command-line interface, use the connection string provided in the deployment result to connect to the corresponding tenant in OceanBase Database.

  • Log in to the sys tenant

    Use the connection string provided in the deployment result to log in to the sys tenant of OceanBase Database.

    obclient -h10.10.10.1 -P2881 -uroot@sys -p'******' -Doceanbase -A
    

    The return result is as follows:

    Welcome to the OceanBase.  Commands end with ; or \g.
    Your OceanBase connection id is 3221540622
    Server version: OceanBase_CE 4.5.0.0 (r100000012025112711-0e8d5ad012baf0953b2032a35a88bdf8886e9a7a) (Built Nov 27 2025 12:06:16)
    
    Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    obclient(root@sys)[oceanbase]>
    
  • Log in to the created business tenant

    obclient -h10.10.10.1 -P'2881' -p'********' -uroot@test_a -Doceanbase -A
    

    The return result is as follows:

    Welcome to the OceanBase.  Commands end with ; or \g.
    Your OceanBase connection id is 3221547518
    Server version: OceanBase_CE 4.3.5.3 (r103010012025090210-8b80b225c2dcba7dd0c83f3d5a24e3c1ffc03f24) (Built Sep  2 2025 10:25:24)
    
    Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    obclient(root@test_a)[oceanbase]>
    

If you can connect to the database, the deployment is successful.

More information

  • For more information about deploying OceanBase Database using the graphical interface, see Deploy an OceanBase cluster.

  • For more information about connecting to OceanBase Database, see the Connect to OceanBase Database section.

Previous topic

Interactive deployment of OceanBase Database Community Edition
Last

Next topic

Deploy a Community Edition cluster by using an obd configuration file
Next
What is on this page
Server configuration
Deployment mode
Check the server's hardware and software configuration
Hardware environment
Software environment
Preparations before deployment
Plan the directories
Configure clock synchronization
User and parameter configuration
Configure password-free SSH login
Configure load balancing
Deploy a cluster by using OBD grafana interface
Verify the deployment result
More information