利用yugong将mysql的数据迁移到mycat

该博客介绍了如何使用Yugong工具进行MySQL到MyCat的数据全量迁移。详细步骤包括下载jar包,配置源和目标数据库信息,以及迁移特定表的设置。配置文件`5_mysql-mysql-full-sync.properties`和`5_mysql-mysql-full-trans.yaml`用于设定源目标数据库连接、表名及过滤字段。整个过程涉及数据库同步、批处理应用和并发设置。
摘要由CSDN通过智能技术生成

一.下载jar包

jar包地址

yugong生成的jar_MYCAT-YUGONG-互联网文档类资源-CSDN下载

命令行执行:

java -jar yugong-shaded.jar -c conf\\5_mysql-mysql-full-sync.properties -y conf\\5_mysql-mysql-full-trans.yaml

2.对应配置文件修改

5_mysql-mysql-full-sync.properties如下:

改配置文件,主要配置源数据库(mysql)的信息,以及目标数据库(mycat)的信息,以及需要迁移的表名(yugong.table.white),主要迁移两个表fenpian_0,fenpian

#源数据库
yugong.database.source.url=jdbc:mysql://localhost:3307/db2_0?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
yugong.database.source.username=root
yugong.database.source.password=123456
yugong.database.source.type=MYSQL
yugong.database.source.encode=UTF-8
yugong.database.source.poolSize=200
#目标数据库
yugong.database.target.url=jdbc:mysql://localhost:8066/mysql?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
yugong.database.target.username=root
yugong.database.target.password=123456
yugong.database.target.type=MYSQL
yugong.database.target.encode=UTF-8
yugong.database.target.poolSize=200


#yugong.table.batchApply=true  # TODO
yugong.table.batchApply=true
yugong.table.onceCrawNum=1000
yugong.table.tpsLimit=0
# 忽略源表pk检查的表,多表用英文逗号分隔
#yugong.table.ignorePkInspection=fenpian
# 分别列出需要指定的主键或联合主键
#yugong.table.ignorePkInspection.ShopOrderDetail=OrderId,ProductId
#yugong.table.ignorePkInspection.ShopOrderDetailMulti=OrderId,ProductId,MultiProductId

# use connection default schema
yugong.table.ignoreSchema=false
# skip Applier Load Db failed data
yugong.table.skipApplierException=false
#需要迁移的数据库表
yugong.table.white=fenpian_0,fenpian
yugong.table.black=
# tables use multi-thread enable or disable
# TODO test concurrent
yugong.table.concurrent.enable=true
# tables use multi-thread size
yugong.table.concurrent.size=6
# retry times
yugong.table.retry.times=3
# retry interval or sleep time (ms)
yugong.table.retry.interval=1000
# MARK/FULL/INC/ALL(REC+FULL+INC)/CHECK/CLEAR
yugong.table.mode=FULL


# yugong extractor
yugong.extractor.dump=false
yugong.extractor.concurrent.enable=true
yugong.extractor.concurrent.global=false
yugong.extractor.concurrent.size=60
yugong.extractor.noupdate.sleep=1000
yugong.extractor.noupdate.thresold=0
yugong.extractor.once=false

# yugong applier
yugong.applier.concurrent.enable=true
yugong.applier.concurrent.global=false
yugong.applier.concurrent.size=20
yugong.applier.dump=false
# stats
yugong.stat.print.interval=5
yugong.progress.print.interval=1
# alarm email
yugong.alarm.email.host=
yugong.alarm.email.username=
yugong.alarm.email.password=
yugong.alarm.email.stmp.port=
yugong.alarm.email.ssl.support=
yugong.alarm.receiver=

#yugong.cdc.time.start=2020-08-

 5_mysql-mysql-full-trans.yaml

配置shema_to为需要存储的数据库为目标库的db2.

表fenpian_0迁移到目标库的db2的fenpian2中,并且忽略字段fee

表fenpian默认配置直接迁移到db2的fenpian中.

注:column_alias可以进行字段名称的修改

databases:
  source:
    schema:
  target:
    schema:
table:
  a: todo
  b: todo
extractor:
  a: todo
  b: todo
appiler:
  a: todo
  b: todo
translators:
  table:
    '*':
      - class: com.taobao.yugong.translator.NameTableMetaTranslator
        properties:
          column_case_format_from: UPPER_CAMEL
          column_case_format_to: LOWER_UNDERSCORE
          table_case_format_from: UPPER_CAMEL
          table_case_format_to: LOWER_UNDERSCORE
    ProductProperty: []
  record:
    '|BEFORE|':
      - class: com.taobao.yugong.translator.NameStyleDataTranslator
        properties:
          column_case_format_from: UPPER_CAMEL
          column_case_format_to: LOWER_UNDERSCORE
          table_case_format_from: UPPER_CAMEL
          table_case_format_to: LOWER_UNDERSCORE
          schema_to: db2
    fenpian_0:
      - class: com.taobao.yugong.translator.NameStyleDataTranslator
        properties:
          table_to: fenpian2
      - class: com.taobao.yugong.translator.ColumnFixDataTranslator
        properties:
#          column_alias:
#            headimgurl:
#              - head_url
#            joindate:
#              - create_time
          exclude_columns:
#            - timestamp
            - fee

git地址: GitHub - zwyqz/mycat-yugong

对于MySQL大字段表的迁移,通常需要考虑以下几个方面: 1. 数据量的大小:如果数据量较小,可以使用MySQL官方的mysqldump工具或Percona的备份工具进行迁移。这些工具可以将整个表的数据导出为SQL文件,然后再导入到目标数据库中进行恢复。 2. 数据库之间的兼容性:如果源数据库和目标数据库之间存在不兼容的情况,比如从Oracle到MySQL迁移,可以考虑使用一些专门的工具进行迁移,比如yugong开源版本。这些工具可以支持异构结构的迁移,帮助解决不兼容的问题。 3. 迁移过程的稳定性和实时性:如果需要保证迁移过程中业务的连续性,可以采用不停机迁移的方法。具体的方法可以参考相关的技术文档或博客,如《MYSQL数据库单表亿级数据不停机迁移_bohu83的博客-CSDN博客》中提到的方法。 需要根据具体的情况选择合适的迁移方法,并在迁移过程中保证数据的完整性和一致性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [MYSQLMYSQL 分表数据迁移](https://blog.csdn.net/bohu83/article/details/123799755)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值