OB数据库基础知识(学习记录)

本文详述了OceanBase数据库的使用、运维及优化,涵盖了OB业务场景、集群搭建与故障排查、数据同步与迁移、性能监控、内存管理、备份恢复、SQL执行流程等内容,旨在提供全面的OceanBase数据库操作指南。
摘要由CSDN通过智能技术生成

目录

OB业务场景

公司使用理由:

常见 bootstrap 失败原因

常见OBD 部署 失败原因

Grafana

 查看集群资源由各个节点的聚合情况 

OB创建租户

表分组的场景

mysqldump到处数据库schema,数据库数据,表数据

数据同步框架 DATAX

obdumper使用注意事项

obdumper调优

obloader使用注意事项

 什么是CDC

 OMS 是什么

​编辑 数据库架构演进

​编辑 OceanBase 租户隔离原理

OceanBase 租户扩缩容场景

 OB的UNIT均衡

备份步骤

恢复的步骤-3

恢复的步骤-4

 恢复的步骤-5

OB内存结构

OB内存监控-使用情况

 查看内存使用情况--SQL

​编辑 OB内存调优:

离线升级

 升级注意事项

Benchmark工具介绍

 客户端工具优化

常见误区

Sysbench 测试步骤创建测试租户obd cluster tenant create 3-proxy

Sysbench 常用参数说明

 Sysbench 测试FAQ

TPC-H测试FAQ

SQL执行流程

 模块职责

 SQL执行计划获取过程​编辑

 [G]V$SQL_AUDIT

 [G]V$SQL_AUDIT重要字段含义说明

 使用示例: [G]V$SQL_AUDIT

查看集群SQL请求流量是否均衡

获取业务模型

 查看所有SQL中消耗CPU最多的SQL

分析RT突然抖动的SQL

 SQL语句调优

计划绑定(Outline)

什么是HINT?

Outline生效

 超时管理

OceanBase容灾:

同城三机房

 三地五中心五副本

OB数据库产品家族


OB业务场景

公司使用理由:

1.新创改造,国家支持,全国产

2.成本低,负载均衡,

3.数据可靠性和服务可用性高,PAXOS分布式一致性协议(分布式数据库基本上都这协议)服务恢复时间(RTO)30秒内

4.数据节点和计算节点均可以在MPP架构下实现水平扩展没有数量限制(传统数据到一定量时插入数据变慢:1000万条数据 小于1小时,3000万条数据大于3小时)

加入OB:2020年

常见 bootstrap 失败原因

1.集群里observer节点之间网络延时超过200ms (建议在30ms以内)。

2.集群里observer 节点之间时间同步误差超过100ms (建议在5ms以内)。
3.主机ulimit 会话限制没有修改或生效
4.主机内核参数sysctlconf没有修改或生效
5.observer 启动用户不对,建议 admin 用户
6.observer启动目录不对,必须是~/oceanbase 。具体版本号会有变化
7.observer的可用内存低于8G。
8.observer的事务日志目录可用空间低于5%
9.observer 启动参数不对 (zone名称对不上,rootservice list 地址或格式不对,集群名不统一等)。

常见OBD 部署 失败原因

集群里observer 节点之间网络延时超过 200ms (建议在30ms以内)。
集群里 observer 节点之间时间同步误差超过 100ms (建议在5ms以内)。
主机ulimit会话限制没有修改或生效
主机内核参数 sysctl.conf 没有修改或生效
observer 启动用户不对,建议 admin 用户
·observer 启动目录不对,必须是~/eboroxy-3.2.0。具体版本号会有变化。
observer 的可用内存低于 8G。
observer 的事务日志目录可用空间不足 5%
observer 启动参数不对(zone名称对不上,rotservice list 地址格式不对,集群名不统一等)目录不为空 通常是第一次运行失败导致,此时清空所有相关目录(软件工作目录、数据文件目录、事务日志目录)即可

Grafana

nohup bin/grafana-server &

https://grafana.com/grafana/dashboards/15215
https://grafana.com/grafana/dashboards/15216

 查看集群资源由各个节点的聚合情况 

OB创建租户

查看集群资源由各个节点的聚合情况

 

表分组的场景

业务表能按同一个业务属性做水平拆分能规避分布式事务。 

mysqldump到处数据库schema,数据库数据,表数据
导出整个数据库Schema,不包括数据

导出整个数据库数据,不包括表结构
mysqldump -u admin -p -t migration > migrate_full_data.sql

