暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

OceanBase手动部署、扩容、缩容全纪录

原创 ziyoo0830 2021-12-08
1051

OceanBase手动部署、扩容、缩容全纪录

主要记录了OceanBase手动部署的过程,包括单节点部署、手动扩容至3单节点、手动扩容至6节点、手动缩容至3节点并下线节点、obproxy手动部署等。

^ : 整个过程使用admin用户进行安装,adminsudo root权限。

服务器信息

24C,128GB,/data目录剩余空间大于1T(如果空间不多的话,一个节点给20GB即可,再小的空间没有验证过。)

软件安装

从官网# https://www.oceanbase.com/softwareCenter/community下载主要的软件,包括:oceanbase-ceoceanbase-ce-libsobproxyobclientrpm包。

rpm包信息

[admin@localhost ~]$ tree obsoft/ -L 1 obsoft/ ├── libobclient-2.0.0-2.el7.x86_64.rpm ├── obclient-2.0.0-2.el7.x86_64.rpm ├── obproxy-3.2.0-1.el7.x86_64.rpm ├── oceanbase-ce-3.1.1-4.el7.x86_64.rpm ├── oceanbase-ce-libs-3.1.1-4.el7.x86_64.rpm └── oceanbase-ce-utils-3.1.1-4.el7.x86_64.rpm 1 directory, 5 files

执行安装

# 如果之前安装过,可使用下面的命令进行清理 [admin@localhost ~]$ rpm -e `rpm -qa|grep oceanbase` # 软件会默认安装到admin用户下。 [admin@localhost ~]$ sudo rpm -ivh oceanbase-ce-libs-3.1.1-4.el7.x86_64.rpm sudo rpm -ivh oceanbase-ce-3.1.1-4.el7.x86_64.rpm sudo rpm -ivh obclient-2.0.0-2.el7.x86_64.rpm sudo rpm -vih libobclient-2.0.0-2.el7.x86_64.rpm

查看安装后的信息

# 使用rpm -ql命令进行查询,示例如下: [admin@localhost ~]$ rpm -ql oceanbase-ce /home/admin/oceanbase/bin /home/admin/oceanbase/bin/import_time_zone_info.py /home/admin/oceanbase/bin/observer /home/admin/oceanbase/etc /home/admin/oceanbase/etc/timezone_V1.log

安装后的软件信息

[admin@localhost ~]$ tree /home/admin/oceanbase/ oceanbase/ ├── bin │   ├── import_time_zone_info.py │   └── observer ├── etc │   └── timezone_V1.log └── lib ├── libaio.so -> libaio.so.1.0.1 ├── libaio.so.1 -> libaio.so.1.0.1 ├── libaio.so.1.0.1 ├── libmariadb.so -> libmariadb.so.3 └── libmariadb.so.3

单节点部署

创建目录

[admin@localhost ~]$ sudo chown admin:admin /data/obdata/ -R [admin@localhost ~]$ mkdir -p /data/obdata/observer01/store/slog [admin@localhost ~]$ mkdir -p /data/obdata/observer01/store/sstable # 其余的目录observer进程启动时会自动创建

启动observer进程

# 设置lib信息 [admin@localhost ~]$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/admin/oceanbase/lib/ [admin@localhost ~]$ cd /data/obdata/observer01/ && /home/admin/oceanbase/bin/observer -i em1 -p 2881 -P 2882 -z zone1 -d /data/obdata/observer01/store -r '192.168.101.100:2882:2881' -c 20211207 -n obdemo -o "memory_limit=8G,cache_wash_threshold=1G,__min_full_resource_pool_memory=268435456,system_memory=3G,memory_chunk_cache_size=128M,cpu_count=16,net_thread_count=4,datafile_size=20G,stack_size=1536K,config_additional_dir=/data/obdata/observer01/etcdata3/etc3;/data/obdata/observer01/etcdata2/etc2" # 其中:-n 是指定集群的名字,如果不指定,默认的集群叫:obcluster。 [admin@localhost ~]$ ps -ef |grep observer # 查看进程信息

