百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 文章教程 > 正文

专访搜狗DBA负责人王林平:为何从Oracle转向MySQL?

yund56 2025-03-17 19:38 12 浏览

王林平

CSDN:首先,请做个自我介绍,目前所负责的领域以及所在公司。

王林平:大家好,我是王林平,目前在搜狗商业平台研发部工作。

主要负责商业广告数据库的维护、优化、架构设计、流程体系建设、自动化运维平台建设等工作,目前比较关注数据库备份恢复、性能优化、运维自动化等几个领域。

CSDN:你是从何时加入搜狗的?从事数据库开发和运维这么多年给你最大的感悟是什么?

王林平:我是2011年初加入搜狗的,到搜狗快五年了,经历了数据库团队由小到大逐步成熟的过程。从事运维工作已经八年多,感受最深的有两点:

  • 第一,责任心重于一切。我们维护的是企业最核心的信息—-数据,一旦数据丢失或者数据异常,带来的损失不可估量。高度的责任心和良好的职业道德是成为一个好的运维工作者的的最重要前提。

  • 第二,自我驱动很重要。运维这项工作在学校的专业里面是没有的,如何开始做运维,如何做好运维,如何让运维工作更有价值,都是需要我们自己去探索,不断给自己提出新的目标并探索解决的方案,能为企业创造更高的价值。

CSDN:目前搜狗主要使用的数据库是什么?为何想到从oracle转向MYSQL呢?

王林平:目前搜狗主要使用的数据库是MySQL、MongoDB、HBase来存储数据。MySQL主要存储对数据状态有要求和更新频繁的数据;MongoDB主要用于存储计费数据、日志数据和流水数据;HBase主要用来做数据分析和存储大数据内容。

从Oracle转向MySQL主要是出于三个方面的原因:

  • 第一,降低运维成本。Oracle数据库自动化运维实现难度和成本较高,而MySQL运维自动化难度和成本相对较低,当数据库实例不断成倍增长的时候,使用MySQL可以在有限人力的情况下维护更多的数据库实例。

  • 第二,降低软件成本。Oracle License成本较高,MySQL及其分支目前是免费的。

  • 第三,提高可扩展性。MySQL是开源数据库,便于有技术能力的公司根据业务发展情况自己开发定制一些数据库周边服务,使数据库使用的扩展性提高,而Oracle对这方面的支持比较一般。

CSDN:你怎么看待MYSQL的性能?有哪些优缺点? 搜狗基于MYSQL的开发场景有哪些?

王林平: MySQL在单实例性能方面和Oracle相比还有一些差距,我们通过规范和技术手段来降低这些性能差距带来的问题。

首先,大量甚至海量数据的增删改、查询、聚合查询的性能还有待提高。为了规避这些问题,我们在开发规范里面要求MySQL的实例大小低于150G,要求带变长行的表行数不超过500w,尽量降低查询、修改、删除脚本的复杂度,以原子查询的方式访问数据库。

其次,MySQL的优化器还不够完善。MySQL的优化器还更接近于基于规则的优化,而不是基于成本的优化,对复杂查询的智能优化有待提高。因此MySQL数据库多表联合查询的性能还不如Oracle。我们的开发规范要求开发人员尽量避免三个表以上的表关联查询。

第三,原生版本的MySQL主从延迟挺严重,远高于Oracle数据库。为此我们将批量更新和批量删除的事务的粒度拆分的比较细,同时在核心业务上使用SSD硬盘来降低主从延迟对业务的影响。

MySQL有以下优点:灵活、可配置、可二次开发、方便维护管理,集群的性能和扩展性强。

MySQL的缺点是存储和查询的数据量、并发数有限,主从非强一致。这就要求DBA必须对数据库的业务深入理解,合理规划并发数、数据量,进行预估、拆分等架构优化来规避这些不足。

我所在的商业广告部门很多平台是面向客户的高并发、高压力的系统,应用MySQL数据库存储广告物料、客户资料、计费、资金、日志、管理平台、基础架构平台等业务数据。不同平台对性能、稳定性、安全性要求不同,我们会根据平台特点选择合理的MySQL部署和配置方式。

CSDN:据了解,搜狗实现了数据库的“一键部署”功能,请问这是怎样的一种解决方案?

王林平:可以理解“一键部署”是一种理念和工具的实现。这个理念是基于MySQL数据库本身的特点出现的,MySQL数据库的安装配置步骤相对简单,安装过程中出错的概率相对比较低,随着业务量增加这种重复劳动量急剧增加,给DBA造成很大的负担,重复劳动的价值并不高,因此考虑对这部分工作进行自动化。

起源:最初是为了降低部署成本,开发了一个很简陋的脚本工具,只是将数据库目录创建好,二进制包解压缩,并给出DBA启动数据库的命令。

