https://hub.docker.com/r/oceanbase/oceanbase-ce
https://www.oceanbase.com/docs/oceanbase-database-cn
docker run -d -p 2881:2881 --name oceanbase --hostname oceanbase --restart always --network mgr --ip 172.18.0.51 --privileged=true --user=root --ulimit nofile=262144:262144 -e MINI_MODE=0 -v /data/site/docker/db/oceanbase/ob:/root/ob -v /data/site/docker/db/oceanbase/obd:/root/.obd oceanbase/oceanbase-ce:4.3.2.1-100000102024081217
-p 2881:2881
docker pull oceanbase/oceanbase-ce:4.3.2.1-100000102024081217
docker save oceanbase/oceanbase-ce:4.3.2.1-100000102024081217 | gzip > /data/site/htmltoo.f/htmltoo.up/soft/docker.tar/db-oceanbase-4.3.2.tar.gz
-根据当前容器部署最大规格的实例
-e MINI_MODE=0
-部署 mini 的独立实例
-e MINI_MODE=1
-错误不退出
-e EXIT_WHILE_ERROR='false'
-用户租户
-e OB_TENANT_NAME='ihunter'
-集群名称
-e OB_CLUSTER_NAME='ob'
-密码
-e OB_ROOT_PASSWORD='wdqdmm@r'
-其他默认
-e OB_MEMORY_LIMIT=6G
-e OB_DATAFILE_SIZE=5G
-e OB_LOG_DISK_SIZE=5G
-e OB_SYSTEM_MEMORY=1G
-启动预计需要 2-5 分钟
docker logs obstandalone | tail -1
boot success!
docker exec -it oceanbase /bin/bash
-列出当前集群状态信息
obd cluster list
-启动集群
obd cluster start obcluster
-显示对应集群状态信息
obd cluster display obcluster
# 创建租户,测试数据库,测试表
-查看OBServer 服务器节点
SELECT * FROM oceanbase.DBA_OB_SERVERS;
-查看下集群资源使用情况
SELECT SVR_IP ,
SVR_PORT ,
ZONE ,
SQL_PORT ,
CPU_CAPACITY ,
CPU_CAPACITY_MAX ,
CPU_ASSIGNED ,
CPU_ASSIGNED_MAX ,
MEM_CAPACITY/1024/1024/1024 as MEM_CAPACITY_GB ,
MEM_ASSIGNED/1024/1024/1024 as MEM_ASSIGNED_GB,
LOG_DISK_CAPACITY/1024/1024/1024 as LOG_DISK_CAPACITY_GB ,
LOG_DISK_ASSIGNED/1024/1024/1024 as LOG_DISK_ASSIGNED_GB ,
LOG_DISK_IN_USE/1024/1024/1024 as LOG_DISK_IN_USE_GB ,
DATA_DISK_CAPACITY/1024/1024/1024 as DATA_DISK_CAPACITY_GB ,
DATA_DISK_IN_USE/1024/1024/1024 as DATA_DISK_IN_USE_GB,
DATA_DISK_HEALTH_STATUS ,
MEMORY_LIMIT/1024/1024/1024 as MEMORY_LIMIT_GB
FROM GV$OB_SERVERS;
-使用root登录,查看当前所有的unit 规格配置
mysql -uroot@sys -h127.0.0.1 -P2881 -c -A oceanbase
show parameters like 'cluster';
-创建资源规格-unit, 建议: 磁盘最小是OB内存(memory_limit)的6倍大小
create resource unit unit_mysql max_cpu 10, min_cpu 4, max_iops 10000, LOG_DISK_SIZE '50G', MEMORY_SIZE '10G';
-修过
ALTER RESOURCE UNIT sys_unit_config MAX_CPU 8, min_cpu 8;
-删除
DROP RESOURCE UNIT unit_mysql
-查看
SELECT * FROM oceanbase.DBA_OB_UNIT_CONFIGS WHERE NAME='unit_mysql';
-创建资源池-resource pool
create resource pool pool_mysql unit=unit_mysql, unit_num=1, ZONE_LIST=('zone1');
-zone1的资源不够,我们来缩小test_unit的内存
ALTER RESOURCE UNIT unit_mysql max_cpu 4, min_cpu 1;
select * from __all_unit_config;
create resource pool pool_mysql unit=unit_mysql, unit_num=1, ZONE_LIST=('zone1');
-创建租户
create tenant ihunter charset='utf8mb4', replica_num=1, zone_list=('zone1'), primary_zone='zone1', resource_pool_list=('pool1') set ob_tcp_invited_nodes='%';
-创建数据库以及用户
create database testdb1;
create user testuser@'%' identified by 'testuser';
grant all on testdb1.* to testuser ;
-使用业务用户testuser登录,创建表以及插入数据
CREATE TABLE test (c1 int primary key, c2 VARCHAR(10)) ;
insert into test(c1,c2) values(1,'aaa');
insert into test(c1,c2) values(2,'bbb');
select * from test;
-连接 OceanBase 数据库实例
# 使用 root 用户登录集群的 sys 租户
docker exec -it oceanbase ob-mysql sys
# 使用 root 用户登录集群的 test 租户
docker exec -it oceanbase ob-mysql root
# 使用 test 用户登录集群的 test 租户
docker exec -it oceanbase ob-mysql test
mysql -uroot@sys -h127.0.0.1 -P2881
docker exec -it oceanbase ob-mysql root
-修改数据库用户名密码
alter user root identified by 'r';
-修改之后连接命令,需要注意的是:参数后面尽量紧跟只,不要有空格
obclient -h127.0.0.1 -P2881 -uroot@sys -pr
docker commit -m="update" -a="htmltoo.com" oceanbase hub.htmltoo.com:5000/bigdata:oceanbase-4.2.2
docker save hub.htmltoo.com:5000/bigdata:oceanbase-4.2.2 | gzip > /data/site/htmltoo.f/htmltoo.up/soft/docker.tar/oceanbase-4.2.2.tar.gz
# load - 镜像解压
docker load < /opt/oceanbase-4.2.2.tar.gz
-ps -ef|grep observer
/root/ob/bin/observer -r 127.0.0.1:2882:2881 -p 2881 -P 2882 -z zone1 -n obcluster -c 1 -d /root/ob/store -l INFO -I 127.0.0.1 -o __min_full_resource_pool_memory=2147483648,memory_limit=6G,system_memory=1G,datafile_size=5G,log_disk_size=5G,cpu_count=16,enable_syslog_wf=False,enable_syslog_recycle=True,max_syslog_file_count=4,enable_rich_error_msg=True
#
docker run -d -p 9051:2881 --name ob1 --hostname oceanbase --restart always --network mgr --ip 172.18.0.51 --privileged=true --user=root --ulimit nofile=262144:262144 -e MINI_MODE=0 -e OB_CLUSTER_NAME='ob' -e OB_TENANT_NAME='ihunter' -e EXIT_WHILE_ERROR='false' -e OB_ROOT_PASSWORD='wdqdmm@r' hub.htmltoo.com:5000/bigdata:oceanbase-4.2.2
docker run -d -p 9052:2881 --name ob2 --hostname oceanbase --restart always --network mgr --ip 172.18.0.52 --privileged=true --user=root --ulimit nofile=262144:262144 -e MINI_MODE=0 -e OB_CLUSTER_NAME='ob' -e OB_TENANT_NAME='ihunter' -e EXIT_WHILE_ERROR='false' -e OB_ROOT_PASSWORD='wdqdmm@r' hub.htmltoo.com:5000/bigdata:oceanbase-4.2.2
docker run -d -p 9053:2881 --name ob3 --hostname oceanbase --restart always --network mgr --ip 172.18.0.53 --privileged=true --user=root --ulimit nofile=262144:262144 -e MINI_MODE=0 -e OB_CLUSTER_NAME='ob' -e OB_TENANT_NAME='ihunter' -e EXIT_WHILE_ERROR='false' -e OB_ROOT_PASSWORD='wdqdmm@r' hub.htmltoo.com:5000/bigdata:oceanbase-4.2.2
docker exec -it ob1 /bin/bash
docker exec -it ob2 /bin/bash
docker exec -it ob3 /bin/bash
---创建resource pool时报错
select * from DBA_OB_UNITS \G
select * from __all_unit_config \G
select * from GV$OB_SERVERS \G
我们对各项资源进行检查发现:
可用的内存资源仅为 1G (MEM_CAPACITY - MEM_ASSIGNE)
可用的log_disk也仅有 1G (LOG_DISK_CAPACITY - LOG_DISK_ASSIGNED) < 6G
发现问题之后,解决问题的方式有:
关于内存,可以适当调大MEMORY_LIMIT,或降低unit的memory_size
关于log_disk,降低unit的log_disk_size;(该值存在下限不得小于2G)