技术 | OceanBase 4.X 最小化单机部署
资深数据库专家,专研 MySQL 十余年。擅长 MySQL、PostgreSQL、MongoDB 等开源数据库相关的备份恢复、SQL 调优、监控运维、高可用架构设计等。目前任职于爱可生,为各大运营商及银行金融企业提供 MySQL 相关技术支持、MySQL 相关课程培训等工作。
本文来源:原创投稿
*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。
我们知道,OceanBase 3.X 版本部署单机架构(一个ZONE,一台SERVER)需要耗费较多硬件资源才能正常使用。OceanBase 4.X 版本发布后,在资源占用这块做了很多优化,官方宣称4.X 版本是单机分布式一体化的架构,单台OB SERVER对数据的处理与单机数据库相比性能相当。比如对于 OceanBase 3.X 版本,就算是单机部署,对多个分区的数据更新依然需要两阶段提交来保证其原子性;对于OceanBase 4.X 单机部署,对多分区的数据更新不再需要两阶段提交来保证其原子性。
接下来,我们来体验下 OceanBase 4.X 版本的最小化单机部署。
下面是通过 OBD 部署的配置文件: 主要是以下几个参数
-
memory_limit 设置为4G,这个是所有租户的总内存容量。
-
system_memory 设置为1G,这个是500租户的内存容量。
实际租户可使用内存是4G - 1G=3G。由于系统租户默认内存为2G,所以最后预留给业务租户的内存只有1G。当然也可以减少系统租户内存容量为1G,不过不建议这么做。
-
__min_full_resource_pool_memory 设置为1G,这样才能允许创建unit最小内存为1G,要不会报如下错误:
ERROR 1235 (0A000): unit MEMORY_SIZE less than __min_full_resource_pool_memory not supported
-
cpu_count 设置为2。
设置为2也够用了,系统租户使用一个核,剩下的一个核给业务租户使用。
oceanbase-ce:
servers:
- name: ob1
ip: 127.0.0.1
global:
syslog_level: WARN
enable_syslog_recycle: true
max_syslog_file_count: 1
__min_full_resource_pool_memory: 1073741824
memory_limit: 4G
system_memory: 1G
datafile_size: 20G
log_disk_size: 24G
devname: lo
cpu_count: 2
production_mode: false
cluster_id: 1
appname: obytt100
mysql_port: 2881
rpc_port: 2882
data_dir: /ob_data/1
redo_dir: /ob_log/1
home_path: /home/admin/oceanbase/1
zone: z1
用以上配置文件来部署 OceanBase ,下面是我部署好的数据库:只有一台 OB SERVER ,可以当做单台 MySQL 实例一样来正常操作。
[root@ytt-pc scripts]# obd cluster display obytt100
Get local repositories and plugins ok
Open ssh connection ok
Cluster status check ok
Connect to observer ok
Wait for observer init ok
--------------------------------------------
| observer |
----------- --------- ------ ------ --------
| ip | version | port | zone | status |
----------- --------- ------ ------ --------
| 127.0.0.1 | 4.0.0.0 | 2881 | z1 | ACTIVE |
----------- --------- ------ ------ --------
obclient -h127.0.0.1 -P2881 -uroot -Doceanbase
我们来创建一个 MySQL 租户:
mysql:5.7.25:oceanbase>create resource unit ut1 max_cpu 1,memory_size '1G',max_iops 1024;
Query OK, 0 rows affected (0.009 sec)
<mysql:5.7.25:oceanbase>create resource pool p1 unit 'ut1',unit_num 1;
Query OK, 0 rows affected (0.013 sec)
<mysql:5.7.25:oceanbase>create tenant mysql resource_pool_list=('p1') set ob_tcp_invited_nodes='%';
Query OK, 0 rows affected (11.449 sec)
创建完租户后,查看现在的资源单元配置数据: sys_unit_config(sys租户资源单元)和 ut1 一共占用3G,加上之前500租户的1G,已经达到 memory_limit 的设置。
<mysql:5.7.25:oceanbase>select name,max_cpu,round(memory_size/1024/1024/1024,2) 'memory_size_GB' from __all_unit_config;
----------------- --------- ----------------
| name | max_cpu | memory_size_GB |
----------------- --------- ----------------
| sys_unit_config | 1 | 2.00 |
| ut1 | 1 | 1.00 |
----------------- --------- ----------------
2 rows in set (0.001 sec)
完后查看剩余资源数据:CPU ,内存都已经分配殆尽。
<mysql:5.7.25:oceanbase>select svr_ip,svr_port,zone,round((cpu_capacity_max-cpu_assigned_max),2) 'cpu_free_num',cpu_capacity_max 'cpu_total_num',round((mem_capacity-mem_assigned)/1024/1024/1024,2) 'mem_free_GB', round(memory_limit/1024/1024/1024,2) 'mem_total_GB' from gv$ob_servers;
----------- ---------- ------ -------------- --------------- ------------- --------------
| svr_ip | svr_port | zone | cpu_free_num | cpu_total_num | mem_free_GB | mem_total_GB |
----------- ---------- ------ -------------- --------------- ------------- --------------
| 127.0.0.1 | 2882 | z1 | 0.00 | 2 | 0.00 | 4.00 |
----------- ---------- ------ -------------- --------------- ------------- --------------
1 row in set (0.000 sec)
接下来就可以正常建库建表了
[root@ytt-pc scripts]# obclient -h127.0.0.1 -P2881 -uroot@mysql -Doceanbase -cA -e "create database ytt;use ytt;create table t1(id int primary key);"
如果提示内存不足,比如:No memory or reach tenant memory limit , 可以手动进行转储来释放内存。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfiekgb
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01