30G 的数据库如何高效搬运到服务器?

2022-10-12 22:32:59 +08:00
 tellmeworld

30G 的 mysql 数据表,大概 4000 万条数据,本地用 elasticsearch 做的全文搜索,要搬运到服务器,

是直接把 mysql 数据库传到服务器上,然后服务器搭建 elasticsearch 慢慢建立索引比较好,

还是本地直接全部 es 索引,然后把 mysql 和 es 索引数据直接搬到服务器? mysql 数据表还可以打包上传,es 索引数据也可以打包上传直接使用吗?

4056 次点击
所在节点    程序员
31 条回复
fisherwei
2022-10-13 16:00:12 +08:00
30G 压缩完还是 25G ,你压缩的是 mysql 的 data 文件夹,还是 dump 文件?

建议的做法是 dump 出来,然后压缩 dump 文件,传到数据库,重建数据库。
建议用 xz 压缩。

如果你有强力 CPU ,可以试试 -9e 级别的压缩,我曾经压缩 300G 的 mysql dump 文件,在一个 4 路 20 核 40 线程(共 160 线程)的机器上压了 8 个多小时才完成,160 核全跑满了,压缩完大概 20 多 g 。
CaptainD
2022-10-13 16:05:47 +08:00
条条大路通罗马呀

如果服务器外网带宽多,直接用 es dump 工具,把你本地的 es 同步到 server
如果是小水管,那就麻烦点,可以把 es 的数据目录打包上传,再服务器配好环境放到指定目录下(用 docker 也可以,目录映射)


我估计两种方法差不太多
echo1937
2022-10-13 16:05:56 +08:00
用 DB 备份工具,选择压缩备份,上传到公有云的对象存储(支持断续),然后服务器去下载。
aru
2022-10-13 16:20:28 +08:00
mysqldump 出来 再用 zstd 压缩,应该最终文件 3G 左右,随便怎么传
aru
2022-10-13 16:21:55 +08:00
除非你的数据是二进制 blob ,纯文件压缩效率很高的
liprais
2022-10-13 16:29:40 +08:00
mysql dump 出来重新加载一遍完事
bthulu
2022-10-13 16:32:27 +08:00
不能装 U 盘里, 插到机房电脑上么
Maxwe11
2022-10-13 17:15:32 +08:00
@tellmeworld 这个是我的习惯,因为我不是系统应用研发,我们是搞数据研发的,所以基础的业务数据行为数据等一些结构设计等,都不太符合我们做数据的要求,为了更满足我们处理的要求,一般都会有很多调整,处理好基本结构后再把数据插回去。
iPc666
2022-10-13 17:47:55 +08:00
@godall 换成阿里 /天翼 /迅雷 /夸克也可以,都支持
zddwj
2022-10-13 18:15:10 +08:00
传输大文件的话直接 rsync 命令,自带压缩跟断点续传,一步到位
cnrting
2022-10-13 23:46:23 +08:00
3T 再来考虑这个问题

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

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

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

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

© 2021 V2EX