第二章:OceanBase产品家族及基础概念
1. OceanBase产品家族
1.1 OceanBase数据库产品家族
1.2 OceanBase数据库内核
1.2.1 高扩展
• 水平扩展
• 按需在线扩容、缩容、不停服务
• 单集群突破100台服务器
1.2.2 高性能
• 峰值6,100万次/秒(真实业务系统)
• 单表最大3,200亿行(真实业务系统)
• 准内存处理性能
1.2.3 高可用
• 基于Paxos协议,强一致性
• 少数副本故障,数据不丢,服务不停
• RPO=0; RTO<30s
1.2.4 高兼容
• Oracle/MySQL两种兼容模式
• 降低业务迁移改造成本
1.2.5 多租户
• DBaaS架构
• 资源隔离
• 自动负载均衡
1.2.6 高透明
• 全局一致性快照
• 全局索引
• 自动事务两阶段提交
1.3 OCP产品架构和功能,一站式的管理运维工具
1.3.1 产品架构
• 各个被管理者安装OCP Agent,OCP通过Agent管理和监控各个被管理者
• OCP向管理员提供管理、监控、告警等功能
• 每个OCP节点具有完备的完整功能,单个节点可提供全部OCP的能力,当某个OCP节点不可用时,自动调度到可用的OCP节点
• OCP Server支持多节点部署,通过DNS、HAProxy、Nginx或者F5形式实现
负载均衡,确保系统高可用
1.3.2 依赖的软硬件资源
• OCP Server可以安装在物理机上,也可以安装运行在Docker容器中
• X86架构下OCP Server支持RHEL、CentOS、AliOS、OpenSUSE等操作系统;也支持ARM架构下的AliOS、中标麒麟、华为EulerOS等操作系统
• OCP-Agent占用资源较少,对硬件资源没有特别要求
• 客户端使用Web浏览器访问OCP服务,支持Chrome、Firefox、Safari、Edge等浏览器
1.4 OceanBase开发者中心(ODC)产品架构
• OceanBase 开发者中心(Oceanbase Developer Center,ODC)是为 OceanBase 数据库量身打造的企业级数据库开发平台;
• ODC 支 持连接 OceanBase 中MySQL 和 Oracle 模式下的数据库,同时为数据库开发者提供了数据库日常开发操作、WebSQL、SQL 诊断、会话管理和数据导入导出等功能。
• 可以下载专门的客户端,也可以使用浏览器直接登录;
1.5 ODC六大核心功能,帮助开发者迅速上手OceanBase
1.6 OMS核心功能简介
• 支持多种类型数据源:支持包括 Oracle、MySQL、DB2、OceanBase 等数据库到OceanBase 的全量迁移和增量实时数据同步
• 兼容性评估和改造:异构数据迁移 OceanBase 的对象兼容性评估和改写建议,极大降低业务迁移的门槛和业务改造的难度
• 一站式交互:数据迁移全生命周期管理,数据迁移的创建、配置和监控都在管控界面上连贯操作完成,交互简便
• 多重数据校验:提供多种方式校验的保护,更加全面、省时、高效地保证数据质量;同时展示差异数据,提供快速订正途径
1.7 利用OMS实现平滑去O迁移方案:数据实时同步 + 快速切换 + 回滚预案
2. 安装部署
2.1 OceanBase支持多种部署形式
2.1.1 云部署
• 公有云:已发布阿里云,单用户单集群,企业可以按需购买
• 专有云:阿里云专有云3.5以上,同时也支持企业已建的专有云基础设施
2.1.2 独立部署
正式商用建议如下配置,为方便学习,OceanBase官网可以下载OceanBase试用版,支持2C8G规格的服务器
服务器类型 | 数量 | 功能最低配置 | 性能最低配置 |
---|---|---|---|
OCP管控服务器 | 1台 | 32C,128G,1.5TB存储 | 32C,128G,1.5TB,SSD存储,万兆网卡 |
OceanBase服务器 | 3台 | 32C,128G,1.2TB存储 | 32C,256G,2TB SSD,存储,万兆网卡 |
2.1.3 支持如下CPU及操作系统
• X86系列;
• 海光(Hygon 7185);
• 海思(鲲鹏920);
• 飞腾(FT1500a、FT2000)。
• CentOS
• Red Hat
• SUSE、
• Debian/ Ubuntu、
支持如下CPU及操作系统
• AliOS
• 中标麒麟NeoKylin V7u5。
• 银河麒麟Kylin 4.0.2。
2.2 OceanBase部署流程
2.3 部署OceanBase集群
2.3.1 部署OceanBase Cloud Platform(OCP)
OCP可以执行安装OceanBase集群、创建OceanBase集群租户、安装OB Proxy服务等多项任务;也可执行集群运维及集群监控任务;
• 可以在3台机器上部署集群,具备高可用能力;底层有OceanBase元数据集群,提供元数据和监控数据的持久化存储,OCP集群模式下保证数据可靠性
• 每台OCP机器上有2个docker,分别运行OCP(Web服务)和OBServer(OceanBase元数据集群)
• OCP集群自带高可用DNS服务器,可提供域名解析服务
• 提供config url服务,保存OceanBase集群的关键信息,比如RootService List(rslist)
• 以root用户登录OCP服务器,执行以下命令 bash init_obcluster_conf.sh
• 在显示的模式选择中,选择1-单点部署,选择3-3节点部署。
• 系统生成配置模式
• 根据注释信息,修改配置模板,之后可以开始部署
2.3.2 部署OceanBase集群
2.3.3 除了OCP安装方式外,也可以直接通过命令行部署OceanBase集群
• 通过OCP创建集群后,每台服务器上会启动一个OB Server进程,指定正确的参数:网卡名称、对内服务端口、对外服务端口、集群名称、集群ID、当前OB Server所属的zone、磁盘目录、rslist信息等
• 初始化OceanBase集群(bootstrap)失败的常见原因
- 机器间的时钟误差过大(超过100毫秒),可以利用ntpq、clockdiff等命令检查机器之间的时钟差异
- 信息指定有误,比如的zone名称有误(OCP创建集群不会有此问题)
- 其它问题,比如硬件异常
部署OB Proxy
2.3.4 其他说明
• 创建OceanBase集群时只需指定RootService所在的3台(或者多台)机器,不需要在创建集群时指定所有机器;集群创建完成后可以添加新的机器
• 创建OceanBase集群时不会自动安装obproxy;用户需要单独安装obproxy
• OceanBase集群创建完成后,每一个observer都可以接受连接,默认的连接端口是2881
• 集群创建完成后,默认会有一个名叫“sys”的租户,sys租户下有一个默认的root用户
• 直连observer时指定的用户名格式:@,比如"root@sys"