集群bootstrap

[admin@localhost ~]$mysql -h127.1 -uroot -P2881 -p -c -A # 默认空密码 mysql> set session ob_query_timeout=1000000000; mysql> alter system bootstrap ZONE 'zone1' SERVER '192.168.101.100:2882' ; mysql> alter user root identified by 'oracle_4U' ; # 更改root密码 mysql> exit; [admin@localhost ~]$ mysql -h127.1 -uroot -P2881 -poracle_4U -c -A oceanbase # 可参考附录中 常用SQL 对一些基本信息进行查询

创建租户

-- 为避免资源不足,在服务器内存充足的情况,可以先增加memory_limit的值。如下:
mysql> alter system set memory_limit='12G' ; 

mysql> show parameters like 'memory_limit' \G
*************************** 1. row ***************************
      zone: zone1
  svr_type: observer
    svr_ip: 192.168.101.100
  svr_port: 2882
      name: memory_limit
 data_type: NULL
     value: 12G  # 已经变更为12GB
      info: the size of the memory reserved for internal use(for testing purpose), 0 means follow memory_limit_percentage. Range: 0, [8G,)
   section: OBSERVER
     scope: CLUSTER
    source: DEFAULT
edit_level: DYNAMIC_EFFECTIVE
1 row in set (0.00 sec)

                                                                                                                                      
mysql> CREATE resource unit my_unit_config max_cpu=4, min_cpu=4, max_memory='1G', min_memory='1G', max_iops=10000, min_iops=1000, max_session_num=1000000, max_disk_size='10G';
mysql> CREATE resource pool pool_mysql_01 unit = 'my_unit_config', unit_num = 1;
mysql> CREATE tenant mysql01 resource_pool_list=('pool_mysql_01'), primary_zone='RANDOM',comment 'mysql tenant/instance', charset='utf8mb4' set ob_tcp_invited_nodes='%', ob_compatibility_mode='mysql';

mysql> CREATE resource pool pool_mysql_02 unit = 'my_unit_config', unit_num = 1;
mysql> CREATE tenant mysql02 resource_pool_list=('pool_mysql_02'), primary_zone='RANDOM',comment 'mysql tenant/instance', charset='utf8' set ob_tcp_invited_nodes='%', ob_compatibility_mode='mysql';

mysql> select * from __all_tenant;  -- 或 select * from gv$tenant;

# 登录租户 mysql01 
[admin@tmgboss101100 oceanbase]$ mysql -h127.1 -uroot@mysql01 -P2881 -p -c -A oceanbase #root默认密码为空,可以使用alter user更改,这里的root和sys租户的root用户不是同一个。
                                                                                                                                      
# 创建库和表,也方便扩容后验证。                                                                                                                                     
mysql> create database db1;
mysql> use db1;
mysql> create table t1(id int); 
mysql> insert into t1 values(1),(2),(3) ;
mysql> select * from t1 ;
+------+
| id   |
+------+
|    1 |
|    2 |
|    3 |
+------+
3 rows in set (0.00 sec)

扩容至3节点

扩容第二个节点

创建目录

[admin@localhost ~]$ mkdir -p /data/obdata/observer02/store/slog [admin@localhost ~]$ mkdir -p /data/obdata/observer02/store/sstable

启动observer进程

# 确保所有的observer01都替换成observer02。 # -z zone2 [admin@localhost ~]$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/admin/oceanbase/lib/ [admin@localhost ~]$ cd /data/obdata/observer02/ && /home/admin/oceanbase/bin/observer -i em1 -p 3881 -P 3882 -z zone2 -d /data/obdata/observer02/store -r '192.168.101.100:2882:2881' -c 20211207 -n obdemo -o "memory_limit=8G,cache_wash_threshold=1G,__min_full_resource_pool_memory=268435456,system_memory=3G,memory_chunk_cache_size=128M,cpu_count=16,net_thread_count=4,datafile_size=20G,stack_size=1536K,config_additional_dir=/data/obdata/observer02/etcdata3/etc3;/data/obdata/observer02/etcdata2/etc2" [admin@localhost ~]$ pidof observer # 查看进程信息

