从 mysql 导入数据至 postgresql
  1. 安装 pgloader docker pull dockerpull.org/dimitri/pgloader

  2. 运行容器 sudo docker run --rm -it dockerpull.org/dimitri/pgloader bash

  3. 在容器中执行 pgloader mysql://admin:123456@10.10.1.109:3306/data postgresql://admin:123456@10.10.1.111:5432/data

    如果表数据很多,加入参数 pgloader --with "prefetch rows = 1000" ...

  4. 使用配置文件

    
    # 如果数据比较大的话,这样试一下
    LOAD DATABASE
    FROM mysql://admin:123456@10.10.1.109:3306/data
    INTO postgresql://admin:123456@10.10.1.111:5432/data
    
        INCLUDING ONLY TABLE NAMES MATCHING 'table1', 'table2'
    
        WITH include drop, create tables, create indexes, reset sequences, batch size = 4GB, prefetch rows = 1000
    
        SET work_mem to '64 MB', maintenance_work_mem to '512 MB', statement_timeout to '36000s';
    
    # 执行
    sudo vi config.load 
    sudo sudo docker run --name pgloader -v .:/home/x dockerpull.org/dimitri/pgloader pgloader /home/x/config.load
    sudo docker restart ce14a5edacea # 如果修改过配置
    sudo docker logs -n 50 -f  ce14a5edacea


附:从 sql 载入数据至 mysql .\mysql.exe -u root  --default-character-set utf8mb4 --database data < C:\Users\sql_data\basic.sql -p123456
上一篇
下一篇