400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
YMatrix 文档
关于 YMatrix
标准集群部署
数据写入
数据迁移
数据查询
运维监控
参考指南
工具指南
数据类型
存储引擎
执行引擎
系统配置参数
SQL 参考
常见问题(FAQ)
MatrixGate 从 4.3 开始支持迁移模式,可以将 Greenplum5、Greenplum6 和 YMatrix 集群的表数据高速迁移到当前 YMatrix 集群。
高速迁移使数据绕过 Master 节点,直接从源集群 Segment 上读取,经过 mxgate 转发,发送到目标集群 Segment 上,不存在 Master 单节点瓶颈。
源集群与目标集群 Segment 数量可以不一致。
单表迁移用来迁移全表数据,用法如下:
mxgate --source transfer \
--src-host 172.31.41.7 \
--src-port 5432 \
--src-db postgres \
--src-user ec2-user \
--src-password abc \
--src-schema public \
--src-table trans_ao \
--compress "gzip" \
--port-base 9129 \
--local-ip 172.31.33.128 \
--db-database ttt \
--target public.trans_ao \
--format text \
--time-format raw \
--use-auto-increment=false
其中:
参数名 | 描述 |
---|---|
--source | 功能入口,必须指定'transfer' |
--src-host | 源库master的ip地址 |
--src-port | 源库master的端口号 |
--src-user | 连接源库的用户名(建议使用superuser) |
--src-password | 连接密码 |
--src-schema | 源表的schema名 |
--src-table | 源表的表名 |
--compress | 源数据库segment主机到本数据的传输方法: 空白字符串“”,代表不压缩,明文传输 gzip:使用gzip压缩,需要源数据库的segment主机上必须安装有gzip这个linux命令 lz4:使用lz4压缩,需要源数据库的segment主机上必须安装有lz4这个linux命令 推荐 lz4 > gzip > 不压缩 |
--port-base | 传输中会占用一批端口,端口的范围为9129~ |
--local-ip | 必须用源库可以连接到本机的IP地址 |
--db-database | 迁移目标表所在的database名 |
--target | 迁移目标表名,可以是 \<schema>.\<table>形式,如果不写schema名默认是public |
--format | text或csv,仅当迁移的数据里有复杂的字符串(包含换行、引号、分隔符)时,必须CSV。其他情况下text/csv均可时,优先用text模式 |
--time-format | transfer模式下必须是raw |
--use-auto-increment | 当目标表包括serial类型的自增字段时,mxgate内默认会跳过该类型的字段,加入这个option来关闭mxgate跳过的逻辑 |
迁移模式的另一个用法是将数据快速导出到文件:
mxgate --source transfer \
--src-host 172.31.41.7 \
--src-port 5432 \
--src-db postgres \
--src-user ec2-user \
--src-schema public \
--src-table trans_ao_1 \
--compress "lz4" \
--port-base 9129 \
--local-ip 172.31.33.128 \
--save-to-dir /tmp/receive/ \
--db-database ttt \
--transform nil \
--writer nil \
--target trans_ao
使用--save-to-dir
参数来指定文件存储路径。
注意,即使导出到文件,也需要给出--db-database和--target参数来指定目标库和表,并且目标库和表必须存在
过滤迁移可以通过--src-sql
参数指定SQL来过滤需要同步的数据,在表到表迁移和表到文件迁移中都可以使用:
mxgate --source transfer \
--src-host 172.31.41.7 \
--src-port 5432 \
--src-db postgres \
--src-user ec2-user \
--src-sql "select * from demo where c1 = 'xxxx'" \
--compress "lz4" \
--port-base 9129 \
--local-ip 172.31.33.128 \
--save-to-dir /tmp/receive/ \
--db-database ttt \
--transform nil \
--writer nil \
--target trans_ao
有关迁移工具的详细参数请参考 mxgate。