1
yejinmo 2017-08-17 22:41:30 +08:00
必须要用 PHP 么。。
|
3
AlwaysBee 2017-08-17 22:44:12 +08:00
php 的协程?
|
4
AlwaysBee 2017-08-17 22:45:07 +08:00
协程应该是可以解决的,可以处理无限大的数据
|
5
yangqi 2017-08-17 22:46:14 +08:00 1
没看懂,你要是要同步 mysql 的表,然后用 php? 闲的蛋疼吗,mysql 5.0 那是 myisam 表?
考虑 replication 或者如果是 myisam, 直接锁表然后 rsync 表文件 |
6
hiboshi 2017-08-17 22:46:44 +08:00
rsync、sftp 与 php 关系不大,主要是文件同步
他们都支持 win、linux 的 |
8
viakiba 2017-08-17 22:48:23 +08:00
|
9
GreatHumorist 2017-08-17 22:48:35 +08:00 via iPhone
mysql 自身的主从同步?
|
10
carlclone 2017-08-17 22:51:39 +08:00 via Android 1
居然把文件存表里,厉害
|
11
ericgui OP @GreatHumorist 不是主从同步,就是 2 台机器,一台同步到另一台,win 同步到 ubuntu,ubuntu 这台里的 yii2 框架,直接连到 win 机器上的 mysql 5.0
|
16
yangqi 2017-08-17 22:57:47 +08:00
|
17
zeraba 2017-08-17 22:58:57 +08:00 via Android
直接 mysqldump 出来 再 mysql 导入不行么 4G 的表也不大啊 内网文件传输就不用说了吧 怎么喜欢怎么传 ftp sftp http 随便玩 1G 内存不是 1G 硬盘 能导入的
|
18
allenhu 2017-08-17 23:11:49 +08:00 via Android
PDF 也寸数据库,这是什么样的思路
|
19
lujiajing1126 2017-08-17 23:17:40 +08:00 via iPhone
读 binlog 实时同步
|
21
ericgui OP @lujiajing1126 正在研究你说的,学习了,谢谢
|
22
shiny 2017-08-17 23:33:31 +08:00
你们是直接把文件存数据库里了?
|
23
GreatHumorist 2017-08-17 23:34:19 +08:00 via iPhone
4g 不算大,我之前爬虫爬的数据 10 个 g,dump 出来内网传过去再导入不超过半小时
|
24
GreatHumorist 2017-08-17 23:34:53 +08:00 via iPhone
而且用主从同步不是更好的选择吗
|
25
ericgui OP @GreatHumorist 我要每日更新一次,这样合适吗?
|
27
ZXCDFGTYU 2017-08-17 23:44:04 +08:00 via iPad
主从啊我去。。你用 php 做这个的意义何在?
|
28
hcymk2 2017-08-17 23:50:27 +08:00
|
29
gouchaoer 2017-08-18 00:11:48 +08:00 via Android
主从没那么好配置,你直接写过 php 脚本放 cron 里面每天备份就完了,多简单的事。。。而且表才几个 g,你就算几个 t 也没问题。。。另外把 pdf 之类的存成 mysql 的 binary 并没有什么问题,简单好管理比存文件好,反正数量也不多
|
30
bear2017 2017-08-18 01:06:40 +08:00 via Android
直接把文件直接存数据库!?
同步的还是主从吧。关键你还 2 个系统,MySQL 版本还差那么大,设置主从的话,有点困难。。。 |
31
msg7086 2017-08-18 02:13:21 +08:00
说句实话,区区 4.3G 的数据,每日才同步一次,这个随便找个脚本回来改改都行的,搞这么麻烦?
你问单线程执行到什么时候? 按照(我猜的)内网 1Gbps 的速度来说,就算每天你把这 4.3G 的数据全更新一遍,也只要 1 分钟就能同步完。 别说每日一次了,每日一百次都轻轻松松跑的。 另外文件存数据库没问题。存在磁盘上,文件系统也是数据库。我网站种子库里存了十几万种子,效率不比存文件差。 |
32
SlipStupig 2017-08-18 06:15:17 +08:00
两种方案:
1.用 binlog 设置主从同步,一天才 4g 一点也不多 2.记录最后一天数据的 id,然后从那个地方然后定时 dump 出 sql 文件,让导入到另外一个数据库里面,如果不是实时的话,完全没问题 |
33
cxbeat 2017-08-18 08:24:22 +08:00 via Android
提出一个新思路:如果 io 不大的话,创建一个新表,每次读写都把操作写入新表,就只需要同步新表就行了
|
34
miaoever 2017-08-18 08:44:02 +08:00
每天 4GB 数据量不算大。你需要: https://github.com/alibaba/DataX
|
36
wekw 2017-08-18 09:03:11 +08:00 via Android
mysqldump 多大都能搞
|
37
vtwoextb 2017-08-18 09:15:18 +08:00
首先说你数据库就不能存 doc pdf 这样的文件,其次要真想同步 简单的 shell 一行就可以了
|
39
ericgui OP @viakiba 嗯,这是目前为止最符合我预想的方案。不过这是用 java 实现的,我要用 php 实现出来,我要好好想想。谢谢。
|
40
Aluhao 2017-08-18 09:43:48 +08:00
数据库备份:只有一张表我觉得容易搞定吧,目录服务器建立一个计划任务远程去连接远程数据库,直接把当日更新的 SELECT 插入进本地数据表呀,计划任务在大半夜进行。
文件同步直接用:rsync 也是可以用计划任务。 |
41
Aluhao 2017-08-18 09:45:10 +08:00
MYSQL 主从同步优先考虑呀,但是你这 MYSQL 版本不一至,应该是配置不了。
|
42
clino 2017-08-18 09:54:53 +08:00
为什么要把文件存数据库啊...
|
43
fenglangjuxu 2017-08-18 10:01:38 +08:00
先吧 a 鸡数据 scp 一份到 b 鸡,然后 a 鸡有新数据,先写入到 redis 队列,然后 b 从 redis 获取,在入库到 b
|
44
xjmroot 2017-08-18 10:29:58 +08:00
有那么复杂么,感觉就第一次同步慢点,第一次全量同步,后面都是增量啦
增量一天能增加多少数据呢 |
45
shingoxray 2017-08-18 10:53:39 +08:00
非要用 PHP 解决的话,写个 PHP 文件(比如 sync.php )同时连这两个库,按时间戳把新操作的记录从 Win 鸡更新到 U 鸡。
然后随便哪只鸡上做个任务,定时>php.exe sync.php 就可以吧? |
46
jyf 2017-08-18 10:59:27 +08:00
用 mysql 的主从同步 但是不要用 binlog 可以考虑文本语句的那种 只要没用版本相关的语句应该没啥问题
|
48
yw9381 2017-08-18 11:17:14 +08:00
我觉得,文件还是别放在数据库里吧,以实际的文件放在硬盘里,
数据库记录文件的相对位置,大小,md5 这些信息。 每天根据差异生成 sql,在小机上跑一下,小机跑的时候,自动从目标服务器吧文件同步到本机 这样每天需要拉的数据就会小很多。对于每天的全量备份实在是划不来 全量的话,每周,或是半月,一月来一次 |
49
scys 2017-08-18 11:29:31 +08:00
#1 source: mysqldump to data.sql.gz
#2 scp data.sql.gz to dest #3 dest: echo data.sql.gz | mysql 完毕,自动化脚本,估计就 10 分钟不够,4.3G ,不够 mysqldump 塞牙缝 |
50
janxin 2017-08-18 11:33:09 +08:00
改改代码存文件不好吗...
|
51
DRcoding 2017-08-18 11:35:52 +08:00
Windows Server 2012 上试试 kettle 吧,PHP 还是算了。
|
52
msg7086 2017-08-18 11:36:08 +08:00
上面这群说存文件里的,有多少人真的试过在 EXT4 和数据库里存几十万几百万文件?
|
55
Felldeadbird 2017-08-18 13:59:32 +08:00
这么大文件,别依赖 PHP 了、
|
57
msg7086 2017-08-18 14:12:22 +08:00
|
58
loveCoding 2017-08-18 14:16:03 +08:00
@msg7086 #54 存的时候按天或者按每周这样切分目录效果会有提升不
|
59
msg7086 2017-08-18 14:21:39 +08:00
|
60
romisanic 2017-08-18 16:14:08 +08:00
如果只是数据库的同步 跟你们网站用啥做的并没有什么太大关系吧?
|
61
ahkxhyl 2017-08-18 16:32:54 +08:00
关注这个话题~
|
62
Nitromethane 2017-09-21 09:45:16 +08:00
你们要买对象存储啊~否则磁盘跪了文件就真贵了~
4.3G 的对象存储很便宜~ |