海量数据迁移:从Oracle到MySQL的策略
3星 · 超过75%的资源 需积分: 34 109 浏览量
更新于2024-07-31
2
收藏 427KB PDF 举报
"淘宝海量数据迁移方案 - 徐进挺 - DTCC2011"
在IT领域,数据迁移是一项至关重要的任务,特别是在大规模的电子商务平台如淘宝中。本资料详细介绍了淘宝面对海量数据迁移时的策略、目标及具体实施方案。以下是关于数据迁移的相关知识点:
1. **数据迁移的场景与目标**:
- 场景主要包括:数据库表过于庞大,导致性能问题;业务架构调整,需要重新分布数据;以及解决Oracle数据库中的各种内容争用问题,如enq:HW-contention, enq:TX-rowlockcontention和enq:TX-indexcontention等。
- 需求通常涉及将表从一个数据库迁移到另一个,可能是一对一、一对多、多对一或多对多的关系,且源和目标环境可能包括Oracle到Oracle、Oracle到MySQL,甚至是Oracle到NoSQL数据库。
- 目标是确保数据完整无损,并尽可能减少对业务运行的影响,控制停机时间,同时考虑业务可接受的停机时间和数据量大小。
2. **全量迁移常见方案**:
- 使用Oracle的Exp/Imp、Expdp/Impdp工具,这是Oracle数据库内置的数据导入导出工具,适用于小到中型数据的迁移。
- Insert into table select * from table@dblink,通过数据库链接直接将数据插入到目标表,适用于网络连接稳定的情况。
- Select * from table into outfile/load data (MySQL),先导出为文件,再在目标数据库加载,适用于跨数据库系统迁移。
- Extent->rowid,通过扩展到行ID进行迁移,适用于大型表。
- Mv refresh,Oracle的物化视图刷新,适合实时同步数据。
- Sqlldr/load data,快速数据加载工具,适用于大量数据的导入。
- Rowid(pkid)/procedure,基于主键的行ID迁移,可以配合存储过程使用。
- Perl脚本,适用于自动化和定制化的数据迁移任务。
- Tddl数据层全量迁移,可能是淘宝内部的特定数据迁移框架。
3. **增量迁移常见方案**:
- 增量迁移是在全量迁移后,只迁移自上次迁移以来发生改变的数据,以减少停机时间并保持业务连续性。
- 可能使用触发器、日志分析或者CDC(Change Data Capture)技术来识别和迁移变化的数据。
4. **全量迁移的风险点**:
- ora-01555错误,表示快照过旧,可能导致迁移失败,需要合理设置归档和缓存以避免。
- 迁移过程中出错的回滚可能非常缓慢,因此需要精心规划和测试。
在选择迁移方案时,应优先考虑简单、高效且高可靠性的方法,以确保整个迁移过程的顺利进行。在实际操作中,根据业务需求、数据量、系统环境等因素综合评估,制定最佳的迁移策略。
2020-09-10 上传
点击了解资源详情
2021-10-26 上传
2021-11-04 上传
2021-11-30 上传
2021-11-13 上传
2021-11-22 上传
点击了解资源详情
gyhyq318318
- 粉丝: 0
- 资源: 13
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析