薅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]>