添加到集群

mysql> select * from __all_zone where name in ('region','status','zone_type');
+----------------------------+----------------------------+-------+-----------+-------+----------------+
| gmt_create                 | gmt_modified               | zone  | name      | value | info           |
+----------------------------+----------------------------+-------+-----------+-------+----------------+
| 2021-12-07 16:13:55.586766 | 2021-12-07 16:13:55.586766 | zone1 | region    |     0 | default_region |
| 2021-12-07 16:13:55.584654 | 2021-12-07 16:13:55.584654 | zone1 | status    |     2 | ACTIVE         |
| 2021-12-07 16:13:55.586766 | 2021-12-07 16:13:55.586766 | zone1 | zone_type |     0 | ReadWrite      |
+----------------------------+----------------------------+-------+-----------+-------+----------------+

mysql> alter system add zone 'zone2' region 'default_region';
mysql> alter system start zone 'zone2';
mysql> alter system add server '192.168.101.100:3882' zone 'zone2';      
mysql> alter system start server '192.168.101.100:3882' zone 'zone2';    

mysql> alter resource pool pool_mysql_01 zone_list=('zone1','zone2') ;                        

mysql>select t1.name resource_pool_name, t2.`name` unit_config_name, t2.max_cpu, t2.min_cpu, t2.max_memory/1024/1024/1024 max_mem_gb, 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_name
from __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> alter tenant mysql01 locality='FULL{1}@zone1, FULL{1}@zone2';
mysql> select gmt_create,gmt_modified,job_id,job_type,job_status,return_code,progress,tenant_id from __all_rootservice_job;

扩容第三个节点

创建目录

[admin@localhost ~]$ mkdir -p /data/obdata/observer03/store/slog [admin@localhost ~]$ mkdir -p /data/obdata/observer03/store/sstable

启动observer进程

# 确保所有的observer01都替换成observer03. # -z zone3 [admin@localhost ~]$ cd /data/obdata/observer03/ && /home/admin/oceanbase/bin/observer -i em1 -p 4881 -P 4882 -z zone3 -d /data/obdata/observer03/store -r '192.168.101.100:2882:2881' -c 20211207 -n obdemo -o "memory_limit=8G,cache_wash_threshold=1G,__min_full_resource_pool_memory=268435456,system_memory=3G,memory_chunk_cache_size=128M,cpu_count=16,net_thread_count=4,datafile_size=20G,stack_size=1536K,config_additional_dir=/data/obdata/observer03/etcdata3/etc3;/data/obdata/observer03/etcdata2/etc2"

添加到集群

mysql> alter system add zone 'zone3' region 'default_region'; mysql> alter system start zone 'zone3'; mysql> alter system add server '192.168.101.100:4882' zone 'zone3'; mysql> alter system start server '192.168.101.100:4882' zone 'zone3' ; mysql> alter resource pool pool_mysql_01 zone_list=('zone1','zone2','zone3') ; mysql> select t1.name resource_pool_name, t2.`name` unit_config_name, t2.max_cpu, t2.min_cpu, t2.max_memory/1024/1024/1024 max_mem_gb, 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_name from __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> alter tenant mysql01 locality='FULL{1}@zone1, FULL{1}@zone2, FULL{1}@zone3'; mysql> select gmt_create,gmt_modified,job_id,job_type,job_status,return_code,progress,tenant_id from __all_rootservice_job; --直到success为止。

登录验证

分别通过2881,3881,4881端口登录mysql01租户,验证数据是否存在。root密码默认空。

