官网下载地址:OceanBase 试用版软件下载 https://www.oceanbase.com/download 。
安装文档:OceanBase 数据库试用版部署文档 https://www.oceanbase.com/docs/oceanbase-trial/V2.2.50/ii133b 。
su - adminkill -9 `pidof observer` ; \/bin/rm -rf ~/{node1,node2,node3,node4,node5,node6} data/{1,log1}/{node1,node2,node3,node4,node5,node6}
软件 目录 : home/admin/node{1-6}
data 目录 : data/1/node{1-6}
clog 目录 : data/log1/node{1-6}
for i in {node1,node2,node3,node4,node5,node6}; do \echo $i; \mkdir -p ~/$i/{admin,bin,etc}; cp ~/mini-ob-deploy/bin/observer ~/$i/bin/; cd ~; \mkdir -p data/1/$i/obdemo/{etc3,sort_dir,sstable} data/log1/$i/obdemo/{clog,etc2,ilog,slog,oob_clog} ;\mkdir -p ~/$i/store/obdemo; \for t in {etc3,sort_dir,sstable};do ln -s data/1/$i/obdemo/$t home/admin/$i/store/obdemo/$t; done; \for t in {clog,etc2,ilog,slog,oob_clog};do ln -s data/log1/$i/obdemo/$t home/admin/$i/store/obdemo/$t; done; \donetree ~/node*tree data/{1,log1}/

-o后面的内容,可以自己探索。如果你主机的内存资源是 64 的倍数,你可以尝试调整里面内存有关的参数(
memory_limit)。
port=2880; \for i in {3,4,5,6,7,8}; do \echo $i; node="node"$[$i-2]; \cd home/admin/$node/ && home/admin/$node/bin/observer -i bond0 -p $[$port+1] -P $[$port+2] -z "zone"$[$i%3+1] -d home/admin/$node/store/obdemo -r '11.166.87.5:2882:2881;11.166.87.5:3882:3881;11.166.87.5:4882:4881' -c 20201010 -n obdemo -o "memory_limit=8G,cache_wash_threshold=1G,row_purge_thread_count=1,net_thread_count=1,enable_syslog_recycle=True,enable_merge_by_turn=FALSE,cpu_count=16,location_refresh_thread_count=2,max_syslog_file_count=3,major_freeze_duty_time=Disable,__easy_memory_limit=1G,schema_history_expire_time=1d,merge_thread_count=1,writing_throttling_trigger_percentage=70,_max_trx_size=2M,workers_per_cpu_quota=2,enable_separate_sys_clog=0,datafile_disk_percentage=50,__min_full_resource_pool_memory=536870912,system_memory=5G,memory_chunk_cache_size=128M,trace_log_slow_query_watermark=10s,writing_throttling_maximum_duration=1m,switchover_process_thread_count=1,datafile_size=10G,minor_freeze_times=500,stack_size=1536K,disk_io_thread_coun=1,config_additional_dir=/data/1/$node/obdemo/etc3;/data/log1/$node/obdemo/etc2" ; \sleep 3; \port=$[$port+1000]; \echo ;cd ~; \done;ps -ef|grep observernetstat -ntlp |grep observer


mysql -h127.1 -uroot -P2881 -p -c -Aset session ob_query_timeout=1000000000; alter system bootstrap ZONE 'zone1' SERVER '11.166.87.5:2882', ZONE 'zone2' SERVER '11.166.87.5:3882', ZONE 'zone3' SERVER '11.166.87.5:4882' ;alter user root identified by '123456';

mysql -h127.1 -uroot@sys -P2881 -p123456 -c -A oceanbaseshow databases;-- 查看集群资源select a.zone,concat(a.svr_ip,':',a.svr_port) observer, cpu_total, (cpu_total-cpu_assigned) cpu_free, round(mem_total/1024/1024/1024) mem_total_gb, round((mem_total-mem_assigned)/1024/1024/1024) mem_free_gb, usec_to_time(b.last_offline_time) last_offline_time, usec_to_time(b.start_service_time) start_service_time, b.statusfrom __all_virtual_server_stat a join __all_server b on (a.svr_ip=b.svr_ip and a.svr_port=b.svr_port)order by a.zone, a.svr_ip;-- 逐个的扩容节点,注意节点的端口号和 zone 名称必须跟前面节点启动参数一一对应。alter system add server '11.166.87.5:5882' zone 'zone1';alter system add server '11.166.87.5:6882' zone 'zone2';alter system add server '11.166.87.5:7882' zone 'zone3' ;