发展:为了平台化运维需求丰富了功能。随着业务的不断发展,数据库实例越来越多,由几十增长到了上百个,甚至几百个,规模化运维要求有集中的信息管理平台,因此一键部署工具将数据库、服务器、实例信息做了入库管理,同时为了有效提高自动化运维的效率,我们对操作系统、硬件等信息进行了标准化,一键部署工具还需要对这些信息进行校验,一键部署工具还对备份系统、监控系统做了初始化。一键部署工具执行完之后,数据库的使用和基本信息的入库工作,包括后续工作的准备工作都完成了,可以投入生产环境使用。

展望:我们的运维自动化起步是从一键部署开始的,未来我们更倾向于将95%甚至比例更多的工作用Web工具实现,同时有完整的交互界面,一键部署可能会随着业务和需求的增长越来越庞大,会拆分成N键部署,但是依旧高效,期待鼠标点几下、手指触碰几下就完成数据库部署和运维高效时代到来。

CSDN:安全问题,一直是数据库运维人士关注重点,你们是如何确保数据库安全问题的?

王林平:数据的安全我理解应该从两个大的维度去分析,第一是访问安全,不会出现不应该有的访问,不会因为不应该有的访问崩溃,用户的敏感数据不会泄露;第二是数据安全,数据可恢复,不丢失。

访问安全,我们是基于操作系统的安全机制和数据库自身的安全机制来保证的;在操作系统的安全层面,我们采用IPTABLES白名单的方式,仅允许指定范围的IP的内网服务器访问数据库,同时严格隔离线上和线下。在数据库自身安全机制上面,我们针对细粒度IP进行授权,并且回收了表的创建、删除、DDL操作权限;同时我们开发、部署了数据库访问巡检工具,实时屏蔽不合法的访问。针对访问安全,为了降低授权成本,我们研发并全部使用自动化授权工具授权。

数据安全,我们主要是通过多级备份策略来保证的,多级备份策略是指:热备份+逻辑备份+二级备份+定制备份。热备份保证数据库可以在一周内恢复到某个时间点,逻辑备份作为热备份的补充;二级备份主要是将历史上的逻辑备份做一下远程双份备份,以规避误操作带来的损失;定制备份是针对一些特殊业务需求,做按天切片备份,满足业务对某天数据恢复的需求。同时为了确保数据快速恢复,我们尽量把单实例的大小控制在100G以内。热备份+逻辑备份+二级备份可以满足大部分广告数据的恢复需求,而对于资金、计费、财务类数据,由于涉及到审计,我们会与业务方确认是否需要补充定制备份。

CSDN:在你看来,一名优秀的技术人应该具备怎样的素质?

王林平:技术人的范围有些广了,我谈一下运维人员的必备素质吧。

首先是知识沉淀。基础知识是做好工作的基石。系统的学习各类基础知识,熟悉数据库、操作系统的架构及相关工具的使用,熟悉主流脚本语言的开发,同时还需要对故障定位有一定的理解。

其次是经验沉淀。要耐得住寂寞,不断积累经验。做运维工作需要丰富的经验,高并发、大数据量运维经验,大量服务器和实例的运维经验。在关键的时候这些经验会拯救企业的服务和数据。

再次是业务沉淀。要具备较强的业务理解能力,深入并精通所在岗位的业务。技术是为业务服务的,技术人员到一个新的岗位会的只是通用技术,技术适应并结合业务才能发挥更大的作用。

最后是软技能的沉淀。较强的执行力,适应业务、技术的创新能力,良好的沟通协作能力和组织能力,优秀的团队配合能力;细致、冷静、沉稳,优秀的判断能力和紧急状况择优处理能力;充分的理解和被理解。要有不断更新自己的欲望和自我驱动力。互联网技术日新月异的,行业的发展非常迅速,必须不断地学习新知识和技能,才能跟上时代,更好的成长。

CSDN:给从事数据库运维的开发者分享些建议吧。

王林平:有几点想法分享下:

  • 第一,运维工作最重要的是稳定性。判断是否要做一件事比做好一件事更重要。

  • 第二,自动化运维已经成为当前主要的运维方式。互联网运维进入自动化时代,以开放的心态面对现状展望未来,修炼自己全面技术能力很重要,除了会拿来,更需要会创造,让人去想,让机器做事。

  • 第三,工作工具很重要。有一套自己的工作工具,可以事半功倍。

  • 第四,需要建立服务意识和服务体系。作为后台支撑团队,提供更好的数据相关服务是最重要的。

  • 第五,低头走路别忘记抬头看天。做好本职工作的同时要时刻考虑自己和团队的价值是什么,对业务和产品有什么贡献。

CSDN:其他有需要补充的吗?

