正文:(二十一)最后一次大考2
由于全球金融危机的原因,今年的秋季广交会市场比较清淡,珠江三角洲附近以出口为主的家具和玩具企业纷纷倒闭。但从Gentleman那了解到,今年他们公司的情况还算不错,虽然比春季广交会的成交量差一些,但已经比预期的状况好多了。加之此次广交会上,由于新系统非常好用,所以在现场感觉工作比较轻松,并未出现手忙脚乱的现象。在此次广交会临近结束的时候,他们还特意举行了一场小型的庆功宴会。
大家从广交会上回来后,纷纷说新系统非常好用。得知这些喜人的消息,我自然也是非常高兴,在他们回来的第二天,我就去Gentleman公司那,帮他们把笔记本上的数据同步到服务器上。我原本预计最多一两个小时就能搞定的事情,可没想到居然整整耗了近十个小时(16:00 - 02:00 晚饭也没吃)。
因为出现了一个奇怪的现象,即其中一台笔记本与中心数据库同步的时候,只能下载数据,却无法上传数据,这让我一头雾水。因为这台笔记本上的同步语句和其他的都是一样的,MobiLink中的确提供了单向同步的设置,可我并未加上这个参数啊。问题出在什么地方呢?
我仔细梳理着每一步环节,回想起来这台笔记本上的数据库与其他数据库不同在于,它的数据库是从另外一台笔记本上复制过来的。因为在广交会上,Gentleman是分两个展区的,而这第二个展区的开展时间比第一个展区晚两天,所以Gentleman当时在得到我的许可后,就把第一个展区用的数据库复制到了这台笔记本上。
而MobiLink数据同步的原理是,每个远程数据库都对应一个同步用户的,即每台笔记本都需要对应一个不同的同步用户。最初我认为MobiLink的数据同步过程,只要我不设置单向同步,即肯定是即上传又下载的。可那天经过我反复测试,发现对于一个新的同步用户,在初次与中心服务器做同步的时候,数据是只下载不上传的。
一开始,我以为是设置出来问题,可反复检查设置,并未查出问题。我再仔细琢磨MobiLink为什么这样处理?虽然我并未在任何MobiLink资料中印证我的猜测,但我最终认为这是MobiLink特意这样处理的。即对于一个全新同步用户,初次同步过程中,MobiLink的执行方法是只下载不上传的。其实这也很好理解,因在一个中心数据库和多个远程数据库发布的时候,只有默认这种方式才能最快完成同步,否则数据只有轮询同步两遍之后才能实现完全一致。在想明白了这一点后,我赶紧改变了方法,即采取手工SQL语句导出的方法,将那台无法上传数据的笔记本中的数据导出到文件中,然后再将这些文件数据导入到中心服务器内。
那晚,就这样琢磨后测试,测试后又琢磨,一直折腾到凌晨2点才把数据全部导入到中心服务器中。因为我清楚,如果不把数据整理好,Gentleman的公司明天就无法正常工作,所以一定要在那晚把数据整理好。
由于全球金融危机的原因,今年的秋季广交会市场比较清淡,珠江三角洲附近以出口为主的家具和玩具企业纷纷倒闭。但从Gentleman那了解到,今年他们公司的情况还算不错,虽然比春季广交会的成交量差一些,但已经比预期的状况好多了。加之此次广交会上,由于新系统非常好用,所以在现场感觉工作比较轻松,并未出现手忙脚乱的现象。在此次广交会临近结束的时候,他们还特意举行了一场小型的庆功宴会。
大家从广交会上回来后,纷纷说新系统非常好用。得知这些喜人的消息,我自然也是非常高兴,在他们回来的第二天,我就去Gentleman公司那,帮他们把笔记本上的数据同步到服务器上。我原本预计最多一两个小时就能搞定的事情,可没想到居然整整耗了近十个小时(16:00 - 02:00 晚饭也没吃)。
因为出现了一个奇怪的现象,即其中一台笔记本与中心数据库同步的时候,只能下载数据,却无法上传数据,这让我一头雾水。因为这台笔记本上的同步语句和其他的都是一样的,MobiLink中的确提供了单向同步的设置,可我并未加上这个参数啊。问题出在什么地方呢?
我仔细梳理着每一步环节,回想起来这台笔记本上的数据库与其他数据库不同在于,它的数据库是从另外一台笔记本上复制过来的。因为在广交会上,Gentleman是分两个展区的,而这第二个展区的开展时间比第一个展区晚两天,所以Gentleman当时在得到我的许可后,就把第一个展区用的数据库复制到了这台笔记本上。
而MobiLink数据同步的原理是,每个远程数据库都对应一个同步用户的,即每台笔记本都需要对应一个不同的同步用户。最初我认为MobiLink的数据同步过程,只要我不设置单向同步,即肯定是即上传又下载的。可那天经过我反复测试,发现对于一个新的同步用户,在初次与中心服务器做同步的时候,数据是只下载不上传的。
一开始,我以为是设置出来问题,可反复检查设置,并未查出问题。我再仔细琢磨MobiLink为什么这样处理?虽然我并未在任何MobiLink资料中印证我的猜测,但我最终认为这是MobiLink特意这样处理的。即对于一个全新同步用户,初次同步过程中,MobiLink的执行方法是只下载不上传的。其实这也很好理解,因在一个中心数据库和多个远程数据库发布的时候,只有默认这种方式才能最快完成同步,否则数据只有轮询同步两遍之后才能实现完全一致。在想明白了这一点后,我赶紧改变了方法,即采取手工SQL语句导出的方法,将那台无法上传数据的笔记本中的数据导出到文件中,然后再将这些文件数据导入到中心服务器内。
那晚,就这样琢磨后测试,测试后又琢磨,一直折腾到凌晨2点才把数据全部导入到中心服务器中。因为我清楚,如果不把数据整理好,Gentleman的公司明天就无法正常工作,所以一定要在那晚把数据整理好。