暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

899


本文主要分享在Windows 笔记本电脑上体验 OB 社区版 4.1 以及 OCP express 部署和使用体验。

笔记本电脑内存建议 10GB 以上,Windows 10 或 Windows 11 。


 

环境准备

WSL2 子系统

 

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

具体安装方法也很简单,网上参考:如何在 Windows 10 上安装 WSL 2 - 知乎 (zhihu.com) 。

 

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

                   

                  JDK 1.8

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

                   

                    sudo apt install openjdk-8-jdk


                     

                     

                    OBCE 软件

                    下载地址:OceanBase 社区版下载 - 开源数据库下载 - OceanBase 数据库下载中心

                     

                    文件解压缩后分布如下:

                     

                     

                      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

                       

                       

                      安装部署

                      安装是通过启动一个 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.0.1:8680/ 。
                         
                         
                        • 部署配置
                        选择“完全部署”。
                         
                        • 节点配置
                         
                         
                        • 集群配置
                         
                         

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

                        组件

                        集群参数名

                        参数值

                        备注

                        OB

                        devname

                        eth0


                        datafile_size

                        10G


                        log_disk_size

                        10G

                        满了的时候数据库写入会异常。

                        enable_syslog_recycle

                        true

                        开启日志循环滚动

                        max_syslog_file_count

                        5

                        最多保留5个日志文件

                        memory_limit

                        8G

                        OB进程占用的内存

                        system_memory

                        1G

                        OB 内部保留内存

                        cpu_count

                        16

                        OB进程可以利用的CPU个数,可以欺骗OB进程

                        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。

                         
                        • 开始部署
                         
                        部署成功后提示如下:
                        复制关键信息如下(删除了 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 其他版本目录结构的可以对比看看 这个版本的目录结构。外层目录有变化,内层目录保持不变。
                           
                            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 数据库下载中心

                            这个是 Windows 图形化安装,非常方便就不介绍了。下载企业版也可以使用。后面我用的是企业版 ODC 。
                            其他非OB官方的 OB 社区版的客户端推荐用 DBeaver 。
                             
                            ODC 里新建一个 OB-MySQL 租户连接。
                             
                             

                            OCP-Express 探索

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

                             

                            数据库连接

                             
                            如何连接 OB 。上面 OCP express 安装后给出的连接方式虽然能连接成功,严格来说有几个问题。
                             
                            问题一:用户名不严格
                             
                              obclient -h172.18.246.119 -P2883 -uroot -p'aaAA11__' -Doceanbase -A

                               
                              OB 集群内部会有多租户,连接的时候需要指定集群名和租户名。当然 OB Proxy的连接里隐含了两个逻辑。
                              • 当没有指定集群名的时候,会默认连接该 OBProxy初始化时指定的集群。生产环境可能有多个 OB 集群。
                              • 当没有指定租户名的时候,会默认连接 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 租户出来。
                               
                              首先要确认剩余可分配资源。
                               
                               
                              这个 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 。
                                         
                                         
                                        这个最大的 2G 是由剩余可分配内存决定的,最小的  2G 是由租户资源规格最小值参数  __min_full_resource_pool_memory  定义的。这个默认值是 2G 。对于我这个内存资源并不充沛的环境,这个要求有点高。这个可以下调为 1G 。后面详细看看参数这块。
                                         

                                        参数管理

                                        集群参数

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

                                         

                                         

                                        这里可以看到这个参数管理里没有参数  __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 了。

                                                   

                                                  租户参数

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

                                                  这里修改一下 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 管理的一个方法。

                                                     

                                                    租户创建成功后如下:

                                                     

                                                     

                                                     

                                                    OB 测试 TPC-C

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

                                                     

                                                    准备测试数据库和用户

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

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

                                                     

                                                     

                                                    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 并发,但是本机内存资源很小,加载还是很慢的

                                                           

                                                          测试方法

                                                           

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

                                                             

                                                            性能监控

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

                                                             

                                                             

                                                             

                                                             


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

                                                            总结
                                                            OB 4.0 版本以后架构发生一些变化。其中事务日志流的变化提升了单节点 OB 的处理能力。反映在租户资源分配上体现为日志空间可以单独分配计算。OB 社区版 4.0 后 MySQL 表可以后期加主键。
                                                            社区版的 OCP 分 OCP express版比正式版本少了一些 OB 集群级别的管理功能。在性能监控方面基本能满足使用要求。此外租户管理上还有些 BUG 。所以 express 版本仅适合学习,上生产还需要使用正式版。
                                                             

                                                             

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

                                                             

                                                            文章转载自数据库技术闲谈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                                            评论