王林平:从数据库运维发展历程来看,主流的互联网公司的路线基本类似,不同公司在不同的领域有自己的优势。我们在规模化运维方面积累了一些经验,也在国内外一些技术交流大会上学习到了许多经验,希望整个行业能够加强交流频度和深度,互通有无,使数据库运维更快速地发展。

本文为CSDN原创,请点击

阅读原文

查看完整文章并参与讨论

如果您喜欢这篇文章,请点击右上角

将本文分享给你的朋友

相关推荐

如何在Office 中编辑 PDF?附详细化步骤

PDF很受欢迎,因为它能在不同的设备和操作系统上仍然保持原有格式。但是,这也意味着直接更改PDF文件比其他格式更难更复杂。值得庆幸的是,Microsoftoffice和UPDF帮你解决这一难题。一...

我的 Windows 装机必备软件清单

今天给大家分享下我的装机必备软件,都是用了好多年的软件神器。靠谱、好用、无广告,Windows电脑必备软件,收藏这一篇就够了!01.浏览器王者:Chromehttps://www.google.c...

Docnet Core 是一个轻量级、高性能的 .NET PDF 操作库

DocnetCore介绍DocnetCore是一个轻量级、高性能的.NETPDF操作库,依托于PDFium渲染引擎,提供强大的PDF文档解析、渲染、操作等功能。它完全支持.NET...

分享三款好用的PDF编辑软件,轻松处理PDF

作为一名需要经常和PDF文件打交道的工作者,我来分享一下几款好用的PDF编辑软件,并详细分析了它们的优缺点,希望能帮你找到合适的工具。1.AdobeAcrobatDC作为PDF格式的发明者,Ado...

PDF文档创建工具软件:novaPDF OEM 11.9 Build 432 for Windows

novaPDFOEM是一款实用高效的软件,从头开始设计,让您尽可能轻松地在应用程序中添加PDF打印功能。换句话说,这个实用程序是专门为应用程序开发人员设计的,可以直接在程序安装程序中集成为PDF打印...

线性表顺序存储结构求集合的并,交,补,差(源代码附上 超详细)

一:算法分析1)用数组A,B,C,E表示集合。假定A={1,3,4,5,6,7,9,10},  B={2,,3,4,7,8,10},E={1,2,3,4,5,6,7,8,9,10},  输入数组A...

分享一套SpringBoot开发博客系统源码,包含完整开发文档和视频

基本信息项目名称:eblog摘要:eblog是一个基于Springboot2.1.2开发的博客学习项目,为了让项目融合更多的知识点,达到学习目的,编写了详细的从0到1开发文档。主要学习包括:自定义Fr...

通达信指标合集〔源码齐全〕

很多朋友问到我哪款指标好用,这里我说一下,之所以有很多不同的指标是因为我们在针对不同的盘面情况的时候使用的指标是不同的,我给到的指标一般来讲就目前的环境来讲都是比较适合的,今天我就把我平时自己常用的指...

巅峰对决!Spring Boot VS .NET 6

SpringBoot和ASP.NETCore都是企业中流行的Web框架,对于喜欢C#的人会使用ASP.NETCore,而对于Java或Kotlin等基于JVM的语...

在asp.net core 中控制访问权限的方法

Intro#由于项目需要,需要在基于asp.netmvc的Web项目框架中做权限的控制,于是才有了这个权限控制组件,最初只是支持netframework,后来dotnetcore2.0...

ASP.NET是否无生存之地?

ASP.NET,这个已经很久的技术,总觉得已经被时代淘汰,我们公司是一个10人小公司,几个十年十五年的项目还是用ASP.NET开发的。这两年由于客户的需求变化,我们公司也顺势开始对这些项目重新开发,改...

Spring Boot + Vue.js 实现前后端分离(附源码)

作者:梁小生0101链接:juejin.im/post/5c622fb5e51d457f9f2c2381SpringBoot+Vue.js前后端涉及基本概念介绍,搭建记录,本文会列举出用到环...

ASP.NET Core 中的 Mapster 使用入门教程

在本文中,我们将学习如何在ASP.NETCore应用程序中使用Mapster。首先,我们将了解Mapster是什么以及如何将其安装到.NETCore应用程序中。然后,我们将在使用...

Asp.net常用方法及request和response-a

asp.net教程asp.net常用方法:1、Request.UrlReferrer请求的来源,可以根据这个判断从百度搜的哪个关键词、防下载盗链、防图片盗链,可以伪造(比如迅雷)。(使用全局一般处理...

ASP.NET Core使用功能开关控制路由访问

前言在前面的文章,我们介绍了使用Middleware有条件地允许访问路由(《ASP.NETCore使用Middleware有条件地允许访问路由》)。而对于一些试验性的功能,我们并不希望用密码去控制是...