Fork me on GitHub
摘要: 从何说起 2017年初的时候,由于当时项目需要做了一个乞丐版定时调度系统,那时候只在单机上实现了核心的调度功能。做这个玩意之前也调研了社区中开源的解决方案,找了几个实地部署试跑了一下,其实都很不错。但那时候我们有个问题就是应用都是基于Azure WebApp去部署,不太想为了这个东西搞一台虚拟机来跑 阅读全文
posted @ 2020-01-09 16:30 balahoho 阅读(8871) 评论(42) 推荐(73) 编辑
摘要: 从何说起 前些天和朋友讨论一个问题,他们的应用有几十万会员然后对应有积分,现在想做积分排名的需求,问有没有什么好方案。这个问题也算常见,很多地方都能看到,常规做法一般是数据定时跑批把计算结果到中间表然后直接查表就行,或者只显示个TOP N的排行榜,名次高的计算真实名次,名次比较低的直接显示在xxx名 阅读全文
posted @ 2020-01-06 08:50 balahoho 阅读(2161) 评论(10) 推荐(33) 编辑
摘要: 从何说起 这来自于我把项目迁移到Asp.Net Core的过程中碰到一个问题。在一个web程序中同时包含了MVC和WebAPI,现在需要给WebAPI部分单独添加一个接口验证过滤器 ,常规做法一般是写好过滤器后给需要的控制器挂上这个标签,高级点的做法是注册一个全局过滤器,这样可以避免每次手动添加同时 阅读全文
posted @ 2020-01-02 20:00 balahoho 阅读(2171) 评论(4) 推荐(16) 编辑
摘要: 故事背景 最近在把自己的一个老项目从Framework迁移到.Net Core 3.0,数据访问这块选择的是EFCore+Mysql。使用EF的话不可避免要和DbContext打交道,在Core中的常规用法一般是:创建一个XXXContext类继承自DbContext,实现一个拥有DbContext 阅读全文
posted @ 2019-11-18 20:24 balahoho 阅读(2329) 评论(8) 推荐(5) 编辑
摘要: 业务背景 在稍微复杂点业务系统中,不可避免会碰到做定时任务的需求,比如淘宝的交易超时自动关闭订单、超时自动确认收货等等。对于一些定时作业比较多的系统,通常都会搭建专门的调度平台来管理,通过创建定时器来周期性执行任务。如刚才所说的场景,我们可以给订单创建一个专门的任务来处理交易状态,每秒轮询一次订单表 阅读全文
posted @ 2017-10-29 16:00 balahoho 阅读(9572) 评论(28) 推荐(35) 编辑
摘要: 前置条件 包含obd和obclient的中控机 OceanBase 测试集群 独立的测试租户 BenchmarkSQL 工具(可选) 为了能够方面的查看复杂SQL的执行计划,我们先用TPCC模拟一些数据库负载。 模拟数据库负载 obd里面已经集成了tpcc测试工具,需要联网更新一下插件即可。如果机器 阅读全文
posted @ 2024-03-17 17:37 balahoho 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 前置条件 MySQL 环境 OceanBase 环境 测试用的表结构和一些数据 先在源端 MySQL 用如下脚本创建测试表,以及写入10000条数据用于迁移测试。 use test; CREATE TABLE students ( `id` int NOT NULL PRIMARY KEY, `na 阅读全文
posted @ 2024-03-17 11:48 balahoho 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 前置条件 OceanBase 数据库集群至少由三个节点组成,所以先准备好3台服务器: IP 配置 操作系统 x.x.x.150 Intel x86 12C 64G内存 1T SSD CentOS 7.9 x.x.x.155 Intel x86 12C 64G内存 1T SSD CentOS 7.9 阅读全文
posted @ 2024-03-14 16:49 balahoho 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 前置条件 准备好一台安装了 Docker 的 Linux 服务器,确保能够连接到 Docker Hub 仓库。 执行以下命令拉取最新的 OceanBase 镜像: docker pull oceanbase/oceanbase-ce [root@localhost ~]# docker images 阅读全文
posted @ 2024-03-13 15:44 balahoho 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 背景 TiDB 集群的监控面板里面有两个非常重要、且非常常用的指标,相信用了 TiDB 的都见过: Storage capacity:集群的总容量 Current storage size:集群当前已经使用的空间大小 当你准备了一堆服务器,经过各种思考设计部署了一个 TiDB 集群,有没有想过这两个 阅读全文
posted @ 2024-01-11 21:08 balahoho 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 背景 最近某集群扩容了一批物理机,其中 TiKV 节点有6台机器12个实例,同时调整了 label 设置增加了一层机柜级容灾。因为前期做了比较充分的准备工作,到了变更窗口只等着执行scale-out就行,操作过程也很顺利,很快就把所有节点都扩进去了,检查完各实例的运行状态,确保region已经开始正 阅读全文
posted @ 2023-12-28 12:53 balahoho 阅读(249) 评论(1) 推荐(1) 编辑
摘要: 背景 前段时间用户反馈某生产环境 TiDB 集群 drainer 频繁发生故障,要么服务崩溃无法启动,要么数据跑着跑着就丢失了,很是折磨人。该集群跑的是离线分析业务,数据量20T ,v4版本,有多个 drainer 往下游同步数据,目标端包括kafka、file、tidb多种形态。 两天前刚恢复过一 阅读全文
posted @ 2023-11-16 16:44 balahoho 阅读(239) 评论(0) 推荐(2) 编辑
摘要: 导读:在经过了近半年的测试验证和迁移准备之后,神州金库3.0核心系统 WMS 正式从 MySQL 迁移到了分布式 HTAP 数据库 TiDB,上线后不久即经历了第一次双11的考验,TiDB的性能和稳定性表现远超预期,给后续的全平台迁移计划打下了坚实的基础。神州数码 TiDB 交付团队与科捷物流技术、 阅读全文
posted @ 2023-04-19 18:46 balahoho 阅读(407) 评论(1) 推荐(3) 编辑
摘要: 背景 早上收到某系统的告警tidb节点挂掉无法访问,情况十万火急。登录中控机查了一下display信息,4个TiDB、Prometheus、Grafana全挂了,某台机器hang死无法连接,经过快速重启后集群恢复,经排查后是昨天上线的某个SQL导致频繁OOM。 于是开始亡羊补牢,来一波近期慢SQL巡 阅读全文
posted @ 2023-03-28 18:41 balahoho 阅读(243) 评论(0) 推荐(2) 编辑
摘要: 背景 前不久从项目一线同学得到某集群的告警信息,某个时间段 TiDB duration 突然异常升高,持续时间6小时左右,需要定位到具体原因。 分析过程 第一招,初步判断 由于项目条件苛刻,历经苦难才拿到监控,在此之前只能靠现场同学的口述排查,oncall人太难了。。 既然是duration升高,那 阅读全文
posted @ 2022-12-20 17:58 balahoho 阅读(1355) 评论(2) 推荐(2) 编辑
摘要: 背景 TiDB 提供了很多种数据迁移的方式,但这些工具/方案普遍对MySQL比较友好,一旦涉及到异构数据迁移,就不得不另寻出路,借助各种开源或商业的数据同步工具。其实数据在不同系统的流转当中,有一种格式是比较通用的,那就是txt/csv这类文件,把数据用约定好的分隔符换行符等标记存放在一起,比如最常 阅读全文
posted @ 2022-10-18 12:41 balahoho 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 背景 最近在给一个物流系统做TiDB POC测试,这个系统是基于MySQL开发的,本次投入测试的业务数据大概10个库约900张表,最大单表6千多万行。 这个规模不算大,测试数据以及库表结构是用Dumpling从MySQL导出,再用Lightning导入到TiDB中,整个过程非常顺利。 系统在TiDB 阅读全文
posted @ 2022-06-10 18:46 balahoho 阅读(463) 评论(0) 推荐(0) 编辑
摘要: 背景 上一篇《记一次简单的Oracle离线数据迁移至TiDB过程》说到在使用Lightning导入csv文件到TiDB的时候发现了一个bug,是这样一个过程。 Oracle源库中表名都是大写,经过前文所述的方法导入到TiDB后表名也是保持全大写,数据同步过程非常顺利。 第二天我把整套操作流程教给一位 阅读全文
posted @ 2022-03-11 23:00 balahoho 阅读(441) 评论(0) 推荐(0) 编辑
摘要: 背景 用户在做技术选型的过程中,总是会对一些数据指标比较关心,特别是在和竞品相比较的时候,更加需要一些有说服力的数据。基于MySQL开发的项目在迁移到TiDB的时候,使用DM同步数据是必不可少的一个环节,我在最近的一次POC中就碰到了这样一个需求,需要评估一个具体的延时时间参考值,因为用户在迁移前期 阅读全文
posted @ 2022-02-09 11:53 balahoho 阅读(339) 评论(0) 推荐(2) 编辑
摘要: 背景 最近在支持一个从Oracle转TiDB的项目,为方便应用端兼容性测试需要把Oracle测试环境的库表结构和数据同步到TiDB中,由于数据量并不大,所以怎么方便怎么来,这里使用CSV导出导入的方式来实现。 整个过程可以分为三个步骤: 库表结构转换 源数据导出 导入目标库 库表结构转换 众所周知T 阅读全文
posted @ 2022-01-19 21:35 balahoho 阅读(849) 评论(0) 推荐(1) 编辑
摘要: 故事背景 前段时间上线了一个从Oracle迁移到TiDB的项目,某一天应用端反馈有一个诡异的现象,就是有张小表做全表delete的时候执行比较慢,而且有越来越慢的迹象。这个表每次删除的数据不超过20行,那为啥删20行数据会这么慢呢,我们来一探究竟。 问题排查 根据应用端提供的表名去慢查询里面搜索,确 阅读全文
posted @ 2021-12-02 18:15 balahoho 阅读(676) 评论(0) 推荐(1) 编辑
摘要: 【是否原创】是 【首发渠道】TiDB 社区 前言 分布式关系型数据库TiDB是一种计算和存储分离的架构,每一层都可以独立地进行水平扩展,这样就可以做到有的放矢,对症下药。 从TiDB整体架构图可以看到,计算层(图中的TiDB Cluster)负责与外部应用使用MySQL协议通信,每一个TiDB Se 阅读全文
posted @ 2021-10-18 11:51 balahoho 阅读(810) 评论(0) 推荐(0) 编辑
摘要: 【是否原创】是 【首发渠道】TiDB 社区 背景 在之前我们团队发布了TiDB基于X86和ARM混合部署架构的文章:TiDB 5.0 异步事务特性体验——基于X86和ARM混合部署架构,最近有朋友问到离线模式下如何对混合部署的TiDB集群进行升级,因此用本文来做一个梳理总结。 部署的本质 TiDB从 阅读全文
posted @ 2021-09-19 19:45 balahoho 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 什么是热点问题 说这个话题之前我们先回顾一下TiDB的主要结构和概念。 TiDB的核心架构分为TiDB、TiKV、PD三个部分,其中TiKV是一个分布式数据存储引擎用来存储真实的数据,在TiKV中又对存储区域进行了一系列的逻辑划分也就是Region,它是被PD调度的最小单元。熟悉TiDB的读者对这个 阅读全文
posted @ 2021-08-13 18:48 balahoho 阅读(600) 评论(0) 推荐(0) 编辑
摘要: 本文记录了我在实际工作中关于数据库操作上一些小经验,也是新手入门golang时我认为一定会碰到问题,没有什么高大上的东西,所以希望能抛砖引玉,也算是对这个问题的一次总结。 其实我也是一个新手,机缘巧合几个月前开始做golang开发,以前一直是以.NET技术栈为主,文章如有错误不吝指正。 访问数据库 阅读全文
posted @ 2021-01-29 16:15 balahoho 阅读(1281) 评论(6) 推荐(0) 编辑
返回顶部