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

OceanBase 2.2集群实战第七篇——2c8g迷你版1-1-1集群安装部署体验

原创 gelyon 2020-10-13
2946

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.3admin用户登录,初始化目录 #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兼容模式的租户, 1oracle兼容模式的租户 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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论