专访神州飞象高级数据库工程师赖伟:迁移不怕难,大象肚里能撑船

赖伟,神州飞象高级数据库工程师,多年关系数据库运维经验,长于PostgreSQL的调优和运维,具有丰富的数据库开发和异构数据库迁移经验。

赖伟说,在大象的肚子里,你总能找到那么一个方法帮你撑起一艘船来

9月24日,赖伟将参加在北京举办的线下活动,并做主题为《Sybase迁移PG的那些事》的分享。值此,他分享了工作经历和一些看法。

9月24日开源数据库企业应用实践PostgreSQL、Greenplum专场,点击这里>>>免费报名


以下为正文:

赖伟,曾经做过VB开发、ASP开发等,数据库一开始使用的是Access。而真正接触到大型关系型数据库是在后来加入了一家医药销售连锁企业,开始使用Oracle,并从此走上了Oracle DBA之路。

在积累了不少Oracle生产环境的运维和开发经验后,又加入了上容,接触开源数据库Postgresql。

回忆起这段经历,赖伟称:“在上容公司时主要是结合项目需求和市场发展需求,从事数据库产品方向的研究,所以接触到的PG各方面的功能和插件比较多,后来有个课题就是我们每个DBA主攻一方向,当时我选了HA,并主导编写PG+Keepalived的HA脚本,并形成产品化。”

今年4月份,赖伟加入神州飞象,任高级Postgresql DBA职位。“目前我工作的主要内容是探讨并设计公司项目的数据库架构和调优,公司项目中的数据库的迁移等。”他说。

在本次线下活动中,赖伟分享的主题是《Sybase迁移PG的那些事》。

为什么分享这个主题,赖伟说,起因是前段时间,公司项目需要从Sybase迁移到PG,数据不大,几十个G。“但是有存储过程几万行,当拿到SQL时就懵了,因为之前没接触过Sybase,光看到里面的什么‘@’和‘#’就已经晕了。”

他们起初准备找找相关存储过程翻译的软件,想在这种软件的基础上进行修改会事半功倍。后来找到几个,但经过测试后发现很多语句翻译结果有误或者翻译不出来,无奈翻译软件的事就放一边了。“之后我们做翻译的DBA总共是3人,由我牵头先把对应文档整理制作好,以“先直译”,“后义译”的方式把整个翻译工作完成了。”赖伟说,这里看似很简单的一句,却让他们绕了很多弯,踩了很多坑……。

在迁移工作完成后,赖伟和他的同事发现,每个存储过程迁移到PG之后行数都有大幅增加。在担心PG性能的同时,他们做了一些对比测试,发现PG的性能还是蛮不错的,运行同样的存储过程,速度上毫不逊色于Sybase,有些的速度甚至能快上好几倍。

“PG是一个比较严谨的数据库,在SQL语法上不像其他数据库那样随意,总担心它不能完完全全的解决其他数据库上那些标新立异的东西,通过这次迁移工作,我发现我的担心是多余了,在大象的肚子里,你总能找到那么一个方法帮你撑起一艘船来……”对于PG,赖伟如此总结到。

时间: 2024-09-22 01:25:14

专访神州飞象高级数据库工程师赖伟:迁移不怕难,大象肚里能撑船的相关文章

Facebook如何实现PB级数据库自动化备份

文章讲的是Facebook如何实现PB级数据库自动化备份,Facebook的MySQL数据库,是世界上最庞大的MySQL数据库之一,在不同地区有数千个数据库服务器.因此,备份对他们来说是个巨大的挑战.为了解决这个问题,他们构建了一个高度自动化.非常有效的备份系统,每周移动多个PB的数据.Facebook数据团队的Eric Barrett通过一篇文章分享了他们的做法. 他们没有采用大量前载(front-loaded)测试,而是强调快速检测失败,并且进行快速.自动化纠正.部署几百个数据库服务器,只需

数据库工程师快速上手MaxCompute进行ETL

案例说明 本案例主要是介绍如何通过数加MaxCompute+大数据开发套件两个产品实现简单的网站数据统计分析. 适用人群 MaxCompute初学者,特别是无大数据开发基础但有数据库使用基础. 案例侧重 数据库工程师快速上手MaxCompute进行大数据开发,简单了解在MaxCompute做大数据ETL过程,同时了解一些MaxCompute SQL和常用数据库SQL的基本区别. 示例介绍 房产网上经常会看到一些排行榜,如最近30日签约的楼盘排行.签约金额的楼盘排行等,本示例我们简单介绍通过对二手