[admin@localhost ~]$  mysql -h127.1 -uroot@mysql01 -P2881 -p -c -A oceanbase 
mysql> select * from db1.t1;
+------+
| id   |
+------+
|    1 |
|    2 |
|    3 |
+------+
3 rows in set (0.00 sec)
 
[admin@localhost ~]$ mysql -h127.1 -uroot@mysql01 -P3881 -p -c -A oceanbase 
mysql> select * from db1.t1; 
+------+
| id   |
+------+
|    1 |
|    2 |
|    3 |
+------+
3 rows in set (0.00 sec)

[admin@localhost ~]$ mysql -h127.1 -uroot@mysql01 -P4881 -p -c -A oceanbase 
mysql> select * from db1.t1; 
+------+
| id   |
+------+
|    1 |
|    2 |
|    3 |
+------+
3 rows in set (0.01 sec)

obproxy安装

安装

[admin@localhost ~]$ sudo rpm -ivh obproxy-3.2.0-1.el7.x86_64.rpm #安装完成目录结构如下: [admin@localhost ~]$ tree /home/admin/obproxy-3.2.0/ /home/admin/obproxy-3.2.0/ └── bin ├── obproxy └── obproxyd.sh 1 directory, 2 files

创建内部账户

[admin@localhost ~]$ mysql -h127.1 -uroot -P4881 -p -c -A oceanbase mysql> create user proxyro identified by 'oracle_4U'; mysql> grant select on oceanbase.* to proxyro;

启动

[admin@localhost ~]$ mkdir /data/obdata/obproxy -p [admin@localhost ~]$ cd /data/obdata/obproxy && /home/admin/obproxy-3.2.0/bin/obproxy -p2883 -c obdemo -r "192.168.101.100:2881;192.168.101.100:3881;192.168.101.100:4881" -o "enable_cluster_checkout=false,enable_strict_kernel_release=false,enable_metadb_used=false" [admin@localhost ~]$ netstat -ntlp | grep 2883 (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) tcp 0 0 0.0.0.0:2883 0.0.0.0:* LISTEN 4021/obproxy # 登录obproxy [admin@localhost ~]$ mysql -h127.1 -P2883 -uroot@proxysys -p -A -c # 默认密码为空 mysql> show proxyconfig like '%password%'; mysql> alter proxyconfig set observer_sys_password ='oracle_4U' ; mysql> alter proxyconfig set obproxy_sys_password = 'oracle_4U' ; # 验证 [admin@localhost ~]$ obclient -h127.1 -uroot@sys#obdemo -P2883 -poracle_4U -c -A oceanbase [admin@localhost ~]$ obclient -h127.1 -uroot@mysql01#obdemo -P2883 -p -c -A oceanbase # 密码为空

在线更换服务器

扩容至六节点

创建目录

[admin@localhost ~]$ mkdir -p /data/obdata/observer0{6,7,8}/store/slog [admin@localhost ~]$ mkdir -p /data/obdata/observer0{6,7,8}/store/sstable

启动observer进程

