摘要:我们知道,之前的运维告警多通过mail 等方式通知到相应的人员,难以实现随时随地的查看。随着手机APP的发展,很多告警开始发送到IM软件上去。目前比较常用的是发送到微信和钉钉上,今天我们将重点放在钉钉上。群机器人是钉钉群的高级扩展功能,群机器人可以将第三方服务的信息聚合到群聊中,实现自动化的信息同步 阅读全文
posted @ 2019-09-06 00:00 东山絮柳仔 阅读 (364) 评论 (0) 编辑
摘要:1.问题描述 最近有一个需求,更新Mongo数据库中 原料 集合的某字段价格,更新后,程序报错了,说长度过长了,需要Truncation。 主要错误信息如下: 调试发现,价格这个数据来自于SQL Server数据库,是decimal(18,4),数据落到Mongodb中也是Decimal类型。DBA 阅读全文
posted @ 2019-08-20 16:12 东山絮柳仔 阅读 (224) 评论 (0) 编辑
摘要:当前,随着电商节日的增多(6.18、双十一、双十二)、平台拉新趋于频繁,大促活动也越来越普遍。作为一个电商平台,每年都会有一次,甚至几次的流量“大考”。数据库作为系统的重要节点,其稳定性和性能格外重要,数据库的全力保障是一个大的挑战。电商大促,这场没有硝烟的战争很多人已有体会,在此不再赘述。现在,我 阅读全文
posted @ 2019-07-31 17:06 东山絮柳仔 阅读 (395) 评论 (2) 编辑
摘要:1.需求概括 我们知道,在SQL Server Alwayson 架构中,有多种虚拟IP,例如 WindowsCluster IP,ListenIP,角色高可用性IP(类似于侦听IP)。在某些条件下,例如系统故障,会触发虚拟IP的漂移,如何高效率、低延迟、更好地监控IP漂移情况,是我们DB的一个重要 阅读全文
posted @ 2019-06-27 19:08 东山絮柳仔 阅读 (408) 评论 (0) 编辑
摘要:第一部分 Telegraf 部署和配置 Telegraf 是实现 数据采集 的工具。Telegraf 具有内存占用小的特点,通过插件系统开发人员可轻松添加支持其他服务的扩展。 在平台监控系统中,可以使用 Telegraf 采集多种组件的运行信息,而不需要自己手写脚本定时采集,大大降低数据获取的难度; 阅读全文
posted @ 2019-06-21 11:13 东山絮柳仔 阅读 (466) 评论 (0) 编辑
摘要:MySQL语句的审核,在业界都已经基本被认同了,实际上也是对MySQL语句写法的统一化,标准化,而之前的人工审核,针对标准这个问题其实是很吃力的,标准越多,DBA越累,开发也越累。 那么在这个都追求自动化运维的时代,审核也必须要跟上步伐,因此Inception诞生了。而Inception可以做的工作 阅读全文
posted @ 2019-04-29 17:02 东山絮柳仔 阅读 (229) 评论 (0) 编辑
摘要:关键字: MongoDB,Replace,forEach 近日接到一个开发需求,因业务调整,需要DBA协助,将MongoDB数据库中某集合的进行替换。例如我们需要将集合A中B字段中,有关《美好》的字符替换为 《非常美好》。个人感觉这个需求如果是在SQL Server 或MySQL 数据库上处理是小菜 阅读全文
posted @ 2019-03-01 10:47 东山絮柳仔 阅读 (2190) 评论 (3) 编辑
摘要:很多同学因为对MongoDB不熟悉,加之应用的不是很多,有时候会认为MongoDB数据库对一些功能不支持,或者认为支持不好。今天我们 演示一下 MongoDB对“加减乘除”的使用。 在MongoDB数据库中“加减乘除”运算,又称为 数学表达式(mathematical expression;或算术表 阅读全文
posted @ 2019-01-25 21:29 东山絮柳仔 阅读 (1974) 评论 (0) 编辑
摘要:索引小知识 篇幅有限,索引的基本知识我们就不赘述了,在此,我们尝试说明其中的一个小点 B+树与B树的区别到底是什么。 InnoDB是使用B+树来实现其索引功能的。在B+树中,内节点(非叶子节点)存储了行数据的键,而叶子节点存储了所有的行数据,而B树的每个节点都存储了真实的数据。这种数据结构,决定了两 阅读全文
posted @ 2018-12-28 22:51 东山絮柳仔 阅读 (600) 评论 (0) 编辑
摘要:一.需求背景 SQL Server开源的归档工具不多,DBA一般都是通过计划任务来触发执行,执行的脚本多是SP或者是SSIS包。SSIS包的性能稍好一些,但是维护更新成本高些。所以更常见的是通过SP脚本来实现归档操作。 当数据库规模较小时,可以方便的直接在数据库上进行脚本的编写部署。但是随着数据库越 阅读全文
posted @ 2018-12-24 22:44 东山絮柳仔 阅读 (747) 评论 (3) 编辑
摘要:一. 聚合框架 聚合框架是MongoDB的高级查询语言,它允许我们通过转换和合并多个文档中的数据来生成新的单个文档中不存在的信息。 聚合管道操作主要包含下面几个部分: $lookup 在本篇幅中,我们聚焦$lookup的使用。 二. $lookup的功能及语法 1. 主要功能 是将每个输入待处理的文 阅读全文
posted @ 2018-12-03 01:42 东山絮柳仔 阅读 (13428) 评论 (6) 编辑
摘要:一. TiDB的核心特性 高度兼容 MySQL 大多数情况下,无需修改代码即可从 MySQL 轻松迁移至 TiDB,分库分表后的 MySQL 集群亦可通过 TiDB 工具进行实时迁移。 水平弹性扩展 通过简单地增加新节点即可实现 TiDB 的水平扩展,按需扩展吞吐或存储,轻松应对高并发、海量数据场景 阅读全文
posted @ 2018-11-26 20:55 东山絮柳仔 阅读 (1135) 评论 (0) 编辑
摘要:一 需求描述 我们知道数据是公司的重要资产,业务的系统化、信息化就是数字化。数据高效的存储与查询是系统完善和优化的方向,而数据库的稳定性、可靠性是实现的基础。高可用和RPO(RecoveryPointObjective,复原点目标,指能容忍的最大数据丢失量)是衡量一个数据库优劣的重要指标。作为一个D 阅读全文
posted @ 2018-11-08 01:43 东山絮柳仔 阅读 (2695) 评论 (4) 编辑
摘要:MongoDB是非关系型数据库的典型代表,DB-Engines Ranking 数据显示,近年来,MongoDB在NoSQL领域一直独占鳌头。MongoDB是为快速开发互联网应用 而设计的数据库系统,其数据模型和持久化策略就是为了构建高读/写的性能,并且可以方面的弹性拓展。目前公司使用到的Mongo 阅读全文
posted @ 2018-10-31 17:11 东山絮柳仔 阅读 (3306) 评论 (1) 编辑
摘要:基础部分 1. select @@version; ##查询当前mysql的版本. 2. show variables like 'port';##查看mysql实例的端口。 3. show variables like 'socket';##查看实例的socket数据。 4. show varia 阅读全文
posted @ 2018-10-30 18:18 东山絮柳仔 阅读 (1142) 评论 (0) 编辑
摘要:一 . 背景需求 在日常的业务需求中,我们往往会根据时间段来统计数据。例如,统计每小时的下单量;每天的库存变化,这类信息数据对运营管理很重要。 这类数据统计依赖于各个时间维度,年月日、时分秒都有可能。因为需求变化多样,并且表的设计有严格的规范,我们不可能将订单的下单时间分别拆分存储到 年、月、日、时 阅读全文
posted @ 2018-10-17 14:49 东山絮柳仔 阅读 (8308) 评论 (1) 编辑
摘要:在实际的生产环境中,为了管理方便,我们一般是通过 Xtrabackup实现实例的全库备份,即将实例上的所有数据库备份。 但是,考虑到快速恢复 我们常常面临的需求是快速还原单个数据库。针对初学者来说,网上相关的资料不是很多,以下的测试工作是我们为实现实例的全库备份与按需单库恢复的相关验证。 第一部分数 阅读全文
posted @ 2018-10-12 21:14 东山絮柳仔 阅读 (1227) 评论 (2) 编辑
摘要:前几天在看 2018 云栖大会,来自中科院计算所的陈世敏研究员在“数据库内核专场”做了一场《NVM在数据库领域的研究和探索 》的报告演讲。在30分钟的演讲中,其中有近10页PPT的内容和B+Tree这种索引有关。 例如其中的两页 为此,将自己对索引相关的理解梳理如下: 1.什么是索引? 索引是磁盘上 阅读全文
posted @ 2018-09-25 20:17 东山絮柳仔 阅读 (835) 评论 (0) 编辑
摘要:第一步 定义要描述的数据集 当我们决定将数据存储下来的时候,我们首先要回答的一个问题就是:“我打算存储什么样的数据?这些数据之间有什么关系?实体之间有什么关系?实体的属性之间有什么关系”。 为了说明问题,我们这儿举例的场景是要描述 库存清单的数据库,库存清单数据 包括 物料名称、数量、规格大小、状态 阅读全文
posted @ 2018-09-18 00:10 东山絮柳仔 阅读 (2685) 评论 (0) 编辑
摘要:今天给大家推荐一款MongoDB的客户端工具--nosqlbooster,这个也是我工作中一直使用的连接管理MongoDB的工具。这个工具还有个曾用名--mongobooster。nosqlbooster立志做“The Smartest IDE for MongoDB”。它支持 MongoDB v2 阅读全文
posted @ 2018-09-15 19:51 东山絮柳仔 阅读 (41213) 评论 (12) 编辑
摘要:我们知道,之前的运维告警多通过mail 等方式通知到相应的人员,难以实现随时随地的查看。随着手机APP的发展,很多告警开始发送到IM软件上去。目前比较常用的是发送到微信和钉钉上,今天我们将重点放在钉钉上。群机器人是钉钉群的高级扩展功能,群机器人可以将第三方服务的信息聚合到群聊中,实现自动化的信息同步 阅读全文
posted @ 2019-09-06 00:00 东山絮柳仔 阅读 (364) 评论 (0) 编辑
摘要:1.测试验证环境 服务器角色 机器名 IP SQL Server Ver 主体服务器 WIN-TestDB4O 172.83.XXX.XXX SQL Server 2012 - 11.0.5058.0 (X64) 镜像服务器 WIN-TestDB5O 172.73.XXX.XXX SQL Serve 阅读全文
posted @ 2019-08-30 18:11 东山絮柳仔 阅读 (204) 评论 (0) 编辑
摘要:我们一般通过表达式$sum来计算总和。因为MongoDB的文档有数组字段,所以可以简单的将计算总和分成两种:1,统计符合条件的所有文档的某个字段的总和;2,统计每个文档的数组字段里面的各个数据值的和。这两种情况都可以通过$sum表达式来完成。以上两种情况的聚合统计,分别对应与聚合框架中的 $grou 阅读全文
posted @ 2019-08-23 15:57 东山絮柳仔 阅读 (72) 评论 (0) 编辑
摘要:1.Redo Log The redo log is a disk-based data structure used during crash recovery to correct data written by incomplete transactions. During normal op 阅读全文
posted @ 2019-08-21 14:43 东山絮柳仔 阅读 (29) 评论 (0) 编辑
摘要:转载、节选于 https://dev.mysql.com/doc/refman/8.0/en/innodb-doublewrite-buffer.html The doublewrite buffer is a storage area located in the system tablespac 阅读全文
posted @ 2019-08-21 10:40 东山絮柳仔 阅读 (22) 评论 (0) 编辑
摘要:1.问题描述 最近有一个需求,更新Mongo数据库中 原料 集合的某字段价格,更新后,程序报错了,说长度过长了,需要Truncation。 主要错误信息如下: 调试发现,价格这个数据来自于SQL Server数据库,是decimal(18,4),数据落到Mongodb中也是Decimal类型。DBA 阅读全文
posted @ 2019-08-20 16:12 东山絮柳仔 阅读 (224) 评论 (0) 编辑
摘要:有时候我们会通过mongo shell 运行一些脚本,去执行更新或运维需求。mongo shell 可执行的代码可以实现比较复杂的功能,代码也可以比较丰富。当执行报错时,如果可以快速定位到错误点,对解决bug, 可以事半功倍。 我们先测试一下: Case 1 简单的向集合中插入一笔数据 执行代码: 阅读全文
posted @ 2019-08-16 15:36 东山絮柳仔 阅读 (47) 评论 (0) 编辑
摘要:转载、节选于 https://dev.mysql.com/doc/refman/8.0/en/innodb-tablespace.html This section covers topics related to InnoDB tablespaces. 1.The System Tablespac 阅读全文
posted @ 2019-08-15 19:36 东山絮柳仔 阅读 (44) 评论 (0) 编辑
摘要:转载、节选于 https://dev.mysql.com/doc/refman/8.0/en/innodb-indexes.html This section covers topics related to InnoDB indexes. 1.Clustered and Secondary Ind 阅读全文
posted @ 2019-08-14 17:27 东山絮柳仔 阅读 (27) 评论 (0) 编辑
摘要:转载、节选于https://dev.mysql.com/doc/refman/8.0/en/innodb-tables.html 1.InnoDB Architecture The following diagram shows in-memory and on-disk structures th 阅读全文
posted @ 2019-08-14 14:12 东山絮柳仔 阅读 (45) 评论 (0) 编辑
摘要:转载、节选于 https://dev.mysql.com/doc/refman/8.0/en/innodb-in-memory-structures.html InnoDB Architecture The following diagram shows in-memory and on-disk 阅读全文
posted @ 2019-08-13 20:08 东山絮柳仔 阅读 (29) 评论 (0) 编辑
摘要:接业务需求,有一个MongoDB的简单查询,太耗时了,执行了 70S 左右,严重影响用户的体验。。 查询代码主要如下: 此集合在字段OPTime上有索引idx_OPTime;在"Tags"数组中的内嵌字段"SN"有索引idx_TSN;两者都是独立的索引。此集合存放的是执行Log,相对Size较大。 阅读全文
posted @ 2019-08-13 17:44 东山絮柳仔 阅读 (42) 评论 (0) 编辑
摘要:有时候我们可能需要将云上数据库下载到本地,下面是我们在操作MongoDB数据库时遇到的五个小问题。 其实现在RDS的 帮助文档 写的都比较详细了,大家在第一次操作时,可以细读一下,避免一些不必要的问题。 Problem 1 通过wget命令下载 云MongoDB物理备份文件 时,url 中间有特殊字 阅读全文
posted @ 2019-08-08 16:46 东山絮柳仔 阅读 (87) 评论 (0) 编辑
摘要:当前,随着电商节日的增多(6.18、双十一、双十二)、平台拉新趋于频繁,大促活动也越来越普遍。作为一个电商平台,每年都会有一次,甚至几次的流量“大考”。数据库作为系统的重要节点,其稳定性和性能格外重要,数据库的全力保障是一个大的挑战。电商大促,这场没有硝烟的战争很多人已有体会,在此不再赘述。现在,我 阅读全文
posted @ 2019-07-31 17:06 东山絮柳仔 阅读 (395) 评论 (2) 编辑
摘要:1.项目背景 因监控需要,我们需要在既有的每个MySQL实例上创建一个账号。公司有数百台 MySQL 实例,如果手动登入来创建账号很麻烦,也不现实。所以,我们写了一个简单的shell脚本,用来创建批量服务器的mysql 账号。 2.执行脚本内容; 3. 执行举例 Step 1 将代码放置到执行文件中 阅读全文
posted @ 2019-07-29 17:50 东山絮柳仔 阅读 (106) 评论 (0) 编辑