This topic describes how to Deploy OceanBase Database on a single OBServer node by using OceanBase Deployer (obd). The example provided in this topic is for your reference only. We recommend that you do not apply it to a production environment of OceanBase Database.
Note
For more information about how to deploy an OceanBase cluster on the GUI of obd, see Deploy an OceanBase cluster on the GUI.
For more information about how to deploy a multi-node cluster by using obd, see Deploy OceanBase Database in a production environment by using the CLI.
Terms
Central control server: the server that stores the installation package of OceanBase Database and the cluster configuration information.
Target server: the server that hosts the OceanBase cluster.
Prerequisites
Make sure that the following conditions are met:
At least 2 vCPUs, 6 GB of memory, and 20 GB of disk space are available for deploying OceanBase Database only.
The machines used to deploy the OceanBase Database must support the AVX instruction set (this requirement applies only to x86 architecture servers). You can check if AVX is supported by running the command
lscpu | grep Flags | grep avx.You have installed obd (latest version recommended) on your server. For more information, see Install obd.
You have installed OceanBase Command-Line Client (OBClient) on your server. For more information, see OBClient documentation.
Note
- If your server cannot connect to the Internet, we recommend that you install obd by using the OceanBase All in One package. The package provides all required components (except obbinlog) and the components have passed adaptation tests.
Installing the OceanBase All in One package automatically installs obd and OBClient. If you plan to install obd by using the OceanBase All in One package, you can ignore all requirements except the resource requirements in the prerequisites.
Procedure
Step 1: Configure obd
Before you deploy the OceanBase cluster, we recommend that you switch to a non-root user for data security.
If your server cannot connect to the Internet, you can download the installation package of the desired version for a component from OceanBase Download Center. Then, copy the package to any directory on the server and perform the following steps to configure obd.
If your server can connect to the Internet and remote image repositories are not disabled, skip Step 1 and directly specify the component versions in the configuration file.
Note
After obd is installed by using the OceanBase All in One package, remote image repositories are disabled by default. You can run the obd mirror enable remote command to enable remote image repositories.
Disable remote image repositories.
[admin@test001 rpm]$ obd mirror disable remoteRun the
obd mirror listcommand to confirm whether remote image repositories are disabled. If the values in theEnabledcolumn of the two oceanbase.xxx rows areFalse, the remote image sources are disabled. Here is an example:+-----------------------------------------------------------------------------+ | Mirror Repository List | +----------------------------+--------+---------+----------+------------------+ | SectionName | Type | Enabled | Available| Update Time | +----------------------------+--------+---------+----------+------------------+ | local | local | - | True | 2025-02-19 15:56 | | oceanbase.community.stable | remote | False | False | 2025-02-19 15:54 | | oceanbase.development-kit | remote | False | False | 2025-02-19 15:54 | +----------------------------+--------+---------+----------+------------------+Add the installation package to the local image repository.
[admin@test001 rpm]$ obd mirror clone *.rpmQuery the list of installation packages in the local image repository.
[admin@test001 rpm]$ obd mirror list local
Step 2: Modify the configuration file
If you have installed obd by downloading the RPM package for obd, you can view the sample configuration files in the /usr/obd/example directory.
If you have installed obd by using the all-in-one installation package, you can view the sample configuration files in the ~/.oceanbase-all-in-one/obd/usr/obd/example directory.
For the differences between the sample configuration files, see the Sample configuration files section in Configuration files. Select the corresponding configuration file based on your resource conditions.
Note
Complete Sample configuration files for deploying a standalone OceanBase cluster are provided at the end of this topic. You can directly copy a sample configuration file and modify it.
The following uses mini-single-example.yaml, a configuration file for standalone deployment in small-scale development mode, as an example to describe how to modify the configuration file.
Note
You must modify related parameters based on the actual environment.
Modify user information.
## Only need to configure when remote login is required user: username: admin # password: your password if need key_file: /home/admin/.ssh/id_rsa # port: your ssh port, default 22 # timeout: ssh connection timeout (second), default 30usernamespecifies the username of the account used to log in to the target server. Make sure that this account has the write permission onhome_path.passwordandkey_fileare used for user verification. Generally, you need to specify only one of them.Notice
After you specify the path of the key, comment out or delete the
passwordparameter if your key does not require a password. Otherwise, the value of thepasswordparameter will be taken as the password of the key and used for login, leading to a login verification failure.Modify the IP address, port, and related directories of each server, and specify memory-related parameters and the password of the root@sys user.
oceanbase-ce: # version: 4.3.5.0 servers: - name: server1 ip: 10.10.10.1 global: # Please set devname as the network adaptor's name whose ip is in the setting of severs. # if set severs as "127.0.0.1", please set devname as "lo" # if current ip is 192.168.1.10, and the ip's network adaptor's name is "eth0", please use "eth0" devname: eth0 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: 2G # Size of the data file. datafile_next: 2G # the auto extend step. Please enter an capacity, such as 2G datafile_maxsize: 20G # the auto extend max size. Please enter an capacity, such as 20G log_disk_size: 14G # The size of disk space used by the clog files. cpu_count: 16 scenario: htap 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. production_mode: false # 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: /data # The directory for clog, ilog, and slog. The default value is the same as the data_dir value. redo_dir: /redo root_password: ****** # root user password, can be empty zone: zone1For more information about the parameters in configuration files, see the Parameters section in Configuration files. Take note of the following considerations:
If you do not specify a password in the configuration file, obd automatically generates a random password. After the deployment is completed, you can run the
obd cluster edit-configcommand to view the password in the configuration file.If you do not specify the
scenarioparameter in the configuration file when you deploy OceanBase Database V4.3.0 or later, obd provides interactive options for you to select a load type.To deploy a standalone OceanBase cluster on multiple nodes, you can configure the same IP address for multiple servers in the
oceanbase-ce > serverssection of the configuration file. Make sure that the servers use different ports and directories. For more information, see Sample configuration files.
Step 3: Deploy OceanBase Database
Note
For more information about the commands used in this section, see Cluster commands.
Deploy the OceanBase cluster.
[admin@test001 ~]$ obd cluster deploy obtest -c mini-single-example.yamlHere is an example of deploying the
obtestcluster by using themini-single-example.yamlconfiguration file. You can define the cluster name and select a configuration file as needed.The preceding command will check whether the directories specified by
home_pathanddata_dirare empty, and returns an error if not. If all the content in these directories can be deleted, you can add the-foption to forcibly purge the directories.Start the OceanBase cluster.
[admin@test001 ~]$ obd cluster start obtestQuery the status of the OceanBase cluster.
[admin@test001 ~]$ obd cluster display obtest
Step 4: Connect to OceanBase Database
Run the following command to connect to OceanBase Database by using OBClient:
obclient -h<IP> -P<PORT> -uroot@sys -p
Here, IP specifies the IP address of the OBServer node, and PORT specifies the port for connecting to OceanBase Database. The port number is the value of mysql_port in the case of direct connection and is 2881 by default. If you changed the port, use the actual port number here.
Note
After the OceanBase cluster is deployed, we recommend that you create a business tenant for business operations. The sys tenant is intended only for cluster management and is unsuitable for business scenarios. You can run the obd cluster tenant create command to create a tenant, or connect to OceanBase Database and then create a tenant by using SQL statements. For more information about obd commands, see Cluster commands. For more information about how to create a tenant by using SQL statements, see Create a tenant.
Related operations
You can run the following commands to manage a cluster deployed by using obd. For more information, see Cluster commands.
View the cluster list.
obd cluster listView the status of a cluster. Here is an example of viewing the status of the
obtestcluster.obd cluster display obtestModify cluster parameters.
OceanBase Database has hundreds of parameters and some are coupled. We recommend that you do not modify parameters in the sample configuration file before you become familiar with OceanBase Database.
Open the configuration file and modify the cluster parameters.
obd cluster edit-config obtestAfter you modify and save the configurations and exit, obd will prompt how to validate the modifications. Copy the command provided in the output. The output after you save the modifications is as follows:
Search param plugin and load ok Search param plugin and load ok Parameter check ok Save deploy "obtest" configuration Use `obd cluster reload obtest` to make changes take effect.You can run the
obd cluster reload obtestcommand provided in the preceding output for the modifications to take effect.Create a user tenant. Here is an example of creating the
testtenant in theobtestcluster.obd cluster tenant create obtest -n test --max-cpu=2 --memory-size=2G --log-disk-size=3G --max-iops=10000 --iops-weight=2 --unit-num=1 --charset=utf8 -o htap -s 'ob_tcp_invited_nodes="%"'Stop a running cluster. Here is an example of stopping the
obtestcluster.obd cluster stop obtestDestroy a deployed cluster. Here is an example of destroying the
obtestcluster.obd cluster destroy obtest
Sample configuration files
user:
username: admin
password: ********
# key_file: /home/admin/.ssh/id_rsa
oceanbase-ce:
# version: 4.3.5.0
servers:
- name: server1
ip: 10.10.10.1
global:
devname: eth0
cluster_id: 1
memory_limit: 6G
system_memory: 1G
datafile_size: 2G
datafile_next: 2G
datafile_maxsize: 20G
log_disk_size: 14G
cpu_count: 16
scenario: htap
mysql_port: 2881
rpc_port: 2882
obshell_port: 2886
production_mode: false
home_path: /home/admin/observer
data_dir: /data/date
redo_dir: /data/redo
root_password: ******
zone: zone1
user:
username: admin
password: ********
# key_file: /home/admin/.ssh/id_rsa
oceanbase-ce:
servers:
- name: server1
ip: 10.10.10.1
- name: server2
ip: 10.10.10.1
- name: server3
ip: 10.10.10.1
global:
devname: eth0
cluster_id: 1
memory_limit: 6G # The maximum running memory for an observer
system_memory: 1G # The reserved system memory. system_memory is reserved for general tenants.
datafile_size: 2G # Size of the data file.
datafile_next: 2G
datafile_maxsize: 20G
log_disk_size: 14G
production_mode: false
scenario: htap
appname: obdemo
root_password: ********
server1:
zone: zone1
mysql_port: 3881
rpc_port: 3882
obshell_port: 3886
home_path: /home/admin/observer1
data_dir: /data/data1
redo_dir: /data/redo1
server2:
zone: zone2
mysql_port: 4881
rpc_port: 4882
obshell_port: 4886
home_path: /home/admin/observer2
data_dir: /data/data2
redo_dir: /data/redo2
server3:
zone: zone3
mysql_port: 5881
rpc_port: 5882
obshell_port: 5886
home_path: /home/admin/observer3
data_dir: /data/data3
redo_dir: /data/redo3