OceanBase Docker 体验

薅OBCP考试券的社区活动

https://ask.oceanbase.com/t/topic/35600926

拉取docker镜像

C:\Users\Administrator>docker search oceanbase
NAME                                DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
oceanbase/oceanbase-ce              OceanBase is an open-source, distributed HTA…   24
oceanbase/obce-mini                 obce-mini is a mini standalone test image fo…   5
oceanbase/oceanbase-xe              OceanBase Database 2.2 Express Edition          4
obpilot/oceanbase-ce                3 steps to run an OceanBase-CE docker in you…   4
oceanbase/miniob                    miniob database competition                     2
oceanbase/obce-operator             obce-operator                                   1
oceanbase/oceanbase-cloud-native                                                    0
oceanbasedev/obagent                                                                0
oceanbase/obagent                                                                   0
oceanbasedev/oceanbase-cn                                                           0
oceanbasedev/oceanbase-chart                                                        0
oceanbase/obproxy-ce                                                                0
oceanbase/ob-operator               Kubernetes operator for OceanBase               0
oceanbasedev/obproxy-ce                                                             0
oceanbase/ocp-ce                    OceanBase Cloud Platform (OCP) Community Edi…   0
oceanbasedev/sealer-ob                                                              0
oceanbase/odc                       ODC is an open-source, enterprise-grade data…   0
oceanbase/centos7                                                                   0
oceanbase/kube-rbac-proxy                                                           0
oceanbasedev/ob-operator            test repository for [ob-operator](https://gi…   0
apecloud/oceanbase                                                                  0
oceanbase/cert-manager-webhook                                                      0
oceanbase/cert-manager-cainjector                                                   0
oceanbase/cert-manager-controller                                                   0
oceanbase/oceanbase-dashboard                                                       0

C:\Users\Administrator>docker pull oceanbase/oceanbase-ce

运行容器

C:\Users\Administrator>docker volume create oceanbasa_data
oceanbasa_data

C:\Users\Administrator>docker run -p 2881:2881 --name oceanbase-ce -e MODE=slim -e OB_MEMORY_LIMIT=5G -v oceanbasa_data:/root/boot/init.d -d oceanbase/oceanbase-ce
a97db5f1c5f7b449a9b3e96a85b227a17f723ec5cfc7ae9219a23cf69bed8155

C:\Users\Administrator>docker ps -a
CONTAINER ID   IMAGE                             COMMAND                  CREATED          STATUS                      PORTS                              NAMES
a97db5f1c5f7   oceanbase/oceanbase-ce            "/bin/sh -c _boot"       26 seconds ago   Up 24 seconds               0.0.0.0:2881->2881/tcp             oceanbase-ce

进入容器

C:\Users\Administrator>docker exec -it a97db5f1c5f7 bash
[root@a97db5f1c5f7 ~]# su - admin
su: user admin does not exist

查看集群状态

[root@a97db5f1c5f7 ~]#  obd cluster list
+------------------------------------------------------------+
|                        Cluster List                        |
+-----------+------------------------------+-----------------+
| Name      | Configuration Path           | Status (Cached) |
+-----------+------------------------------+-----------------+
| obcluster | /root/.obd/cluster/obcluster | running         |
+-----------+------------------------------+-----------------+

这里集群已经是running了,如果没启动,可以
obd cluster start obcluster

获取集群详细信息

[root@a97db5f1c5f7 ~]# obd cluster display obcluster
+------------------------------------------------------------+
|                        Cluster List                        |
+-----------+------------------------------+-----------------+
| Name      | Configuration Path           | Status (Cached) |
+-----------+------------------------------+-----------------+
| obcluster | /root/.obd/cluster/obcluster | running         |
+-----------+------------------------------+-----------------+
Trace ID: 9f92e422-e13b-11ee-a08b-0242ac110002
If you want to view detailed obd logs, please run: obd display-trace 9f92e422-e13b-11ee-a08b-0242ac110002
[root@7af312cde834 ~]# obd cluster display obcluster
Get local repositories and plugins ok
Open ssh connection ok
Cluster status check ok
Connect to ob-configserver ok
+-----------------------------------------------------------+
|                      ob-configserver                      |
+------------+------+-------------+----------+--------+-----+
| server     | port | vip_address | vip_port | status | pid |
+------------+------+-------------+----------+--------+-----+
| 172.17.0.2 | 8080 | 172.17.0.2  | 8080     | active | 55  |
+------------+------+-------------+----------+--------+-----+
curl -s 'http://172.17.0.2:8080/services?Action=GetObProxyConfig'
Connect to observer 127.0.0.1:2881 ok
Wait for observer init ok
+---------------------------------------------+
|                   observer                  |
+-----------+---------+------+-------+--------+
| ip        | version | port | zone  | status |
+-----------+---------+------+-------+--------+
| 127.0.0.1 | 4.2.2.0 | 2881 | zone1 | ACTIVE |
+-----------+---------+------+-------+--------+
obclient -h127.0.0.1 -P2881 -uroot -Doceanbase -A

Trace ID: a8738466-e13b-11ee-a03c-0242ac110002
If you want to view detailed obd logs, please run: obd display-trace a8738466-e13b-11ee-a03c-0242ac110002

连接数据库

第一次连接默认没有密码。

[root@7af312cde834 ~]# obclient -h127.0.0.1 -P2881 -uroot -Doceanbase -A
Welcome to the OceanBase.  Commands end with ; or \g.
Your OceanBase connection id is 3221491871
Server version: OceanBase_CE 4.2.2.0 (r100010012024022719-c984fe7cb7a4cef85a40323a0d073f0c9b7b8235) (Built Feb 27 2024 19:20:54)

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 [oceanbase]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| LBACSYS            |
| mysql              |
| oceanbase          |
| ocs                |
| ORAAUDITOR         |
| SYS                |
| test               |
+--------------------+
8 rows in set (0.003 sec)

obclient [oceanbase]> select version();
+------------------------------+
| version()                    |
+------------------------------+
| 5.7.25-OceanBase_CE-v4.2.2.0 |
+------------------------------+
1 row in set (0.001 sec)

建一个自己的租户

租户的定义顺序是:“unit config -> resource pool -> tenant”
定义单元规格——》创建资源池——》分配给租户

创建资源单元

对cpu,内存,磁盘,IOPS等进行定义

CREATE RESOURCE UNIT unit_name 
    MEMORY_SIZE [=] 'size_value',
    MAX_CPU [=] cpu_num,  
    [LOG_DISK_SIZE [=] 'size_value',]
    [MAX_IOPS [=] iops_num,]
    [MIN_CPU [=] cpu_num,]
    [MIN_IOPS [=] iops_num];



obclient [oceanbase]> CREATE RESOURCE UNIT my_unit_1
    ->     MEMORY_SIZE = '2G',
    ->     MAX_CPU = 1, MIN_CPU = 1,
    ->     LOG_DISK_SIZE = '2G',
    ->     MAX_IOPS = 10000, MIN_IOPS = 10000, IOPS_WEIGHT=1;
Query OK, 0 rows affected (0.140 sec)


obclient [oceanbase]> SELECT * FROM oceanbase.DBA_OB_UNIT_CONFIGS\G
*************************** 1. row ***************************
UNIT_CONFIG_ID: 1
          NAME: sys_unit_config
   CREATE_TIME: 2024-03-13 21:12:27.773031
   MODIFY_TIME: 2024-03-13 21:12:27.773031
       MAX_CPU: 3
       MIN_CPU: 3
   MEMORY_SIZE: 2147483648
 LOG_DISK_SIZE: 2147483648
      MAX_IOPS: 9223372036854775807
      MIN_IOPS: 9223372036854775807
   IOPS_WEIGHT: 3
*************************** 2. row ***************************
UNIT_CONFIG_ID: 1001
          NAME: my_unit_1
   CREATE_TIME: 2024-03-13 21:30:26.740792
   MODIFY_TIME: 2024-03-13 21:30:26.740792
       MAX_CPU: 1
       MIN_CPU: 1
   MEMORY_SIZE: 2147483648
 LOG_DISK_SIZE: 2147483648
      MAX_IOPS: 10000
      MIN_IOPS: 10000
   IOPS_WEIGHT: 1
2 rows in set (0.000 sec)

创建资源池

创建一个资源池,使用刚才定义的单元规格,当前是单机节点,zone只有一个。正常情况下,应该包含所有zone

CREATE RESOURCE POOL my_pool_1 
    UNIT='my_unit_1', 
    UNIT_NUM=1, 
    ZONE_LIST=('zone1'); 
    
obclient [oceanbase]> SELECT * FROM DBA_OB_RESOURCE_POOLS\G
*************************** 1. row ***************************
RESOURCE_POOL_ID: 1
            NAME: sys_pool
       TENANT_ID: 1
     CREATE_TIME: 2024-03-13 21:12:28.068136
     MODIFY_TIME: 2024-03-13 21:12:28.752137
      UNIT_COUNT: 1
  UNIT_CONFIG_ID: 1
       ZONE_LIST: zone1
    REPLICA_TYPE: FULL
*************************** 2. row ***************************
RESOURCE_POOL_ID: 1001
            NAME: my_pool_1
       TENANT_ID: 1002
     CREATE_TIME: 2024-03-13 21:33:06.892440
     MODIFY_TIME: 2024-03-13 21:35:21.355918
      UNIT_COUNT: 1
  UNIT_CONFIG_ID: 1001
       ZONE_LIST: zone1
    REPLICA_TYPE: FULL
2 rows in set (0.002 sec)    
    

创建租户

默认是mysql租户,企业版可以通过ob_compatibility_mode=‘oracle’创建oracle的租户。
OB_TCP_INVITED_NODES=’%’ 白名单设置,%表示都可以连接。

CREATE TENANT  my_tenant 
    PRIMARY_ZONE='zone1', 
    RESOURCE_POOL_LIST=('my_pool_1')
    set OB_TCP_INVITED_NODES='%';
    
obclient [oceanbase]> SELECT * FROM oceanbase.DBA_OB_TENANTS\G
*************************** 1. row ***************************
                 TENANT_ID: 1
               TENANT_NAME: sys
               TENANT_TYPE: SYS
               CREATE_TIME: 2024-03-13 21:12:29.440034
               MODIFY_TIME: 2024-03-13 21:12:29.440034
              PRIMARY_ZONE: RANDOM
                  LOCALITY: FULL{1}@zone1
         PREVIOUS_LOCALITY: NULL
        COMPATIBILITY_MODE: MYSQL
                    STATUS: NORMAL
             IN_RECYCLEBIN: NO
                    LOCKED: NO
               TENANT_ROLE: PRIMARY
         SWITCHOVER_STATUS: NORMAL
          SWITCHOVER_EPOCH: 0
                  SYNC_SCN: NULL
            REPLAYABLE_SCN: NULL
              READABLE_SCN: NULL
        RECOVERY_UNTIL_SCN: NULL
                  LOG_MODE: NOARCHIVELOG
ARBITRATION_SERVICE_STATUS: DISABLED
                  UNIT_NUM: 1
                COMPATIBLE: 4.2.2.0
                 MAX_LS_ID: 1
*************************** 2. row ***************************
                 TENANT_ID: 1001
               TENANT_NAME: META$1002
               TENANT_TYPE: META
               CREATE_TIME: 2024-03-13 21:35:21.285030
               MODIFY_TIME: 2024-03-13 21:35:54.674700
              PRIMARY_ZONE: zone1
                  LOCALITY: FULL{1}@zone1
         PREVIOUS_LOCALITY: NULL
        COMPATIBILITY_MODE: MYSQL
                    STATUS: NORMAL
             IN_RECYCLEBIN: NO
                    LOCKED: NO
               TENANT_ROLE: PRIMARY
         SWITCHOVER_STATUS: NORMAL
          SWITCHOVER_EPOCH: 0
                  SYNC_SCN: NULL
            REPLAYABLE_SCN: NULL
              READABLE_SCN: NULL
        RECOVERY_UNTIL_SCN: NULL
                  LOG_MODE: NOARCHIVELOG
ARBITRATION_SERVICE_STATUS: DISABLED
                  UNIT_NUM: 1
                COMPATIBLE: 4.2.2.0
                 MAX_LS_ID: 1
*************************** 3. row ***************************
                 TENANT_ID: 1002
               TENANT_NAME: my_tenant
               TENANT_TYPE: USER
               CREATE_TIME: 2024-03-13 21:35:21.287431
               MODIFY_TIME: 2024-03-13 21:35:55.092234
              PRIMARY_ZONE: zone1
                  LOCALITY: FULL{1}@zone1
         PREVIOUS_LOCALITY: NULL
        COMPATIBILITY_MODE: MYSQL
                    STATUS: NORMAL
             IN_RECYCLEBIN: NO
                    LOCKED: NO
               TENANT_ROLE: PRIMARY
         SWITCHOVER_STATUS: NORMAL
          SWITCHOVER_EPOCH: 0
                  SYNC_SCN: 1710337008801550000
            REPLAYABLE_SCN: 1710337008801550000
              READABLE_SCN: 1710337008801550000
        RECOVERY_UNTIL_SCN: 4611686018427387903
                  LOG_MODE: NOARCHIVELOG
ARBITRATION_SERVICE_STATUS: DISABLED
                  UNIT_NUM: 1
                COMPATIBLE: 4.2.2.0
                 MAX_LS_ID: 1001
3 rows in set (0.040 sec)

连接自己的租户

默认租户的管理员用户(MySQL 模式为 root,Oracle 模式为 sys)的密码为空.

[root@7af312cde834 ~]# obclient -h127.0.0.1 -P2881 -uroot@my_tenant  -p   -A -c
Enter password:
Welcome to the OceanBase.  Commands end with ; or \g.
Your OceanBase connection id is 3221545045
Server version: OceanBase_CE 4.2.2.0 (r100010012024022719-c984fe7cb7a4cef85a40323a0d073f0c9b7b8235) (Built Feb 27 2024 19:20:54)

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 [(none)]> alter user root identified by 'rootroot';
Query OK, 0 rows affected (0.196 sec)

obclient [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| oceanbase          |
| test               |
+--------------------+
4 rows in set (0.003 sec)

建个database

obclient [(none)]> create database my_ob;
Query OK, 1 row affected (0.501 sec)

obclient [(none)]> use my_ob;
Database changed

建个表

obclient [my_ob]> create table tb_test(id int,name varchar(100));
Query OK, 0 rows affected (1.555 sec)

obclient [my_ob]> insert into tb_test values('1','Tom');
Query OK, 1 row affected (0.389 sec)

obclient [my_ob]> select * from tb_test \g
+------+------+
| id   | name |
+------+------+
|    1 | Tom  |
+------+------+
1 row in set (0.002 sec)

obclient [my_ob]>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值