OB 社区版 4.1 和 OCP 笔记本电脑部署体验

2024年 5月 7日 107.2k 0

本文主要分享如何在Windows 笔记本电脑上体验 OB 社区版 4.1 以及 OCP express 。
笔记本电脑内存建议 10GB 以上,Windows 10 或 Windows 11 。


# 环境准备

## WSL2 子系统

WSL 是 Windows 推出的Linux 子系统,最新版本是 WSL2 。由了这个 Linux 子系统,就可以在 Windows 笔记本上上学习各种开源数据库。强烈推荐给大家。

具体安装方法也很简单,网上参考:[如何在 Windows 10 上安装 WSL 2 - 知乎 (zhihu.com)](https://zhuanlan.zhihu.com/p/337104547)

WSL2 默认是 Ubuntu 系统。安装软件推荐使用 APT (不是 YUM) 。 `apt`  的源建议改为国内镜像。下面文件可以直接替换。

root@MQBOOK:~# cat /etc/apt/sources.list
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse

root@MQBOOK:~# apt update

```

OB 和 OCP express 的安装部署建议放到普通用户  `admin` 下。生产环境也是这样要求的。

所以,WSL2 需要新建用户 admin (需要先建 HOME 目录)。

mkdir -p /home/admin/
useradd admin -g admin -d /home/admin
echo 'admin:712009A7AC'|chpasswd
chown -R admin.admin /home/admin/

更改用户默认 SHELL 为 BSHELL 。

chsh

$ chsh
Password:
Changing the login shell for admin
Enter the new value, or press ENTER for the default
        Login Shell [/bin/sh]: /bin/bash

退出重登录即可。

## 开启 SWAP 分区

笔记本内存不大,为了避免后面使用过程中内存不足,这个学习环境开启 SWAP 分区。

root@MQBOOK:~# free -h
               total        used        free      shared  buff/cache   available
Mem:           9.7Gi       5.9Gi       123Mi       3.0Mi       3.7Gi       3.5Gi
Swap:             0B          0B          0B

这里没有启用 SWAP ,所以需要创建一个 SWAP 分区。

dd if=/dev/zero of=/swapfile count=10240 bs=1M
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

root@MQBOOK:~# free -h
               total        used        free      shared  buff/cache   available
Mem:           9.7Gi       6.3Gi       124Mi       3.0Mi       3.3Gi       3.1Gi
Swap:            9Gi          0B         9Gi
## 会话配置

OB 数据库跟其他数据库一样,要求提升 Linux 的用户会话的默认资源限制。

vim + /etc/security/limits.conf

*   soft    nofile  655360
*   hard    nofile  655360
*   soft    nproc   655360
*   hard    nproc   655360
*   hard    core    unlimited
*   soft    core    unlimited
*   hard    stack   10240
*   soft    stack   10240
*   hard    cpu     unlimited
*   soft    cpu     unlimited

查看方法。

admin@MQBOOK:~$ ulimit -a
real-time non-blocking time  (microseconds, -R) unlimited

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

## OpenSSH

默认 WSL2 子系统没有安装 SSH 服务,这里安装一个。后面 OB 安装需要 SSH 到本机。

sudo apt-get install openssh-server
systemctl disable ssh
systemctl start ssh
systemctl status ssh

OB 社区版 4.1 和 OCP 笔记本电脑部署体验-1

## JDK 1.8

后面安装会依赖 JAVA 版本,写死了要求是 1.8 版本的 JDK。 尽管 WSL 里带的 JAVA 版本高于 1.8 还是要安装一个 低版本的 JDK 。

sudo apt install openjdk-8-jdk

OB 社区版 4.1 和 OCP 笔记本电脑部署体验-2

## OBCE 软件

下载地址:[OceanBase 社区版下载 - 开源数据库下载 - OceanBase 数据库下载中心](https://www.oceanbase.com/softwarecenter)

文件解压缩后分布如下:

OB 社区版 4.1 和 OCP 笔记本电脑部署体验-3

root@MQBOOK:~/soft/oceanbase-all-in-one# sh bin/install.sh

add auto set env logic to profile: /root/.bash_profile

#####################################################################
 Install Finished
=====================================================================
Setup Environment:     source ~/.oceanbase-all-in-one/bin/env.sh
Start Web Service:     obd web
Quick Start:           obd demo
More Details:          obd -h
=====================================================================

root@MQBOOK:~/soft/oceanbase-all-in-one# source ~/.oceanbase-all-in-one/bin/env.sh
root@MQBOOK:~/soft/oceanbase-all-in-one# obd

OB 社区版 4.1 和 OCP 笔记本电脑部署体验-4


# 安装部署

安装是通过启动一个 WEB 程序来引导的,非常方便。

## OCP-Express 部署向导

root@MQBOOK:~/soft/oceanbase-all-in-one# obd web
start OBD WEB in 0.0.0.0:8680
please open http://127.0.1.1:8680

这里 [http://127.0.1.1:8680](http://127.0.1.1:8680)  打不开,改为  [http://127.0.0.1:8680/](http://127.0.0.1:8680/) 。

OB 社区版 4.1 和 OCP 笔记本电脑部署体验-5

* 部署配置

选择“完全部署”。

OB 社区版 4.1 和 OCP 笔记本电脑部署体验-6

  • 节点配置

OB 社区版 4.1 和 OCP 笔记本电脑部署体验-7

* 集群配置

OB 社区版 4.1 和 OCP 笔记本电脑部署体验-8

更多配置里需要自定义一些参数:

|组件|集群参数名|参数值|备注|

|:----|:----|:----|:----|

|OB|devname|eth0|    |

|    |datafile_size|10G|    |

|    |log_disk_size|10G|    |

|    |enable_syslog_recycle|true|    |

|    |max_syslog_file_count|5|    |

|    |memory_limit|8G|    |

|    |system_memory|1G|    |

|    |cpu_count|16|    |

|    |ocp_meta_tenant_max_cpu|4|    |

|    |ocp_meta_tenant_memory_size|3G|    |

|    |ocp_meta_tenant_log_disk_size|5G|    |

|OBProxy|proxy_mem_limited|1G|    |

|    |obproxy_sys_password|aaAA11__|    |

|OCPExpress|memory_size|1G|    |

|    |logging_file_max_history|1|    |

|    |java_bin|/usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/java|    |

* 预检查

`java_bin` 的版本要求必须是 jdk 1.8 。高于这个版本在这里检查也不通过。无奈只好再安装一个低版本的 JDK。

* 开始部署

部署成功后提示如下:

OB 社区版 4.1 和 OCP 笔记本电脑部署体验-9

复制关键信息如下(删除了 JSON 格式中的空白行)。

```json

[

{

"component": "oceanbase-ce",

"access_url": "172.18.246.119:2881",

"user": "root",

"password": "aaAA11__",

"connect_url": "obclient -h172.18.246.119 -P2881 -uroot -p'aaAA11__' -Doceanbase -A"

},

{

"component": "obproxy-ce",

"access_url": "172.18.246.119:2883",

"user": "root",

"password": "aaAA11__",

"connect_url": "obclient -h172.18.246.119 -P2883 -uroot -p'aaAA11__' -Doceanbase -A"

},

{

"component": "ocp-express",

"access_url": "172.18.246.119:8180",

"user": "admin",

"password": "g51(i@EL",

"connect_url": "http://172.18.246.119:8180"

}

]

```

注意,上面提示的 obclient 连接方式后面建议再增加一个参数  `-c` 。这样后期写的 SQL HINT 不会被命令行 obclient 忽略掉。

部署程序已经退出!

如需再次启动,请前往中控服务器执行  `obd web`

OB 社区版 4.1 和 OCP 笔记本电脑部署体验-10

## 目录结构

熟悉 OB 其他版本目录结构的可以对比看看 这个版本的目录结构。外层目录有变化,内层目录保持不变。

admin@MQBOOK:~$ pwd
/home/admin
admin@MQBOOK:~$ tree -FL 3
./
└── obcedemo/
    ├── obagent/
    │   ├── backup/
    │   ├── bin/
    │   ├── conf/
    │   ├── log/
    │   ├── pkg_store/
    │   ├── position_store/
    │   ├── run/
    │   ├── site-packages/
    │   ├── task_store/
    │   └── tmp/
    ├── obproxy/
    │   ├── bin/
    │   ├── control-config/
    │   ├── etc/
    │   ├── lib/
    │   ├── log/
    │   ├── obproxyd.sh
    │   ├── run/
    │   └── sharding-config/
    ├── oceanbase/
    │   ├── admin/
    │   ├── audit/
    │   ├── bin/
    │   ├── etc/
    │   ├── etc2/
    │   ├── etc3/
    │   ├── lib/
    │   ├── log/
    │   ├── run/
    │   └── store/
    └── ocpexpress/
        ├── bin/
        ├── conf/
        ├── lib/
        ├── log/
        └── run/

37 directories, 1 file
```

## ODC 客户端安装

下载地址:[OceanBase 社区版下载 - 开源数据库下载 - OceanBase 数据库下载中心](https://www.oceanbase.com/softwarecenter)

OB 社区版 4.1 和 OCP 笔记本电脑部署体验-11


这个是 Windows 图形化安装,非常方便就不介绍了。下载企业版也可以使用。后面我用的是企业版 ODC 。

其他非OB官方的 OB 社区版的客户端推荐用 [DBeaver](https://dbeaver.io) 。

ODC 里新建一个 OB-MySQL 租户连接。

OB 社区版 4.1 和 OCP 笔记本电脑部署体验-12


# OCP-Express 探索

OCP express 首页如下,非常精简。

OB 社区版 4.1 和 OCP 笔记本电脑部署体验-13


## 数据库连接

如何连接 OB 。上面 OCP express 安装后给出的连接方式虽然能连接成功,严格来说有几个问题。

**问题一:用户名不严格**

obclient -h172.18.246.119 -P2883 -uroot -p'aaAA11__' -Doceanbase -A
```

OB 集群内部会有多租户,连接的时候需要指定集群名和租户名。当然 OB Proxy的连接里隐含了两个逻辑。

* 当没有指定集群名的时候,会默认连接该 OBProxy初始化时指定的集群。

* 当没有指定租户名的时候,会默认连接 SYS 租户。

这个虽然对初学者来说很友好,但可能为将来生产运维误操作带来习惯。比如说业务同学可能连到 SYS 租户去建库建表,运维可能连接到 SYS 租户执行错变更等等。

因此建议用户名采取OB 严格的格式。如  `root@sys#obcedemo` 或   `obcedemo:sys:root` 。这样在连接的时候就能明确看出连接的是哪个集群名和租户名。

**问题二:命令行缺乏参数**`-c`

上面命令行参数缺乏  `-c`  , 会导致 SQL 中如果有注释  `/*+ xxx */`  被忽略掉。

## 资源分配

OB 集群支持多租户。集群将所有节点的机器资源(CPU、内存和磁盘)据为己有并二次分配给多个租户。OB 集群的系统租户 sys 和 隐藏的内部租户会占用一部分资源,剩余的就是给 OB 上应用的。OCP-express 也会占用一部分资源,再剩下的还可以再利用。

严格来说这个 OB 集群是给 OCP-express 做元数据库用的,不能放业务应用的数据。不过这里机器资源有限,主要是学习 OB 以及 OCP,所以可以通过 OCP express 在 OB 集群里再分配一个 MySQL 租户出来。

首先要确认剩余可分配资源。

OB 社区版 4.1 和 OCP 笔记本电脑部署体验-14

这个 Unit 分布仍然沿用 OB 3.x 版本的设计,磁盘显示的数据文件的资源。不过 从 OB 4.0 开始,日志空间是单独分配和计算了。如果日志空间资源不足,租户也会创建失败。

准确的查看剩余资源 SQL 如下:

select svr_ip, CPU_CAPACITY,  (CPU_CAPACITY-CPU_ASSIGNED) CPU_FREE
  , round(MEM_CAPACITY/1024/1024/1024) MEM_CAPACITY_GB, round((MEM_CAPACITY-MEM_ASSIGNED)/1024/1024/1024,2) MEM_FREE_GB
  , round(DATA_DISK_CAPACITY/1024/1024/1024) DATA_CAPACITY_GB,  round((DATA_DISK_CAPACITY-DATA_DISK_IN_USE)/1024/1024/1024,2) DATA_FREE_GB
  , round(DATA_DISK_CAPACITY/1024/1024/1024) LOG_CAPACITY_GB, round((LOG_DISK_CAPACITY-LOG_DISK_IN_USE)/1024/1024/1024,2) LOG_FREE_GB
    from GV$OB_SERVERS ;

```

+----------------+--------------+----------+-----------------+-------------+------------------+--------------+-----------------+-------------+
| svr_ip         | CPU_CAPACITY | CPU_FREE | MEM_CAPACITY_GB | MEM_FREE_GB | DATA_CAPACITY_GB | DATA_FREE_GB | LOG_CAPACITY_GB | LOG_FREE_GB |
+----------------+--------------+----------+-----------------+-------------+------------------+--------------+-----------------+-------------+
| 172.18.246.119 |           16 |        7 |               7 |        2.00 |               10 |         9.93 |              10 |        9.44 |
+----------------+--------------+----------+-----------------+-------------+------------------+--------------+-----------------+-------------+
1 row in set (0.02 sec)
```

这里最进展的就是内存资源,显示剩余内存资源恰好是 2.00 GB 。

但是如果我们创建租户的时候真的分配 2GB,实际是分配不出来的。

下面测试一下资源分配,为了简单使用 MySQL 客户端直接连接 OB SYS 租户。

mysql -h172.18.246.119 -P2883 -uroot@sys#obcedemo -p'aaAA11__' -Doceanbase -A

mysql> create resource unit 2c2g_unit max_cpu 2, min_cpu 2, memory_size '2G', log_disk_size '8G', max_iops 100000 ,min_iops 1024, iops_weight 100;
Query OK, 0 rows affected (0.02 sec)

mysql> create resource pool mysql_pool unit '2c2g_unit', unit_num 1, zone_list ('zone1');
ERROR 4733 (HY000): zone 'zone1' resource not enough to hold 1 unit. You can check resource info by views: DBA_OB_UNITS, GV$OB_UNITS, GV$OB_SERVERS.
server '"172.18.246.119:2882"' LOG_DISK resource not enough

```

这里 LOG_DISK 空间不是看使用剩余空间,而是看分配的剩余空间。

mysql> select name, max_cpu,min_cpu,round(memory_size/1024/1024/1024,2) mem_size_gb
, round(log_disk_size/1024/1024/1024,2) log_disk_size_gb 
from __all_unit_config   ;
+-----------------+---------+---------+-------------+------------------+
| name            | max_cpu | min_cpu | mem_size_gb | log_disk_size_gb |
+-----------------+---------+---------+-------------+------------------+
| sys_unit_config |       1 |       1 |        2.00 |             2.00 |
| ocp_unit        |       8 |       8 |        3.00 |             5.00 |
| 2c2g_unit       |       2 |       2 |        2.00 |             8.00 |
+-----------------+---------+---------+-------------+------------------+
3 rows in set (0.00 sec)
```

前面安装部署的时候指定集群总的可用日志空间是 10G, 扣除这里 SYS 租户和 OCP 租户使用 7GB,剩余可用的是 3GB 。所以资源规格的 LOG DISK 空间大小改为 3GB 后即可分配。

mysql> alter resource unit 2c2g_unit log_disk_size '3G';
Query OK, 0 rows affected (0.03 sec)

mysql> create resource pool mysql_pool unit '2c2g_unit', unit_num 1, zone_list ('zone1');
Query OK, 0 rows affected (0.05 sec)
```

OK,这里我们再删除手动创建的资源池和资源规格。后面改用 OCP express 分配。

mysql> drop resource pool mysql_pool;
Query OK, 0 rows affected (0.02 sec)

mysql> drop resource unit 2c2g_unit;
Query OK, 0 rows affected (0.01 sec)

在 OCP express 里当想分配一个 2C1G 的资源单元规格时,被页面拦截了,说是可分配的内存资源范围时  `2G-2G`

OB 社区版 4.1 和 OCP 笔记本电脑部署体验-15

这个最大的 `2G` 是由剩余可分配内存决定的,最小的  `2G` 是由租户资源规格最小值参数  `__min_full_resource_pool_memory`  定义的。这个默认值是 2G 。对于我这个内存资源并不充沛的环境,这个要求有点高。这个可以下调为 1G 。后面详细看看参数这块。

## 参数管理

### 集群参数

OCP expresss 在集群和租户的管理界面里都有参数管理。下面是集群的参数管理界面。

OB 社区版 4.1 和 OCP 笔记本电脑部署体验-16

这可以看到这个参数管理里没有参数  `__min_full_resource_pool_memory`  ,因为这个参数是隐含参数。

隐含参数目前还不知道在哪个视图里查询,我们到命令行下去看看。

mysql> show parameters like '__min_full_resource_pool_memory';
Empty set (0.09 sec)

通过  `show parameters`  也查不到这个参数。不过可以直接查看 OB 的参数文件。

su - admin
admin@MQBOOK:~$ cd /home/admin/obcedemo/oceanbase

admin@MQBOOK:~/obcedemo/oceanbase$ strings etc/observer.config.bin |grep min_full
__min_full_resource_pool_memory=2147483648



这个参数是 OBServer 节点启动初始化时通过命令行参数传递进去的。

admin@MQBOOK:~$ ps -ef|grep observer |grep -v grep
admin       5882       1 99 08:35 ?        03:01:45 /home/admin/obcedemo/oceanbase/bin/observer -r 172.18.246.119:2882:2881 -p 2881 -P 2882 -z zone1 -n obcedemo -c 1 -d /home/admin/obcedemo/oceanbase/store -i eth0 -o __min_full_resource_pool_memory=2147483648,datafile_size=10G,log_disk_size=10G,enable_syslog_recycle=True,max_syslog_file_count=5,memory_limit=8G,system_memory=1G,cpu_count=16,enable_syslog_wf=False
admin@MQBOOK:~$

命令行里还能看到这个参数,说明这个 OBServer 节点没有重启过。

下面尝试修改这个参数。

mysql> alter system set __min_full_resource_pool_memory='1G';
ERROR 4147 (HY000): Invalid config
mysql> alter system set `__min_full_resource_pool_memory` = '1G';
ERROR 4147 (HY000): Invalid config
```

目前看 OB 命令行下不支持修改这个隐含参数。参数文件也不允许修改,那就只有重启 observer 进程并传递命令行参数了。

admin@MQBOOK:~$ ls
obcedemo
admin@MQBOOK:~$ cd obcedemo/oceanbase/
admin@MQBOOK:~/obcedemo/oceanbase$ kill -9 `pidof observer`
admin@MQBOOK:~/obcedemo/oceanbase$ ps -ef|grep observer
admin      23084   16375  0 10:39 pts/0    00:00:00 grep observer
admin@MQBOOK:~/obcedemo/oceanbase$ bin/observer -o '__min_full_resource_pool_memory=1073741824'
bin/observer: error while loading shared libraries: libmariadb.so.3: cannot open shared object file: No such file or directory
admin@MQBOOK:~/obcedemo/oceanbase$ find . |grep libmariadb.so
./lib/libmariadb.so.3
./lib/libmariadb.so
admin@MQBOOK:~/obcedemo/oceanbase$ echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/admin/obcedemo/oceanbase/lib/' >> ~/.bash_profile
admin@MQBOOK:~/obcedemo/oceanbase$ . ~/.bash_profile
admin@MQBOOK:~/obcedemo/oceanbase$ bin/observer -o '__min_full_resource_pool_memory=1073741824'
bin/observer -o __min_full_resource_pool_memory=1073741824
optstr: __min_full_resource_pool_memory=1073741824
admin@MQBOOK:~/obcedemo/oceanbase$ ps -ef|grep observer |grep -v grep
admin      23275     901 99 10:40 ?        00:00:55 bin/observer -o __min_full_resource_pool_memory=1073741824
admin@MQBOOK:~/obcedemo/oceanbase$
admin@MQBOOK:~/obcedemo/oceanbase$ strings etc/observer.config.bin |grep min_full
__min_full_resource_pool_memory=1073741824

注意上面的步骤要点:

* 杀  `observer`  进程可以用  `kill`  命令。紧急情况可以带  `-9` 参数。

* 启动 OB 进程必须在软件的 HOME 目录,这里是: `/home/admin/obcedemo/oceanbase` ,企业版默认的 HOME 目录一般是  `/home/admin/oceanbase` 。要进入到  `oceanbase` 这层目录,名字也可以不是叫  `oceanbase`

* 启动 OB 进程传递参数用   `-o 'xxx=yyy'` 。启动成功后就持久化到参数文件中了。

再次进入 OCP 中创建租户,内存可以分配的范围就变为  `1G-2G` 了。
OB 社区版 4.1 和 OCP 笔记本电脑部署体验-17

### 租户参数

创建租户的时候可以自定义租户参数,租户参数跟 MySQL 的变量(VARIABLE)是一个概念。

OB 社区版 4.1 和 OCP 笔记本电脑部署体验-18


这里修改一下 OB 语句超时时间,默认10 秒太短,改为 1000 秒。 还有两个事务超时时间,以前的 OB 版本里事务超时时间也很短,这里 4.1 版本的租户的默认事务超时参数看来已经调大了。

mysql> show global variables like 'ob_%eout%';
+---------------------+------------------+
| Variable_name       | Value            |
+---------------------+------------------+
| ob_pl_block_timeout | 3216672000000000 |
| ob_query_timeout    | 10000000         |
| ob_trx_idle_timeout | 86400000000      |
| ob_trx_lock_timeout | -1               |
| ob_trx_timeout      | 86400000000      |
+---------------------+------------------+
5 rows in set (0.01 sec)

## 任务流

所有数据库的自动化运维平台都支持任务流,区别只是体验和稳定性方面。上面创建了一个租户,OCP express 也是使用任务流来创建。

OB 社区版 4.1 和 OCP 笔记本电脑部署体验-19

从子任务列表以及对应的日志可以大概推出租户创建的一些步骤。这也是学习 OB 管理的一个方法。

租户创建成功后如下:

OB 社区版 4.1 和 OCP 笔记本电脑部署体验-20


## OB 测试 TPC-C

这里为了通过 OCP express 观察 OB 性能,先构造一小部分测试数据。测试场景就选择常用的 BenchmarkSQL TPC-C 。数据量 10 仓。

### 准备测试数据库和用户

在 OCP express 里可以新建租户下的数据库和用户。

这个比较简单,就不赘述了。

OB 社区版 4.1 和 OCP 笔记本电脑部署体验-21

OB 社区版 4.1 和 OCP 笔记本电脑部署体验-22

OB 社区版 4.1 和 OCP 笔记本电脑部署体验-23

### BMSQL OB 参数文件

下面是 BMSQL 连接 OB 的参数文件,主要是  `conn` 和  `user` 部分。

root@MQBOOK:~/soft/benchmarksql-5.0/run# cat props.ob
db=oracle
driver=oracle.jdbc.driver.OracleDriver
conn=jdbc:oceanbase://172.18.246.119:2883/tpccdb?useUnicode=true&characterEncoding=utf-8
user=tpcc@obmysql#obcedemo
password=aaAA11__

warehouses=10
loadWorkers=1

terminals=1
//To run specified transactions per terminal- runMins must equal zero
runTxnsPerTerminal=0
//To run for specified minutes- runTxnsPerTerminal must equal zero
runMins=5
//Number of total transactions per minute
limitTxnsPerMin=0

//Set to true to run in 4.x compatible mode. Set to false to use the
//entire configured database evenly.
terminalWarehouseFixed=false

//The following five values must add up to 100
newOrderWeight=45
paymentWeight=43
orderStatusWeight=4
deliveryWeight=4
stockLevelWeight=4

// Directory name to create for collecting detailed result data.
// Comment this out to suppress.
//resultDirectory=my_result_%tY-%tm-%td_%tH%tM%tS
//osCollectorScript=./misc/os_collector_linux.py
//osCollectorInterval=1
//osCollectorSSHAddr=user@dbhost
//osCollectorDevices=net_eth0 blk_sda
```

笔记本机器资源紧张,仓库数设置为 10仓,1并发加载,1并发压测。

### 建表并初始化数据

建表:

root@MQBOOK:~/soft/benchmarksql-5.0/run# sh runSQL.sh props.ob sql.ob/tableCreates.sql
```

加载数据:

root@MQBOOK:~/soft/benchmarksql-5.0/run# sh runLoader.sh props.ob
```

虽然是 1 并发,但是本机内存资源很小,加载还是很慢的。

### 测试方法

```bash
root@MQBOOK:~/soft/benchmarksql-5.0/run# sh runBenchmarkSQL.sh props.ob

## 性能监控

可以通过 OCP 的租户性能监控查看 BMSQL 数据初始化过程。

OB 社区版 4.1 和 OCP 笔记本电脑部署体验-24

OB 社区版 4.1 和 OCP 笔记本电脑部署体验-25

OB 社区版 4.1 和 OCP 笔记本电脑部署体验-26

OB 的性能调优和 OCP 性能监控这次就不详细介绍了。有兴趣的可以查看以前的分享。大部分原理还是跟以前的版本一样。

一切部署好后,查看笔记本 WSL 子系统可用内存如下。

admin@MQBOOK:~/obcedemo/oceanbase$ free -h
               total        used        free      shared  buff/cache   available
Mem:           9.7Gi       7.3Gi       199Mi       3.0Mi       2.2Gi       2.1Gi
Swap:            9Gi       934Mi       9.1Gi

# 更多阅读

有关 OB 安装部署、性能分析调优原理,有兴趣的可以看看以前的文章。

* [OB 内存分配概述 (qq.com)](https://mp.weixin.qq.com/s/DYTOri_Cq6XWKOmZc5EeBg)

* [如何在小内存服务器上玩转 OB 企业版部署 (qq.com)](https://mp.weixin.qq.com/s/ylsUfmvDCBnRvj-DXgnU5A)

* [OceanBase 2.x体验:用BenchmarkSQL跑TPC-C (qq.com)](https://mp.weixin.qq.com/s/dNrbQVrLl-HHke8ptu5vPQ)

* [#OceanBase 直播序列 (qq.com)](https://mp.weixin.qq.com/mp/appmsgalbum?action=getalbum&__biz=MzU3OTc2MDQxNg==&scene=1&album_id=1337099788302745601&count=3#wechat_redirect)

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论