OceanBase - 分布式数据库 - 具有云原生、强一致性、高度兼容 Oracle/MySQL 等特性 mysql


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)



签名:这个人很懒,什么也没有留下!
最新回复 (0)
返回