[admin@localhost ~]$ cd /data/obdata/observer06/ && /home/admin/oceanbase/bin/observer -i em1 -p 6881 -P 6882 -z zone6 -d /data/obdata/observer06/store -r '192.168.101.100:2882:2881' -c 20211207 -n obdemo -o "memory_limit=8G,cache_wash_threshold=1G,__min_full_resource_pool_memory=268435456,system_memory=3G,memory_chunk_cache_size=128M,cpu_count=16,net_thread_count=4,datafile_size=20G,stack_size=1536K,config_additional_dir=/data/obdata/observer06/etcdata3/etc3;/data/obdata/observer06/etcdata2/etc2" [admin@localhost ~]$ cd /data/obdata/observer07/ && /home/admin/oceanbase/bin/observer -i em1 -p 7881 -P 7882 -z zone7 -d /data/obdata/observer07/store -r '192.168.101.100:2882:2881' -c 20211207 -n obdemo -o "memory_limit=8G,cache_wash_threshold=1G,__min_full_resource_pool_memory=268435456,system_memory=3G,memory_chunk_cache_size=128M,cpu_count=16,net_thread_count=4,datafile_size=20G,stack_size=1536K,config_additional_dir=/data/obdata/observer07/etcdata3/etc3;/data/obdata/observer07/etcdata2/etc2" [admin@localhost ~]$ cd /data/obdata/observer08/ && /home/admin/oceanbase/bin/observer -i em1 -p 8881 -P 8882 -z zone8 -d /data/obdata/observer08/store -r '192.168.101.100:2882:2881' -c 20211207 -n obdemo -o "memory_limit=8G,cache_wash_threshold=1G,__min_full_resource_pool_memory=268435456,system_memory=3G,memory_chunk_cache_size=128M,cpu_count=16,net_thread_count=4,datafile_size=20G,stack_size=1536K,config_additional_dir=/data/obdata/observer08/etcdata3/etc3;/data/obdata/observer08/etcdata2/etc2"

添加到集群

mysql> select * from __all_zone where name in ('region','status','zone_type');
mysql> alter system add zone 'zone6' region 'default_region';
mysql> alter system start zone 'zone6';
mysql> alter system add server '192.168.101.100:6882' zone 'zone6';      
mysql> alter system start server '192.168.101.100:6882' zone 'zone6';    

mysql> alter system add zone 'zone7' region 'default_region';
mysql> alter system start zone 'zone7';
mysql> alter system add server '192.168.101.100:7882' zone 'zone7';      
mysql> alter system start server '192.168.101.100:7882' zone 'zone7';   

mysql> alter system add zone 'zone8' region 'default_region';
mysql> alter system start zone 'zone8';
mysql> alter system add server '192.168.101.100:8882' zone 'zone8';      
mysql> alter system start server '192.168.101.100:8882' zone 'zone8';    

mysql> alter resource pool pool_mysql_01 zone_list=('zone1','zone2','zone3','zone6','zone7','zone8') ;

mysql> select t1.name resource_pool_name, t2.`name` unit_config_name, t2.max_cpu, t2.min_cpu, t2.max_memory/1024/1024/1024 max_mem_gb, 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_name
from __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> alter tenant mysql01 locality='FULL{1}@zone1, FULL{1}@zone2, FULL{1}@zone3, FULL{1}@zone6';
mysql> select gmt_create,gmt_modified,job_id,job_type,job_status,return_code,progress,tenant_id from __all_rootservice_job;
mysql> alter tenant mysql01 locality='FULL{1}@zone1, FULL{1}@zone2, FULL{1}@zone3, FULL{1}@zone6, FULL{1}@zone7';
mysql> alter tenant mysql01 locality='FULL{1}@zone1, FULL{1}@zone2, FULL{1}@zone3, FULL{1}@zone6, FULL{1}@zone7, FULL{1}@zone8';

验证

[admin@localhost ~]$ mysql -uroot@mysql01 -p -P8881 -h127.1 -c -A  oceanbase       
mysql> select * from db1.t1; 
+------+
| id   |
+------+
|    1 |
|    2 |
|    3 |
+------+
3 rows in set (0.04 sec)

zone1zone2zone3下线

# 先改资源池里的zone属性,再改tenant的locality属性,locality只能逐个递增添加,不支持一次添加多个。

mysql> select * from gv$tenant;
mysql> alter tenant mysql01 locality='FULL{1}@zone2, FULL{1}@zone3, FULL{1}@zone6, FULL{1}@zone7, FULL{1}@zone8';
mysql> alter tenant mysql01 locality='FULL{1}@zone3, FULL{1}@zone6, FULL{1}@zone7, FULL{1}@zone8';
mysql> alter tenant mysql01 locality='FULL{1}@zone6, FULL{1}@zone7, FULL{1}@zone8';
mysql> alter resource pool pool_mysql_01 zone_list=('zone6','zone7','zone8');