想从事数据库工程师方面的工作,求各位推荐SQL ORACLE学习教程

问题描述 想从事数据库工程师方面的工作,求各位推荐SQLORACLE学习教程感激不尽 解决方案 解决方案二:那这个帖子应该发在sqlserver板块或是oracle板块呀...

菜鸟也能飞:SQL数据库实战专业教程(三)

七.详细设计 详细设计还得从数据库开始.作为专业菜鸟,我们要把所有的SQL语句都放在存储过程当中,不要放在程序里.这样做的好处是:容易修改.维护,执行速度快.减少数据传输量.存储过程可以简单的理解为在SQL服务器上创建小函数,它们有名字.参数,通过调用这些小函数,我们可以完成对表的增.删.查.改操作,相当于把SQL语句放在了服务器上,并且是经过编译的,执行速度快.在程序中,我们不必再写复杂的SQL语句,直接写存储过程名称就可以了. 具体如何使用存储过程,可以参考这篇博文:http://www.5

Oracle数据库升级或数据迁移方法研究_oracle

一.数据库升级的必要性 数据库升级是数据库管理员经常要面对的问题,如果你的应用要使用新版本数据库的新特性:如果数据库运行负载过重,而通过软硬件调整又不能有根本性的改善:如果要更换操作系统平台:如果要增强数据库的安全性:还有一个原因是随着新版本数据库的出现与成熟,oracle停止了对旧版本数据库的技术支持,升级到高版本,可以继续获得oracle的支持,还可以利用新版本数据库的新特新,可以改善系统的性能,健壮性,可扩张性和可用性,等等,面对这些问题,需要通过数据库升级才得以解决.不过,如果你的系统运

php实现redis数据库指定库号迁移的方法

 这篇文章主要介绍了php实现redis数据库指定库号迁移的方法,涉及对于redis数据库的操作技巧,非常具有实用价值,需要的朋友可以参考下     本文实例讲述了php实现redis数据库指定库号迁移的方法,分享给大家供大家参考.具体如下: redis普通的数据库迁移,只能整个redis save,或者利用主从,当然也可以安装一个redis-dump,不过比较麻烦,这里提供一种php的脚本,实现指定库号的迁移,其实也就是遍历根据存储类型,读出来,插入新库,效果是这样: 代码如下: [root@

如何将数据库从SQL Server迁移到MySQL

一.迁移Database Schema. 首先使用Sybase Powerdesigner的逆向工程功能,逆向出SQL Server数据库的物理模型.具体操作是在Powerdesigner中选择"File","Reverse Engine"再选择Database,将DBMS选择为SQL Server,如图: 然后选择数据源,也就是要具体连接到的SQL Server数据库服务器,然后选择要逆向的数据库名,比如选中"WSS_Content_80"如图

Mysql数据库千万数据修改迁移问题

问题描述 Mysql数据库千万数据修改迁移问题 5C 环境:数据库DATA中有三张表分别为 表A.表B.表C 需求:表A中有1200万数据,现在需要将表A中的部分字段数据插入表B中,将表A中剩余部分字段插入表C中,在插入过程中,会对字段数据进行部分处理(如某字段为空,则随机插入写那些).问题: 除了查出表A中的数据然后一条一条处理插入还有什么好的方式能优化效率呢!! 解决方案 MySQL数据库数据位置迁移 解决方案二: 还不是一样用SQL语句啊 解决方案三: 事务应该可以吧,但效率好像不好说 解

菜鸟也能飞:SQL数据库实战专业教程(二)

四.需求分析→数据库设计 从这开始,就真正进入项目实战啦.先说点体会,我刚开始接触编程的时候,都是编写一些小东西,往往都是半天或者一天什么的就编完了,那时候根本没想过做程序之前还要有需求分析.经过快两年的学习, 接触的都是比较大的系统,才明白没有需求分析的程序都太业余了,没有任何技术含量.对于一个系统来说,如果需求分析不到位,那么将有灾难性的后果,从这节 的小标题就能看出,需求是数据库设计的基石,需求定了,数据库基本上就定了,数据库定了,程序的基本功能也就定了.我们以一个简单的学生管理系统为例子