V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
la2la
V2EX  ›  程序员

Centos7 跟 window server 有没有什么办法简便的转移数据,最好脚本实现的这种

  •  
  •   la2la · 2019-05-31 15:12:25 +08:00 · 2088 次点击
    这是一个创建于 2022 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有一个需求需要定时从 mysql 导出数据到 sql server

    image1

    目前我的想法是,写个脚本定时把数据从 mysql 上导出成 csv 文件,然后 scp 复制到 window server (不太清楚能不能 scp )上,window server 上再写个脚本定时刷新有没有新文件,有的话,就解析导出到 sql server 中。有没有什么更好的方法。

    18 条回复    2019-05-31 21:17:07 +08:00
    tjyao520
        1
    tjyao520  
       2019-05-31 15:49:11 +08:00
    navicat 连上 MySQL 不行么?
    la2la
        2
    la2la  
    OP
       2019-05-31 15:53:39 +08:00
    @tjyao520 从 window server 上不能连接 mysql 数据库,两个不同的局域网
    pmispig
        3
    pmispig  
       2019-05-31 16:04:33 +08:00
    过来人告诉你,导出 CSV 一般是不行得,比如时间格式不一样,null 和空字段处理也不一样,各种冲突
    x66
        4
    x66  
       2019-05-31 16:08:36 +08:00
    CSV 坑多,我们用 kettle 做数据增量同步
    lihongjie0209
        5
    lihongjie0209  
       2019-05-31 16:16:47 +08:00
    kettle
    la2la
        6
    la2la  
    OP
       2019-05-31 16:27:05 +08:00
    @pmispig 谢谢指导,json 文件,没这么多问题吧?
    la2la
        7
    la2la  
    OP
       2019-05-31 16:28:26 +08:00
    @x66 好的,谢谢,我看看 kettle
    gz911122
        8
    gz911122  
       2019-05-31 16:30:04 +08:00
    kettle +1 之前公司这么搞

    现在公司的话,每次插入的时候发个 kafak,然后另外一边订阅消费.

    还有定时任务读 binlog 的,然后插入另外一个库
    d0m2o08
        9
    d0m2o08  
       2019-05-31 16:31:13 +08:00
    传输大文件我都是开个 http 服务,直接下载
    小文件就用 nc
    la2la
        10
    la2la  
    OP
       2019-05-31 16:48:36 +08:00
    @gz911122 好像有个问题,就是没有机器能同时连上两个数据库,这两个数据库都是内网访问,kettle 应该不行吧?
    nexply1920
        11
    nexply1920  
       2019-05-31 17:11:50 +08:00
    直接 wireguard 组个虚拟局域网不就通了嘛
    flyoungstudio
        12
    flyoungstudio  
       2019-05-31 17:19:47 +08:00
    网络不通怎么 scp ?拿 U 盘拷?
    whsir
        13
    whsir  
       2019-05-31 17:22:13 +08:00
    rsync ?
    la2la
        14
    la2la  
    OP
       2019-05-31 17:46:06 +08:00
    @flyoungstudio 抱歉,是我没说清楚,mysql 服务器+centos7 在一个局域网,但是 centos7 有公网 ip,sql server 服务器+window server r2 2008 服务器在一个局域网,window 有公网 ip。一共是 4 台机器
    Takamine
        15
    Takamine  
       2019-05-31 19:44:40 +08:00 via Android
    导出来 csv 还不如直接 dump。(。ò ∀ ó。)
    Actrace
        16
    Actrace  
       2019-05-31 19:48:35 +08:00
    写个程序不难吧。。
    liaojl
        17
    liaojl  
       2019-05-31 20:18:02 +08:00 via Android
    我想的是 CentOS 上写个定时器,WinSever 上暴露个 RPC。定时器隔段时间检查 MySQL 有没有新数据,有新数据的话,就调 WinServer 的 RPC 同步到 SQL Server。
    la2la
        18
    la2la  
    OP
       2019-05-31 21:17:07 +08:00
    @Actrace #16 想偷懒
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3362 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 10:29 · PVG 18:29 · LAX 02:29 · JFK 05:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.