Skip to main content
 首页 » 创业百科

百亿级数据迁移上云,2个多月挣了3W

Hello,大家好!我叫@鱼的记忆,当然,你也可以叫我剑哥。我是今年4月16号离职,4月18号加入的社群,加入社群这么久,这还是我第一次发帖。

前提背景

为什么要强调离职日期呢?因为与后面的事情发展有关。

辞职后,在杭州待了二周,五一回了一趟老家。

在家里,报了名考驾照,然后准备边看【生财有术精华帖】,边实操项目。先后尝试过视频号书单知乎好物,还准备交学费做打假维权的项目。视频号书单只发了几个视频,知乎好物升级到LV3的时候,突然有个朋友问我想不想挣钱,介绍个兼职我做,说对方报价3K一天。

我问是什么项目,难不难,他说不难,数据迁移上云,就是把常用的关系型数据库(mysql、sqlserver、oracle)的数据导入到政务云maxCompute。

政务云:阿里为企业定制版的阿里云

maxCompute:大数据计算服务,云数据仓库

我继续追问:你在杭州,为什么不自己做呢?朋友说他们公司最近在搞线上活动,比较忙,他没有时间做。

我想了一下,目前手头上也没有什么赚钱的项目,上面的几个(视频号书单、知乎好物)还只是在尝试阶段,而这个数据迁移的活,平常工作中有过接触,就同意了。原本想着一周时间差不多可以结束,到时再回来考驾照,没想到这一干就是2个多月。

到了杭州,跟招聘方(乙方)的人,一起到了甲方客户那儿,了解了一下要迁移的数据库

Mysql:1个库,1300多张表,每张表大概300多万条数据

Sqlserver:6个库,有大库也有小库,小的几百兆,大的700多GB、1TB

Oracle:8个库,有大表也有小表,最大的2张表都是100多亿条数据

数据库在内网环境,不能停,迁移不能影响业务。需要把数据导入到云上数据库或者云服务器,maxCompute再从数据源同步数据过去。

看到这么大的数据量,说没有难度,那是骗人的。

在IT这一行业,工作也有10年了,平常见过单表数据量最大的也就百万级,这里随便一个表亿级、十亿级、百亿级,简直颠覆了我的认知。有难度也没有办法,任务已接下,人也来了,只能赶鸭子上架,边学边做。

三种类型的数据库中,mysql最简单,先从它入手,没想到这个最简单的就让我遇到了各种问题。

一,mysql迁移

刚开始准备用Navicat这个工具,这是常用,也是最熟练的。

100张、200张、300张表这样分批导出,成功导入100张表后,后面的事出乎我的意料。

200张、300张表这种导出生成的文件有点大,大概有10GB左右,导入的时候,Navicat直接报错,找了Navicat官方修复软件,最后也没有成功导入,故放弃了这个工具,为此还特意写了一篇文章。

下面的图片是跟Navicat官方的邮件沟通

用工具行不通,最后改用命令mysqldump导出,source导入,大功告成。

你可能会问,100张表导入成功了,为什么不再100张的分批导出?

因为前面的导出、导入花费了不少时间,再用这种方式,效率不高。

题外话:

当时还准备用Navicat来备份sqlserver的,结果发现生成的备份文件在远程服务器上,而不是在本地环境,还特意咨询了Navicat官方。

二,sqlserver迁移

Sqlserver是微软的,用得比较少,也就大学那会儿学习时使用过sqlserver2000,这个数据库,.net开发的用得多,而我是java开发。一般的中小企业使用mysql、oracle的比较多。

故在迁移前,吸取了mysql的教训,做了一个方案,跟甲方客户这边的人员进行了沟通,看选用哪种方法。经过排除法,最终选用了最费时的脚本法,没办法,只能硬着头皮继续干。