mysql> alter resource pool pool_mysql_02 zone_list=('zone1','zone8');                                                                                   
mysql> alter tenant mysql02 locality='FULL{1}@zone1,FULL{1}@zone8';
mysql> alter resource pool pool_mysql_02 zone_list=('zone1','zone8','zone6');
mysql> alter tenant mysql02 locality='FUll{1}@zone1,FULL{1}@zone8, FULL{1}@zone6';
mysql> alter tenant mysql02 locality='FULL{1}@zone8, FULL{1}@zone6';
mysql> alter tenant mysql02 primary_zone='zone6' ; 

mysql> alter tenant mysql02 locality='FULL{1}@zone6';  
-- 这里会报错:ERROR 4179 (HY000): violate locality principal not allowed。
-- 不允许缩容到一个副本。 只有搭建单集群的时候才会出现单副本的情况。


# 修改sys租户资源池及locality

mysql> alter resource pool sys_pool zone_list('zone6','zone7','zone8') ;
ERROR 4179 (HY000): Cannot add and delete zones at the same time not allowed  # 原来sys_pool里只有zone1,上述命令效果是删除和添加,提示不允许。
mysql> alter resource pool sys_pool zone_list('zone1','zone6','zone7','zone8') ;

msyql> alter resource pool sys_pool zone_list=('zone6') ;                
ERROR 4179 (HY000): alter resource pool zone list with not empty unit not allowed
# 上面报错了,先去修改sys租户的locality。
mysql> alter tenant sys locality='FUll{1}@zone7,FULL{1}@zone1';                
mysql>select gmt_create,gmt_modified,job_id,job_type,job_status,return_code,progress,tenant_id from __all_rootservice_job;  -- 查看进度 


mysql> alter tenant sys primary_zone='zone7;zone1' ;
mysql> alter tenant sys locality='FUll{1}@zone7,FULL{1}@zone1,FULL{1}@zone6';   
mysql> alter tenant sys locality='FUll{1}@zone7,FULL{1}@zone6';


-- 删除zone1、zone2、zone3
mysql> alter system delete server '192.168.101.100:2882' zone 'zone1';
mysql> alter system delete server '192.168.101.100:3882' zone 'zone2';
mysql> alter system delete server '192.168.101.100:4882' zone 'zone3';

mysql> alter system delete zone 'zone1';
mysql> alter system delete zone 'zone2';
mysql> alter system delete zone 'zone3';


-- 杀掉进程 、 删除目录
[admin@localhost ~]$ for obid in `pidof observer`; do ls -l /proc/$obid/cwd; done
lrwxrwxrwx 1 admin admin 0 Dec  8 11:18 /proc/39101/cwd -> /data/obdata/observer02
lrwxrwxrwx 1 admin admin 0 Dec  8 11:18 /proc/33240/cwd -> /data/obdata/observer01
lrwxrwxrwx 1 admin admin 0 Dec  8 11:18 /proc/26951/cwd -> /data/obdata/observer03
lrwxrwxrwx 1 admin admin 0 Dec  8 11:18 /proc/20414/cwd -> /data/obdata/observer08
lrwxrwxrwx 1 admin admin 0 Dec  8 11:18 /proc/19234/cwd -> /data/obdata/observer07
lrwxrwxrwx 1 admin admin 0 Dec  8 11:18 /proc/17157/cwd -> /data/obdata/observer06
[admin@localhost ~]$ kill -9 39101 33240 26951
[admin@localhost ~]$ rm -rf /data/obdata/observer0{1,2,3}

重新配置obproxy

参考前面obproxy安装部分,此处省略。

附录

常用SQL

