oceanbase官网ob2.2迷你试用版mini-ob-deploy.tar,已经可以提供下载,只需2c8g即可安装部署,本篇部署一个1-1-1架构的2c8g迷你版ob2.2集群。
本系列总的专栏:一步一步学习OceanBase系列
OceanBase 2.2集群实战第七篇——2c8g迷你版安装部署体验
一、安装规划
1.1、服务器规划:
官网下载的ob2.2迷你试用版mini-ob-deploy.tar,只需2c8g即可安装部署,这里部署一个1-1-1架构的集群,只需要三台服务器,采用手动安装OB2.2集群2c8g试用版。
节点信息:2cpu+8g内存
ob01: 192.168.0.220
ob02: 192.168.0.213
ob03: 192.168.0.162
端口
ob集群内RPC服务端口 2882
observer客户端端口 2881
obproxy客户端端口 2883
安装用户 admin
安装目录 /home/admin/oceanbase
集群名称 obdemo
1.2、磁盘规划:
# df -h |egrep home\|data
/dev/sdb1 50G 33M 50G 1% /home
/dev/sdc1 50G 33M 50G 1% /data/1
/dev/sdd1 50G 33M 50G 1% /data/log1
1.3、操作系统:
# cat /etc/system-release
CentOS Linux release 7.6.1810 (Core)
二、准备安装环境
参考之前的手动安装文章,主要是操作系统检查、yum源安装、内核参数、会话参数、防火墙、时钟同步、安装用户创建等,这里就不累赘了。。。
三、开始手动安装OceanBase2.2集群
3.1、上传软件并解压
这里把mini版的ob2.2软件包解压到目录/home/admin/下,并修改目录权限为admin:admin。
# ll
total 81268
-rw-r--r--. 1 root root 83216182 Oct 13 14:47 mini-ob-deploy.tar
# tar -xvf mini-ob-deploy.tar -C /home/admin/
# cd /home/admin
# ll
total 4
drwxr-xr-x. 11 121066 users 4096 Aug 20 11:39 mini-ob-deploy
# chown -R admin:admin /home/admin/mini-ob-deploy
# ll
total 4
drwxr-xr-x. 11 admin admin 4096 Aug 20 11:39 mini-ob-deploy
#
3.2、清理老的OB(第一次不用,方便后面安装ob集群有问题时,重新做)
su - admin
kill -9 `pidof observer`
sleep 3
/bin/rm -rf /data/1/obdemo
/bin/rm -rf /data/log1/obdemo
/bin/rm -rf /home/admin/oceanbase
ps -ef|grep observer
df -h |egrep home\|data
--*/
3.3、admin用户登录,初始化目录
#su - admin
$ ll
total 4
drwxr-xr-x. 11 admin admin 4096 Aug 20 11:39 mini-ob-deploy
$ pwd
/home/admin
$
执行以下命令初始目录:
mkdir -p /data/1/obdemo/{etc3,sort_dir,sstable}
mkdir -p /data/log1/obdemo/{clog,etc2,ilog,slog,oob_clog}
mkdir -p ~/oceanbase/{admin,bin,etc,store}
mkdir -p ~/oceanbase/store/obdemo
cp ~/mini-ob-deploy/bin/observer ~/oceanbase/bin/
for t in {etc3,sort_dir,sstable};do ln -s /data/1/obdemo/$t /home/admin/oceanbase/store/obdemo/$t; done
for t in {clog,etc2,ilog,slog,oob_clog};do ln -s /data/log1/obdemo/$t /home/admin/oceanbase/store/obdemo/$t; done
检查:
$ ll
total 4
drwxr-xr-x. 11 admin admin 4096 Aug 20 11:39 mini-ob-deploy
drwxrwxr-x. 6 admin admin 54 Oct 13 16:39 oceanbase
$ tree /data
/data
├── 1
│ └── obdemo
│ ├── etc3
│ ├── sort_dir
│ └── sstable
└── log1
└── obdemo
├── clog
├── etc2
├── ilog
├── oob_clog
└── slog
12 directories, 0 files
$ tree ~/oceanbase
/home/admin/oceanbase
├── admin
├── bin
│ └── observer
├── etc
└── store
└── obdemo
├── clog -> /data/log1/obdemo/clog
├── etc2 -> /data/log1/obdemo/etc2
├── etc3 -> /data/1/obdemo/etc3
├── ilog -> /data/log1/obdemo/ilog
├── oob_clog -> /data/log1/obdemo/oob_clog
├── slog -> /data/log1/obdemo/slog
├── sort_dir -> /data/1/obdemo/sort_dir
└── sstable -> /data/1/obdemo/sstable
13 directories, 1 file
3.4、启动OBserver进程
到每个节点的admin用户下,启动observer进程,注意修改 zone, IP, 网卡名字。
注意这里的参数设置,由于迷你版2c8g资源较少,因此需要特殊设置部分内存参数。
# su - admin
$ cd /home/admin/oceanbase
zone1 201节点:
$ bin/observer -i eth0 -P 2882 -p 2881 -z zone1 -d /home/admin/oceanbase/store/obdemo -r '192.168.0.220:2882:2881;192.168.0.213:2882:2881;192.168.0.162:2882:2881' -c 20201013 -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=90,__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=40G,minor_freeze_times=500,stack_size=1536K,disk_io_thread_coun=1,config_additional_dir=/data/1/obdemo/etc3;/data/log1/obdemo/etc2"
$
$ ps -ef|grep observer
$ netstat -ntlp |grep observer
$ df -h |egrep home\|data
$
zone2 202节点:
$ bin/observer -i eth0 -P 2882 -p 2881 -z zone2 -d /home/admin/oceanbase/store/obdemo -r '192.168.0.220:2882:2881;192.168.0.213:2882:2881;192.168.0.162:2882:2881' -c 20201013 -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=90,__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=40G,minor_freeze_times=500,stack_size=1536K,disk_io_thread_coun=1,config_additional_dir=/data/1/obdemo/etc3;/data/log1/obdemo/etc2"
$ ps -ef|grep observer
$ netstat -ntlp |grep observer
$ df -h |egrep home\|data
$ cat log/observer.log
zone3 203节点:
$ bin/observer -i eth0 -P 2882 -p 2881 -z zone3 -d /home/admin/oceanbase/store/obdemo -r '192.168.0.220:2882:2881;192.168.0.213:2882:2881;192.168.0.162:2882:2881' -c 20201013 -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=90,__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=40G,minor_freeze_times=500,stack_size=1536K,disk_io_thread_coun=1,config_additional_dir=/data/1/obdemo/etc3;/data/log1/obdemo/etc2"
$ ps -ef|grep observer
$ netstat -ntlp |grep observer
$ df -h |egrep home\|data
$ cat log/observer.log
3.5、初始化OB集群
3个节点的observer进程都启动后,开始集群初始化bootstrap,这一步至关重要,成败在此一举。
使用mysql命令登录任一节点,然后执行bootstrap集群初始化命令。
$ mysql -h192.168.0.220 -uroot -P2881 -p
MySQL [(none)]> set session ob_query_timeout=1000000000;
Query OK, 0 rows affected (0.00 sec)
MySQL [(none)]> alter system bootstrap ZONE 'zone1' SERVER '192.168.0.220:2882', ZONE 'zone2' SERVER '192.168.0.213:2882', ZONE 'zone3' SERVER '192.168.0.162:2882';
Query OK, 0 rows affected (26.03 sec)
MySQL [(none)]>
如果这一步初始化失败报错了,其原因很可能就是三节点observer进程启动参数有不对、observer相关目录权限不对、日志目录空间不足一定比例(跟数据目录合用了大目录,空间被数据目录占用了)、三节点时间不同步、节点内存资源不足等等。
请先排查这些问题点后,然后清理OB(从3.2开始)从头开始。
3.6、验证OB集群初始化成功
使用mysql命令登录任一节点,注意登录命令的username格式需要变化一下。ob集群默认会有个sys租户,该sys租户的管理员用户为root@sys,密码默认为空,初始化成功后请修改密码。
$ mysql -h127.1 -uroot@sys -P2881 -p -c -A
Enter password: --不要输入密码,直接回车
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 3221492296
Server version: 5.7.25 OceanBase 2.2.50 (r1-1c6441e8fb858c80da395f934f67ed305425864e) (Built Mar 6 2020 18:41:01)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]> select version();
+-----------+
| version() |
+-----------+
| 2.2.50 |
+-----------+
1 row in set (0.00 sec)
MySQL [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| oceanbase |
| information_schema |
| mysql |
| SYS |
| LBACSYS |
| ORAAUDITOR |
| test |
+--------------------+
7 rows in set (0.01 sec)
MySQL [(none)]>
能看到数据库列表里有oceanbase即可。
四、配置OB集群
4.1、修改sys租户管理员密码
ob集群默认会有个sys租户,集群初始化成功后,修改默认sys租户管理员root@sys的密码。
$ mysql -h127.1 -uroot@sys -P2881 -p -c -A
MySQL [(none)]> alter user root identified by 'admin123';
Query OK, 0 rows affected (0.05 sec)
MySQL [(none)]>
五、查看OB集群详细信息
$ mysql -h192.168.0.220 -uroot@sys -P2881 -padmin123 -c -A oceanbase
查看OB集群所有节点信息
MySQL [oceanbase]> select zone,svr_ip,svr_port,inner_port,with_rootserver,status,gmt_create from __all_server order by zone, svr_ip;
+-------+---------------+----------+------------+-----------------+--------+----------------------------+
| zone | svr_ip | svr_port | inner_port | with_rootserver | status | gmt_create |
+-------+---------------+----------+------------+-----------------+--------+----------------------------+
| zone1 | 192.168.0.220 | 2882 | 2881 | 1 | active | 2020-10-13 19:33:06.404265 |
| zone2 | 192.168.0.213 | 2882 | 2881 | 0 | active | 2020-10-13 19:33:06.398007 |
| zone3 | 192.168.0.162 | 2882 | 2881 | 0 | active | 2020-10-13 19:33:07.410344 |
+-------+---------------+----------+------------+-----------------+--------+----------------------------+
3 rows in set (0.01 sec)
查看OB集群所有租户信息,租户类别compatibility_mode,0为mysql兼容模式的租户, 1为oracle兼容模式的租户
MySQL [oceanbase]> select tenant_id, tenant_name, compatibility_mode,zone_list, locality ,primary_zone ,gmt_modified from __all_tenant;
+-----------+-------------+--------------------+-------------------+---------------------------------------------+-------------------+----------------------------+
| tenant_id | tenant_name | compatibility_mode | zone_list | locality | primary_zone | gmt_modified |
+-----------+-------------+--------------------+-------------------+---------------------------------------------+-------------------+----------------------------+
| 1 | sys | 0 | zone1;zone2;zone3 | FULL{1}@zone1, FULL{1}@zone2, FULL{1}@zone3 | zone1;zone2,zone3 | 2020-10-13 19:33:13.254743 |
+-----------+-------------+--------------------+-------------------+---------------------------------------------+-------------------+----------------------------+
1 row in set (0.00 sec)
查看OceanBase集群所有节点可用资源情况
MySQL [oceanbase]> select zone, svr_ip, svr_port,inner_port, cpu_total, cpu_assigned,
-> round(mem_total/1024/1024/1024) mem_total_gb,
-> round(mem_assigned/1024/1024/1024) mem_ass_gb,
-> round(disk_total/1024/1024/1024) disk_total_gb,
-> unit_num, substr(build_version,1,6) version
-> from __all_virtual_server_stat
-> order by zone, svr_ip, inner_port;
+-------+---------------+----------+------------+-----------+--------------+--------------+------------+---------------+----------+---------+
| zone | svr_ip | svr_port | inner_port | cpu_total | cpu_assigned | mem_total_gb | mem_ass_gb | disk_total_gb | unit_num | version |
+-------+---------------+----------+------------+-----------+--------------+--------------+------------+---------------+----------+---------+
| zone1 | 192.168.0.220 | 2882 | 2881 | 14 | 2.5 | 3 | 1 | 40 | 1 | 2.2.50 |
| zone2 | 192.168.0.213 | 2882 | 2881 | 14 | 2.5 | 3 | 1 | 40 | 1 | 2.2.50 |
| zone3 | 192.168.0.162 | 2882 | 2881 | 14 | 2.5 | 3 | 1 | 40 | 1 | 2.2.50 |
+-------+---------------+----------+------------+-----------+--------------+--------------+------------+---------------+----------+---------+
3 rows in set (0.00 sec)
MySQL [oceanbase]> 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,
-> round(disk_total/1024/1024/1024) disk_total_gb,unit_num,
-> substr(a.build_version,1,6) version,usec_to_time(b.start_service_time) start_service_time,b.status
-> 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;
+-------+--------------------+-----------+----------+--------------+-------------+---------------+----------+---------+----------------------------+--------+
| zone | observer | cpu_total | cpu_free | mem_total_gb | mem_free_gb | disk_total_gb | unit_num | version | start_service_time | status |
+-------+--------------------+-----------+----------+--------------+-------------+---------------+----------+---------+----------------------------+--------+
| zone1 | 192.168.0.220:2882 | 14 | 11.5 | 3 | 2 | 40 | 1 | 2.2.50 | 2020-10-13 19:33:14.700577 | active |
| zone2 | 192.168.0.213:2882 | 14 | 11.5 | 3 | 2 | 40 | 1 | 2.2.50 | 2020-10-13 19:33:15.045548 | active |
| zone3 | 192.168.0.162:2882 | 14 | 11.5 | 3 | 2 | 40 | 1 | 2.2.50 | 2020-10-13 19:33:15.166081 | active |
+-------+--------------------+-----------+----------+--------------+-------------+---------------+----------+---------+----------------------------+--------+
3 rows in set (0.00 sec)
查看集群资源池具体使用情况
MySQL [oceanbase]> 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_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
-> ;
+--------------------+------------------+---------+---------+------------+------------+---------+-------+--------------------+-----------+-------------+
| resource_pool_name | unit_config_name | max_cpu | min_cpu | max_mem_gb | min_mem_gb | unit_id | zone | observer | tenant_id | tenant_name |
+--------------------+------------------+---------+---------+------------+------------+---------+-------+--------------------+-----------+-------------+
| sys_pool | sys_unit_config | 5 | 2.5 | 1 | 1 | 1 | zone1 | 192.168.0.220:2882 | 1 | sys |
| sys_pool | sys_unit_config | 5 | 2.5 | 1 | 1 | 2 | zone2 | 192.168.0.213:2882 | 1 | sys |
| sys_pool | sys_unit_config | 5 | 2.5 | 1 | 1 | 3 | zone3 | 192.168.0.162:2882 | 1 | sys |
+--------------------+------------------+---------+---------+------------+------------+---------+-------+--------------------+-----------+-------------+
3 rows in set (0.00 sec)
查看OB集群资源单元unit配置情况
MySQL [oceanbase]> select unit_config_id,name,max_cpu,min_cpu,round(max_memory/1024/1024/1024) max_mem_gb,
-> round(min_memory/1024/1024/1024) min_mem_gb, round(max_disk_size/1024/1024/1024) max_disk_size_gb
-> from __all_unit_config
-> order by unit_config_id;
+----------------+-----------------+---------+---------+------------+------------+------------------+
| unit_config_id | name | max_cpu | min_cpu | max_mem_gb | min_mem_gb | max_disk_size_gb |
+----------------+-----------------+---------+---------+------------+------------+------------------+
| 1 | sys_unit_config | 5 | 2.5 | 1 | 1 | 10 |
+----------------+-----------------+---------+---------+------------+------------+------------------+
1 row in set (0.00 sec)
MySQL [oceanbase]>
从上面可以看出,oceanbase 2.2集群迷你版2c8g,集群自身内部system保留5g,剩余3g内存,默认sys租户使用了2.5-5个CPU,1G内存。剩下的仅供学习玩玩,熟悉熟悉操作命令够了。
当然有人要问,为什么cpu比实际主机2c的cpu高,这个是ob集群在启动时参数指定了16c,cpu不会像内存一样直接预分配,cpu可以欺骗ob集群的。。哈哈。。
到此,OceanBase2.2集群2c8g迷你版手动安装体验到此结束。
一步一步学习OceanBase系列
最后修改时间:2020-10-16 09:06:23
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




