MySQL 难题求思路:怎样用 PHP 每日内网同步一个 4.3G 的表?

2017-08-17 22:36:42 +08:00
 ericgui
2 台机器,一台 Windows Server 2012,运行一个 mysql 5.0,对,你没看错,mysql 5.0

另一台 Ubuntu,mysql 5.7

框架 Yii2

内网(阿里云同一安全组,默认内网)

Windows 这个机器,有一张表,4.3G ,存的都是 PDF DOC 之类的文件,每日都有新增、更新操作,记录有最后一次操作的时间戳
那么,需要每天把这张表,同步到 Ubuntu 机器上来,这台小鸡只有 1G 内存

请问,应该怎么做?

我们考虑到用 php_fork,但据说它的底层的 pcntl_fork 不适用于生产环境。
如果单线程执行同步脚本,那要执行到什么时候啊。


是不是还要用到 yield 关键字,用一下协程?否则我们这 1G 小鸡是不是就很容易挂了?

第一次玩这么刺激的,求指教。谢谢
6728 次点击
所在节点    程序员
62 条回复
yejinmo
2017-08-17 22:41:30 +08:00
必须要用 PHP 么。。
ericgui
2017-08-17 22:42:14 +08:00
@yejinmo 我们用 PHP 写的网站。

如果不用 PHP,有其他方法么
求赐教
AlwaysBee
2017-08-17 22:44:12 +08:00
php 的协程?
AlwaysBee
2017-08-17 22:45:07 +08:00
协程应该是可以解决的,可以处理无限大的数据
yangqi
2017-08-17 22:46:14 +08:00
没看懂,你要是要同步 mysql 的表,然后用 php? 闲的蛋疼吗,mysql 5.0 那是 myisam 表?

考虑 replication
或者如果是 myisam, 直接锁表然后 rsync 表文件
hiboshi
2017-08-17 22:46:44 +08:00
rsync、sftp 与 php 关系不大,主要是文件同步

他们都支持 win、linux 的
hiboshi
2017-08-17 22:47:34 +08:00
@hiboshi 每天定时导出,传输,写入
viakiba
2017-08-17 22:48:23 +08:00
GreatHumorist
2017-08-17 22:48:35 +08:00
mysql 自身的主从同步?
carlclone
2017-08-17 22:51:39 +08:00
居然把文件存表里,厉害
ericgui
2017-08-17 22:51:49 +08:00
@GreatHumorist 不是主从同步,就是 2 台机器,一台同步到另一台,win 同步到 ubuntu,ubuntu 这台里的 yii2 框架,直接连到 win 机器上的 mysql 5.0
ericgui
2017-08-17 22:52:17 +08:00
@yangqi win 机器上的 mysql 5.0 用的引擎是 innodb
ericgui
2017-08-17 22:52:49 +08:00
@viakiba PHP 啊亲,java 不懂
ericgui
2017-08-17 22:53:42 +08:00
@carlclone 还用 mysql 5.0 呢。。。。我们是在老系统上做了要给外挂程序,别提 多恶心了
ericgui
2017-08-17 22:54:13 +08:00
@yangqi 那不用 php 用什么?其他语言真不会
yangqi
2017-08-17 22:57:47 +08:00
@ericgui 最简单的就是 mysqldump + rsync, 然后导入

要优雅一点的就设置主从同步,replication
zeraba
2017-08-17 22:58:57 +08:00
直接 mysqldump 出来 再 mysql 导入不行么 4G 的表也不大啊 内网文件传输就不用说了吧 怎么喜欢怎么传 ftp sftp http 随便玩 1G 内存不是 1G 硬盘 能导入的
allenhu
2017-08-17 23:11:49 +08:00
PDF 也寸数据库,这是什么样的思路
lujiajing1126
2017-08-17 23:17:40 +08:00
读 binlog 实时同步
ericgui
2017-08-17 23:24:45 +08:00
@allenhu 亲,别喷我,真不是我干的,我也是在老系统基础上打补丁

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/383809

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX