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;
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;
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 数据类型映射
| Oracle数据类型 | TiDB数据类型 | 备注 |
|---|---|---|
| VARCHAR2(n) | VARCHAR(n) | 注意长度限制 |
| NUMBER(p,s) | DECIMAL(p,s) | 保持精度一致 |
| DATE | DATETIME | 时间格式转换 |
| TIMESTAMP | DATETIME(6) | 保留微秒精度 |
| CLOB | LONGTEXT | 大文本存储 |
| BLOB | LONGBLOB | 二进制数据存储 |
3.4 执行迁移
- 表结构迁移:
# 使用DM迁移表结构
tiup dmctl –master-addr 192.168.1.10:8261 start-task task.yaml - 全量数据迁移:
# 监控全量迁移进度
tiup dmctl –master-addr 192.168.1.10:8261 query-status oracle-to-tidb - 增量数据同步:
# 配置增量同步
tiup dmctl –master-addr 192.168.1.10:8261 update-task task.yaml - SQL转换:
- 重写Oracle特有SQL语法
- 转换存储过程和触发器
- 优化查询语句
3.5 迁移后验证
- 数据量验证:
# 对比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;” - 数据一致性验证:
# 使用checksum验证
# TiDB
mysql -h 192.168.1.20 -P 4000 -u migration_user -p -e “CHECKSUM TABLE schema.table;” - 功能验证:
- 执行关键业务SQL
- 验证存储过程和触发器功能
- 测试应用连接和操作
更多视频教程www.fgedu.net.cn
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