导出一个表Schema,不包括数据
mysqldump -u admin -p -d migration migrate_table --compact > migrate_table_ddl.sql

导出一个表数据,不包括表Schema
mysqldump -u admin -p -t migration migrate_table > migrate_table_data.sql
数据同步框架 DATAX

优势
可靠的数据质量监控:支持强数据类型转换、作业全链路流量和数据量实时监控、脏数据探测。

丰富的数据转换:支持数据脱敏、补全、过滤等转换功能。

精准的速度控制:支持通道(并发)记录流和字节流三种流控模式。

强劲的同步性能:支持多种切分策略,任务切分为多个task,单机多线程执行模型

健壮的容错机制:支持线程级别、作业级别多层次局部/全部重试。

极简的使用体验:易用(解压缩即可用)、详细(日志打印传输速度、性能、CPU、JVM、GC等信息)

  

Canal同步注意事项
       同步的表必须有主键
       无主键表 delete 和update 同步会有问题

支持 ddl同步
      支持新建表、新增列、删除表等,
      不支持后期新增主键、修改主键、修改列的类型
      待反馈补充。 

obdumper使用注意事项

执行obdumper的机器上需要安装idk1.8且设置JAVA HOME环境变量。

导出时候-f指定的目录必须先提前创建,并授权可以读写。

导出的时候-f指定的目录不能是非空的。

导出的时候-u指定的用户须有导出对象的select权限。

--sys-user和--sys-password指定的是sys租户下的用户,可以使用root用户或者proxyro帐密

--file-name须与--table 参数搭配使用,指定多个表的时候这里的--file-name无效。

数据量大,导出时间长,执行期间发生了转储,中途会报错如”error: Request to read too oldversioned data”需要将undo retention变量调大一些

obdumper调优

1、命令行配置项调优
        --thread
        --page-size
2、iava内存调优

50 JAVA OPTS="$JAVA OPTS -server -Xms4G -Xmx4GXX:MetaspaceSize=512M -XX:MaxMetaspaceSize=512M-Xss352K”
3、OB转储

在导出数据的时候,可以先手动执行一下转储的操作。

obloader使用注意事项

执行obloader的机器上需要安装idk1.8且设置JAVA HOME环境变量

导入数据前,库需要提前创建,不会在导入期间自动创建库。

导入使用的用户需要有对应读写的权限。

导入的时候目录需要选择正确。

数据库中存在有外键的表时,无法保证结构和数据按照依赖顺序导入,可能会导入失败 

 什么是CDC

CDC: change data capture,数据变更捕获,核心思想就是监测并捕获数据库的变动(包括数据表的插入更新,删除,修改等),将这些变更按发生的顺序完整记录下来,写入到目标数据库或消息中间件中来供其他服务进行订阅及消费。
https://en.wikipedia.org/wiki/Change data capture

 OMS 是什么

OceanBase数据迁移服务(OceanBase Migration Service,简称0MS)是OceanBase提供的一站式数据传输产品。它支持多种关系型数据库、大数据(OLAP)及消息队列等数据终端与0ceanBase之间的数据复制,是一种集数据迁移、实时数据同步和增量数据订阅于一体的数据传输服务。

 

OMS产品架构

 数据库架构演进
 OceanBase 租户隔离原理

Docker 或虚拟机隔离主要有以下几个问题
       虚拟机运行环境的开销太重,OceanBase数据库需要支持轻量级租户

       虚拟机迁移开销比较大,OceanBase 数据库希望租户的规格变化和迁移尽量快

        虚拟机不便于租户间的资源共享,例如,对象池的共享

       虚拟机资源隔离很难定制,例如,租户内的优先级支持

        虚拟机的实现不便于暴露统一视图
为了确保租户间不出现资源争抢保障业务稳定运行,OceanBase设计了更加轻量的租户隔离

OceanBase 把Unit 当作给租户分配资源的基本单位,一个Unit 可以类比于一个 Docker容器。个0BServer 上可以创建多个Unit,在0BServer上每创建一个Unit都会占用一部分该0BServer的CPU、内存等物理资源

OBServer 的资源分配情况会记录在内部表中以便 DBA:

SELECT*FROM all virtual server stat


一个租户可以在多个0BServer上放置多个Unit,但一个特定的租户在某个0BServer 上只能有一个Unit资源隔离,就是0BServer 控制本地多个Unit 间的资源分配的行为,它是0BServer 本地的行为OceanBase 数据库并没有依赖 Docker 或虚拟机技术,而是在数据库内部实现资源

  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值