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

tidb-090-Oracle迁移TiDB实战方法

2.2.2 TiDB配置

# TiDB配置优化
[tidb]
ti_server_memory_limit = 32G
txnsize_limit = 209715200
max-server-connections = 5000

[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"]

[tidb]
new_collations_enabled_on_first_bootstrap = true

2.3 网络规划

  • 网络带宽:建议10Gbps以上,确保数据传输速度
  • 网络延迟:控制在1ms以内,减少同步延迟
  • 网络隔离:使用专用网络,避免其他业务影响
  • 防火墙配置:开放必要的端口,如Oracle 1521、TiDB 4000、PD 2379等
  • 数据评估
    # 查看Oracle数据库大小
    sqlplus / as sysdba
    SELECT tablespace_name, SUM(bytes)/1024/1024/1024 AS size_gb FROM dba_data_files GROUP BY tablespace_name;
  • 权限准备
    # 在Oracle中创建迁移用户
    CREATE USER migration_user IDENTIFIED BY password;
    GRANT CONNECT, RESOURCE, SELECT ANY TABLE, SELECT ANY DICTIONARY TO migration_user;

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

  • 工具准备
    • 安装DM工具
    • 准备Oracle客户端
    • 配置ODBC或JDBC连接
  • 3.2 迁移方案选择

    迁移工具 适用场景 优势 劣势
    DM 中小规模数据迁移 支持全量+增量,配置简单 对Oracle特有特性支持有限
    OGG 大规模数据迁移,需要实时同步 实时性好,支持复杂场景 配置复杂,成本高
    自定义脚本 特殊场景,需要定制化处理 灵活可控,适应特殊需求 开发工作量大,维护成本高
    第三方ETL工具 复杂数据转换场景 功能强大,支持复杂转换 成本高,学习曲线陡峭

    3.3 数据类型映射

    学习交流加群风哥QQ113257174

    Oracle数据类型 TiDB数据类型 备注
    VARCHAR2(n) VARCHAR(n) 注意长度限制
    NUMBER(p,s) DECIMAL(p,s) 保持精度一致
    DATE DATETIME 时间格式转换
    TIMESTAMP DATETIME(6) 保留微秒精度
    CLOB LONGTEXT 大文本存储
    BLOB LONGBLOB 二进制数据存储

    3.4 执行迁移

    1. 表结构迁移
      # 使用DM迁移表结构
      tiup dmctl –master-addr 192.168.1.10:8261 start-task task.yaml
    2. 全量数据迁移
      # 监控全量迁移进度
      tiup dmctl –master-addr 192.168.1.10:8261 query-status oracle-to-tidb
    3. 增量数据同步
      # 配置增量同步
      tiup dmctl –master-addr 192.168.1.10:8261 update-task task.yaml
    4. SQL转换
      • 重写Oracle特有SQL语法
      • 转换存储过程和触发器
      • 优化查询语句

    3.5 迁移后验证

    1. 数据量验证
      # 对比Oracle和TiDB的数据量
      # Oracle
      sqlplus migration_user/password@ORCL
      SELECT COUNT(*) FROM schema.table;
      # TiDB
      mysql -h 192.168.1.20 -P 4000 -u migration_user -p -e “SELECT COUNT(*) FROM schema.table;”
    2. 数据一致性验证
      # 使用checksum验证
      # TiDB
      mysql -h 192.168.1.20 -P 4000 -u migration_user -p -e “CHECKSUM TABLE schema.table;”
    3. 功能验证
      • 执行关键业务SQL
      • 验证存储过程和触发器功能
      • 测试应用连接和操作
    更多视频教程www.fgedu.net.cn

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

    联系我们

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

    微信号:itpux-com

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