OceanBase数据库社区版入门到实战.docx
OceanBase社区版入门到实战一、分布式数据库架构演变历史集中式->分布式数据库中间件(分库分表)->原生分布式集中式->分布式数据库中间件(分库分表)->原生分布式传统集中式架构数据库性能和可靠性依赖特定硬件。系统垂直扩展成本很高(贵)。水平扩展很难。分布式数据库中间件(分库分表)初步解决了扩展性的问题运行于通用服务器,系统成本低带来新的问题跨库查询和务数据库扩容和负载均衡原生分布式数据库原生SQL引擎,支持分布式查询和事务,对业务透明。灵活的部署模式、高可用和负载均衡能力L1、OceanBase发展历史最早是2010年的淘宝的收藏夹1.2、OceanBase核心特性原生的SQL和事务引擎普通商用服务器(x86或arm)无/MV存储Orade/MySQL两种兼容模式糠平滑迁移基于Paxos协议,强一致性同步少数副本故障,数据不丢,服务自动恢复(RPO=O;RTO<30s)1. 3、OceanBase的业务场景业务场景当前痛点OB解决方案MySQL实例规模很大的场景(5.5/5.6/57)规模大,运维成本高;宕机处理,主从不一致问题修复。多租户;高可用;弹性伸缩;原生的SQL和事务。MySQL数据量非常大存储成本高的场景(5.5/5.6/57)上T的空间,存储成本高;机器存储扩展受限,机器规模变大。OB空间压缩比¼左右。业务访问压力大或者变化大的场景。分库分表,SQL和事务有限制;拆库时数据迁移麻烦。分区表;数据负载均衡。OLTP业务库上的少量复杂查询两套数据库(TP和AP),需要数据同步。一套数据源,内部多副本同步;一套SQL弓摩(同时支持TP和APSQL);多副本读写分离。二、OCeanBaSe社区版下载安装:(2.1)官网下载(2.2)GitHUb下载(2.3)阿里云Yum源设置阿里云Yum源的方法如下:yuminstall-yyum-utilsyum-config-manager-add-repo2. 4、OceanBase部署模式(2.4.(1) DOCker部署(用于学习,笔记本可部署)(2.4.(1) 部署单副本集群:observer(N)+obproxy(可选)三副本集群:observer(N:N:N)+obproxy(必选)(2.4.(2) 部署OBD(OceanBaseDeployer简称OBD9是快速部署oceanbase的工具)单副本集群:Obd三副本集群:Obd+Observer(N)+obproxy(可选)+observer(N:N:N)+obproxy(必选)以下是部署示意图:笔记本(8C16G):单副本Docker(4C1OG)Obd::observer(16C8G)zone1服务器(8C16G):单副本Obdobserver(16C8G)zone1服务器(8C32G):单副本Obdobserver(16CG)zoe1服务器(8C32G):三副本obdobserver(16C8G)zooelobsefver(16C8G)zone1observer(16C8G)ZOne2observer(16C8G)zoe1obproxy(可闻obproxy(必选)obproxy(必选)2. 5>OceanBaseDocker体验(2.5.(1) DoCker软件安装准备:内存不小于12GB的笔记本Docker下载地址调整可用资源,内存>=10GB(2.5.(2) OB镜像dockerpulloceanbase/obce-mini(2.5.(3) 容器dockerrun-p2881:2881-nameobce-mini-d-eOB_HOME_PATH=7root/obce/"-eOB_TENANT_NAME="obmysql"oceanbase/obce-mini注:启动容器的过程,包括初始化OB,需要等待大约3分钟时间(2.5.(4) 容器dockerexec-itobce-minibash(2.5.(5) OBD部署配置obdclusterlistobdclusterdisplaymini-ce(2.5.(6) 使用OCeanBaSe单副本集群ob-mysqlsysob-mysqlrootob-mysqltest(2.5.(7) 集群资源情况selecta.zone,concat(a.svr-ip,a.svr-port)observer,cpu_total,(cpu_total-cpu_assigned)cpu_free,round(mem_tota1/1024/1024/1024)mem_total_gb,round(mem_toal-mem_assigned)/1024/1024/1024)mem_free_gb,round(a.disk_tota1/1024/1024/1024)disk_total_gb,usec_to_time(b.last_offline_time)last_offline_time,usdc_to_time(b.start_service_time)start_service_time,b.status,usec_to_time(b.stop_time)stop_time,b.build_versionfrom_all_virtual_server_statajoin_aILserverbon(a.svr_ip=b.svr_ipanda.svr-port=b.svr_port)orderbya.zone,a.svr_ipGzoneobservercputotalcpu_freeCneLtotaLgbmem_free_gbdisk_total_gblastofflinetitnestart_service_timestatusstop_timebuildversiozonel127.0.0.1:28821494351970-01-0108:00:00.0000002021-11-1815:48:39.775482active1970-01-0108:00:00.0000003.1.14-8c615943cbd25a6f7b8bdfd8677al3a21709a05(2.5.(8) 资源规格createresourceunitmy_unit_configmax_cpu=4,min_cpu=4,max-memory=,2G,min-memory=,2G,max-iops=10000,min_iops=1000,max_session_num=1000000,max_disk_size='1024G'(2.5.(9) 资源池createresourcepoolmy_poolunit="my-unit-config,unit_num=l;(2.5.(10) 业务租户createtenantobmysqlresource_pool_list=('my_poor),primary-zone=,RANDOM,comment,mysqltenantinstance',charset=,utf8,setob_tcp_invited_nodes='%',ob-compatibility-mode=,mysql,;(2.5.(11) 租户情况useoceanbase;select*from_all_tenant;三、如何初始化OCeanBaSe服务器1)设置服务器内核参数vimetcsysctl.conf+net.core.soma×conn=2048net.core.etdev-max-backlog=10000net.core.rmemjdefalt=16777216net.core.wmem-default=16777216net.core,rmem-max=16777216et.core.wmem-ma×=16777216net.ipv4.ip_local_port_range=3565535net.ipv4.ip_forward=0net.ipv4.conf.default.rpilter=1net.ipv4.conf.default.accept_source_route=0et.ipv4.tcp_sycookies=0net.ipv4.tcpmem=40968738016777216net.ipv4.tcp_wmem=40966553616777216net.ipv4.tcp_max_syn_backlog=16384net.ipv4.tcpJin_timeout=15net.ipv4.tcp_max_syn_backlog=16384net.ipv4.tcp_tw_reuse=1net.ipv4.tcp_tw_recycle=1net.ipv4.tcp_slow_start_after_idle=0vm.swappiness=0vm.min_free_kbytes=2097152vm.max_map_count=655360fs.aio-ma×-nr=1048576使以上设置的内核参数生效:sysctl-p2)、设置会话变量vimetcsecu11tylmits.cof+*softofile655360* hardnofile655360*softproc655360* hardproc655360* softcoreunlimited* hardcoreunlimited* softstackunlimited* hardstackunlimited检查以上会话变量:ulimit-a重新登录会话生效。(3.3)、服务器磁盘划分需求: Obd工作目录(可选):.obd observer工作目录:-oceanbase-ce 数据文件目录:/data/或data1 事务日志目录:/redo或ddtalogl方案 磁盘分区工具:fdisk或Pdrted 卷管理(LVM)工具:pvcreatevgcreateIvcreate 文件系统命令:mkfs.ext4devvdbl 手动挂载: mkdir-p/redo&&mount-text4devvdbl/redo mkdir-p/data&&mount-te×t4devvdb2/data,自动挂载:etcfstab devvdbl/redoe×t4defaults,noatime,nodiratime,odelalloc,bar