configurl_server.py来模拟这个 API。
nohup python configurl_server.py `hostname -i` 8088 2>&1 1>/tmp/configurl_server.log &mysql -h127.1 -uroot@sys -P2881 -p123456 -c -A oceanbasealter system set obconfig_url='http://11.166.87.5:8088/services?Action=ObRootServiceInfo&ObRegion=obdemo';


mysql -h127.1 -uroot@sys -P2881 -p123456 -c -A oceanbaseCREATE resource unit my_unit_config max_cpu=8, min_cpu=4, max_memory='1G', min_memory='1G', max_iops=10000, min_iops=1000, max_session_num=1000000, max_disk_size='1024G'; CREATE resource pool oracle_pool unit = 'my_unit_config', unit_num = 1;CREATE tenant obbmsql resource_pool_list=('oracle_pool'), primary_zone='RANDOM',comment 'oracle tenant/instance', charset='utf8' set ob_tcp_invited_nodes='%', ob_compatibility_mode='oracle';
select a.zone,concat(a.svr_ip,':',a.svr_port) observer, cpu_total, (cpu_total-cpu_assigned) cpu_free, round(mem_total/1024/1024/1024) mem_total_gb, round((mem_total-mem_assigned)/1024/1024/1024) mem_free_gb, usec_to_time(b.last_offline_time) last_offline_time, usec_to_time(b.start_service_time) start_service_time, b.statusfrom __all_virtual_server_stat a join __all_server b on (a.svr_ip=b.svr_ip and a.svr_port=b.svr_port)order by a.zone, a.svr_ip;select t1.name resource_pool_name, t2.`name` unit_config_name, t2.max_cpu, t2.min_cpu, round(t2.max_memory/1024/1024/1024) max_mem_gb, round(t2.min_memory/1024/1024/1024) min_mem_gb, t3.unit_id, t3.zone, concat(t3.svr_ip,':',t3.`svr_port`) observer,t4.tenant_id, t4.tenant_namefrom __all_resource_pool t1 join __all_unit_config t2 on (t1.unit_config_id=t2.unit_config_id) join __all_unit t3 on (t1.`resource_pool_id` = t3.`resource_pool_id`) left join __all_tenant t4 on (t1.tenant_id=t4.tenant_id)order by t1.`resource_pool_id`, t2.`unit_config_id`, t3.unit_id;

扩资源规格。 扩资源单元数量。
mysql -h127.1 -uroot@sys -P2881 -p123456 -c -A oceanbasealter resource unit my_unit_config max_memory='2G';alter resource pool oracle_pool unit_num=2;

路由问题
oracle 租户访问问题
ODC下载地址:
https://help.aliyun.com/document_detail/142073.html
这里要注意:
启动 observer 进程必须在 admin 用户下,且必须在软件目录 home/admin/oceanbase/ 下运行启动命令。注意本文每个节点软件目录都不一样。
第二次启动 observer 不需要带前面的参数。除非你想定制化修改某个参数。
合并
alter system major freeze;SELECT DATE_FORMAT(gmt_create, '%b%d %H:%i:%s') gmt_create_ , module, event, name1, value1, name2, value2, rs_svr_ipFROM __all_rootservice_event_historyWHERE 1 = 1 ORDER BY gmt_create DESCLIMIT 10;
杀进程
kill -9 `pidof observer`sleep 10ps -ef|grep observer
启动节点
for i in {1,2,3,4,5,6}; do \echo $i; node="node"$[$i]; \cd home/admin/$node && bin/observer ; \
sleep 1; \
done
ps -ef|grep observer


HAVE FUN! 😆