客户这边是个国企,每天17:30就下班了,而我跟着一起下班的话,那就需要更多的时间才能把活干完,故找他们要了一把钥匙,每天干到很晚才回去。当时每次下班的时候,天都黑了,还需要门卫帮忙开门,门卫保安看到这种敬业的精神,被惊呆了!(估计在内心想,这是哪来的傻子,这么拼命)

周六没事的时候,我都会跑过去,继续加班,只为了能早点把事情做完。还有一次,为了赶进度,通宵了,累了就睡在办公室的躺椅上,醒了就继续干活,够疯狂了吧!

遇到问题就百度、加各种群、以及向身边做IT的朋友咨询,有些问题,真的超越了我的极限,简直是无解。

最后,皇天不负有心人,经过多方努力,以及与客户这边慢慢熟悉、建立了信任,客户把权限慢慢的放开,可以把移动硬盘插到机房,这样大大节省了时间。

当把mysql、sqlserver迁移完,已经过去了一个多月,这时也考虑到钱的问题了。

三,第一次打款

刚开始是按天算的,现在干了这么久,估计不能按天算了,故向老板问了一下,能不能先支付一部分,这样大概就能知道做完有多少钱了。

老板这么爽快,我做事也更有劲了。如是,第二天就请朋友吃饭、消费,感谢他介绍的活。

四,oracle迁移

前面二个弄完了,后面这个应该就快了吧!其实,这个oracle的数据量是最大的,总共有800多亿条,单表就超过百亿,而且oracle有表空间的概念。

那怎么整呢?

分析源库,百度,一个个来,先从数据量少的开始,就这样经过九九八十难,最后一难却败在那2张百亿级别的表。

这二个表导出一半就报错,可能跟内存或其它硬件有关,不能远程到服务器,故查明不了具体原因。

后来实在没办法,客户在我的软磨硬泡,以及向他们领导请示的情况下,最终还是带我去了机房看这台Linux系统的服务器,刚开始他不愿意,因为这台机器比较老,且是Linux的,怕我搞坏了。

最后经过摸索,可以通过第三方客户端Xshell、XFtp去连,用oracle的数据泵(expdp/impdp)分批去导出/导入。

五,结算费用

事情做完,这时已是8月份,出了一份数据迁移的自检报告,然后我又要回家学驾照去了。

临走时,给老板发了条信息,说事情已做完,文档已发给他们公司某某,如果有什么问题的话,可以与我联系!可远程协助,过段时间会再去杭州。

老板说:最近辛苦了,还有费用的话,最近会算一下,到时候先给一笔,然后等结项再给一笔。

收到老板的回复,我把心放到肚子里面了。然后,专心考驾照去了。

9月中旬,因为甲方客户的款还没有打过来,故老板只给我打了一部分款,问我去杭州的话,可以入职他们公司。我回复国庆后过去。

10月份又打了一笔

本来还有一笔尾款是11月发的,人事算工资的时候,没算进去,发工资那天,老板感冒了,把这事也忘了。

12月份发工资,尾款还没有发,我跟老板提了一下。

他问人事去了,估计下个月会发的吧!

感悟

1,多交朋友,朋友多了,路子也宽了。做人要懂感恩,朋友帮了你,你也要适应的回报一下。

2,遇到有难度的事,要挑战一下自我。当时接这个兼职,我也没信心,但是还是接了下来。

3,做事不要太计较,当时说3K一天,后面没有按照这个来,算了,先把事做好。

4,程序员的三重境界

第一重:基层,一线员工,码农,可替代性强;

第二重:中高层,项目经理、技术总监等等,与公司共同成长,职业生涯会长一些;

第三重:接私活,创业、参与创业,拿股份或者转战自媒体,生财就有很多转型成功的例子。

现在我有更多的时间来看【生财有术精华帖】了,愿我们都能有所收获!

最后,我写了一份【数据迁移解决方案】的文档,感兴趣的朋友可以看看。

如果你接到这样的兼职或私活,就可以直接上手了。

欢迎交流,相互学习!

评论列表暂无评论
发表评论