1. 首页 > 国产数据库教程 > TiDB教程 > 正文

tidb-089-MySQL迁移TiDB实战全流程

2.2.2 TiDB配置

# TiDB配置优化
[tidb]
ti_server_memory_limit = 16G
txnsize_limit = 104857600
max-server-connections = 3000风哥提示:

[pd]
schedule.leader-schedule-limit = 4
schedule.region-schedule-limit = 2048
schedule.replica-schedule-limit = 64

[raftstore]
raftdb.defaultcf.compression-per-level = ["no", "no", "lz4", "lz4", "lz4", "lz4", "lz4"]

2.3 网络规划

  • 网络带宽:建议10Gbps以上,确保数据传输速度
  • 网络延迟:控制在1ms以内,减少同步延迟
  • 网络隔离:使用专用网络,避免其他业务影响
  • 防火墙配置:开放必要的端口,如MySQL 3306、TiDB 4000、PD 2379等
  • 数据评估
    # 查看MySQL数据库大小
    mysql -u root -p -e “SELECT table_schema AS ‘Database’, SUM(data_length + index_length) / 1024 / 1024 AS ‘Size (MB)’ FROM information_schema.tables GROUP BY table_schema;”
  • 权限准备
    # 在MySQL中创建迁移用户
    CREATE USER ‘dm_user’@’%’ IDENTIFIED BY ‘password’;
    GRANT SELECT, RELOAD, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO ‘dm_user’@’%’;

    # 在TiDB中创建迁移用户
    CREATE USER ‘dm_user’@’%’ IDENTIFIED BY ‘password’;
    GRANT ALL PRIVILEGES ON *.* TO ‘dm_user’@’%’;

  • 工具安装
    # 安装DM
    tiup install dm
    tiup dm deploy dm-master 1.0.0 192.168.1.10:8261 –user root -p
    tiup dm deploy dm-worker 1.0.0 192.168.1.11:8262 192.168.1.12:8262 –user root -p
  • 3.2 迁移方案选择

    迁移工具 适用场景 优势 劣势
    DM 大规模数据迁移,需要增量同步 支持全量+增量,自动化程度高 配置复杂,资源消耗大
    DTS 云环境迁移,中小规模数据 操作简单,可视化管理 可能产生额外费用
    mysqldump 小数据量,简单场景 使用简单,无需额外工具 迁移时间长,需要停机
    mydumper/myloader 中等数据量,需要并行导入 并行处理,速度快 需要额外工具支持

    3.3 DM迁移配置

    # 数据源配置 - source.toml
    [source.mysql-1]
    type = "mysql"学习交流加群风哥QQ113257174
    host = "192.168.1.5"
    port = 3306
    user = "dm_user"
    password = "password"
    
    # 任务配置 - task.toml
    name = "mysql-to-tidb"
    task-mode = "all"
    target-database:
      host = "192.168.1.20"
      port = 4000
      user = "dm_user"
      password = "password"
    
    mysql-instances:
    - source-id: "mysql-1"
      block-allow-list:
        bw-rule-1:
          database: "test"
          table: "%"
    
     sync:
      worker-count: 16
      batch-size: 10000
      enable-ansi-quotes: true
      safe-mode: true
    

    3.4 执行迁移

    1. 启动DM服务
      tiup dm start dm-master
      tiup dm start dm-worker
    2. 添加数据源
      tiup dmctl –master-addr 192.168.1.10:8261 operate-source create source.toml
    3. 启动迁移任务
      tiup dmctl –master-addr 192.168.1.10:8261 start-task task.toml
    4. 监控迁移进度
      tiup dmctl –master-addr 192.168.1.10:8261 query-status mysql-to-tidb

    3.5 迁移后验证

    1. 数据量验证
      # 对比MySQL和TiDB的数据量
      # MySQL
      mysql -u root -p -e “SELECT COUNT(*) FROM test.table;”
      # TiDB
      mysql -h 192.168.1.20 -P 4000 -u root -p -e “SELECT COUNT(*) FROM test.table;”
    2. 数据一致性验证
      # 使用checksum验证
      # MySQL
      mysql -u root -p -e “CHECKSUM TABLE test.table;”
      # TiDB
      mysql -h 192.168.1.20 -P 4000 -u root -p -e “CHECKSUM TABLE test.table;”
    3. 应用验证
      • 连接应用到TiDB
      • 执行关键业务操作
      • 验证功能正常
    更多视频教程www.fgedu.net.cn

    本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

    联系我们

    在线咨询:点击这里给我发消息

    微信号:itpux-com

    工作日:9:30-18:30,节假日休息