# 查看集群可用资源 select a.zone,concat(a.svr_ip,':',a.svr_port) observer, cpu_total, cpu_assigned, (cpu_total-cpu_assigned) cpu_free, mem_total/1024/1024/1024 mem_total_gb, mem_assigned/1024/1024/1024 mem_assign_gb, (mem_total-mem_assigned)/1024/1024/1024 mem_free_gb from __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, t2.max_memory/1024/1024/1024 max_mem_gb, 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_name from __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; # 查看所有的资源规格 select * from __all_unit_config; # 创建资源池 create resource pool pool_1 unit='S1' , unit_num=1, zone_list=('zone1' ,'zone2') ; create resource pool pool_2 unit='S2' , unit_num=1, zone_list=('zone3'); # 创建租户 create tenant obmysql resource_pool_list=('pool_1','pool_2'), primary_zone='RANDOM',comment 'mysql tenant/instance', charset='utf8' set ob_tcp_invited_nodes='%' ; ## ob_tcp_invited_nodes 控制哪些主机可以访问,类似MySQL创建用户时host配置。 #查看所有的租户信息 select * from gv$tenant; #连接新建的obmysql租户 obclient -uroot@obmysql#obcluster -h127.0.1 -P2883 -poracle_4U! -A -c # root默认密码为空,可通过alter user identified by语句修改。这个的root与sys租户下的root是独立的。

分盘

# 生产环境官方建议data和redo目录分开存放,可以这样模拟尝试。 [admin@tmgboss101100 observer01]$ mkdir -p /data/obdata/observer01/data/obdemo/{sstable,etc3} /data/obdata/observer01/redo/obdemo/{clog,ilog,slog,etc2} [admin@tmgboss101100 obdemo]$ sudo mkdir -p /home/admin/oceanbase/obstore1/obdemo [admin@tmgboss101100 obdemo]$ sudo chown -R admin:admin /home/admin/oceanbase/obstore1 # 软链接 [admin@tmgboss101100 ~]$ for f in {clog,ilog,slog,etc2}; do ln -s /data/obdata/observer01/redo/obdemo/$f ~/oceanbase/obstore1/obdemo/$f ; done ## 拆分命令如下: ln -s /data/obdata/observer01/redo/obdemo/clog ~/observer01/obstore1/obdemo/clog ln -s /data/obdata/observer01/redo/obdemo/ilog ~/observer01/obstore1/obdemo/ilog ln -s /data/obdata/observer01/redo/obdemo/slog ~/observer01/obstore1/obdemo/slog ln -s /data/obdata/observer01/redo/obdemo/etc2 ~/observer01/obstore1/obdemo/etc2 [admin@tmgboss101100 ~]$ for f in {sstable,etc3}; do ln -s /data/obdata/observer01/data/obdemo/$f ~/oceanbase/obstore1/obdemo/$f; done # 完成后的目录结构如下: [admin@tmgboss101100 oceanbase]$ tree ~/oceanbase /home/admin/oceanbase ├── bin │   ├── import_time_zone_info.py │   └── observer ├── etc │   └── timezone_V1.log ├── lib │   ├── libaio.so -> libaio.so.1.0.1 │   ├── libaio.so.1 -> libaio.so.1.0.1 │   ├── libaio.so.1.0.1 │   ├── libmariadb.so -> libmariadb.so.3 │   └── libmariadb.so.3 └── obstore1 └── obdemo ├── clog -> /data/obdata/observer01/redo/obdemo/clog ├── etc2 -> /data/obdata/observer01/redo/obdemo/etc2 ├── etc3 -> /data/obdata/observer01/data/obdemo/etc3 ├── ilog -> /data/obdata/observer01/redo/obdemo/ilog ├── slog -> /data/obdata/observer01/redo/obdemo/slog └── sstable -> /data/obdata/observer01/data/obdemo/sstable 11 directories, 8 files

卸载

sudo rpm -e `rpm -qa|grep oceanbase` /bin/rm /home/admin/oceanbase
最后修改时间:2021-12-08 12:36:12
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论