mfc 连接orecle数据库并创建表 博客-mfc创建按钮控件代码
去IOE的说法起源于互联网行业,由阿里巴巴公司于2010年最先发起。狭义的IOE是指采用IBM服务器、Oracle数据库、EMC存储的数据库架构,广义是指小型机+商业闭源数据库+存储阵列,IOE架构的特点是基于向上扩展(Scale-up)技术的高端设备以及围绕着它们开发的专有硬件、大型数据库和商业中间件。这种IOE架构实际上存在几个问题:第一,在非结构化处理方面能力不足;第二,系统成本高昂,小型机数量比PC数量还高;第三,硬件平台兼容性差,比如惠普硬件无法与IBM系统形成无缝的跨平台;第四,扩展性有限mfc 连接orecle数据库并创建表 博客,传统系统都属于TB级,而支持PB级分析交易能力有限。
去IOE的本质就是通过“分布式+开源”架构替代“集中式+封闭”架构,降低成本,提高架构扩展性和可用性,变成彻底的云计算服务模式。阿里目前除了支付宝以外已完成彻底的去IOE化,这无疑对业内提供了成功的范例,政府、电信、教育、医疗、金融、石油石化和电力等以前基于传统IOE架构的行业也将适度跟进这股去IOE的浪潮。而去IOE的最核心的难点就在去Oracle数据库的“去O”上面,这是因为其与业务关联最为密切的特性决定的。下面我就介绍一下Oracle数据库和去O时的几款数据迁移工具。
2、Oracle和MySQL简介
2.1oracle数据库
ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组商业软件产品mfc 连接orecle数据库并创建表 博客,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。具有完整的数据管理功能、完备关系的产品、分布式处理功能,支持数据仓库。逻辑结构由逻辑存储结构(表空间,段,范围,块)和逻辑数据结构(表、视图、序列、存储过程、同义词、索引、簇和数据库链等)组成,而其中的模式对象(逻辑数据结构)和关系形成了数据库的关系设计。纵有千般好,Oracle却有个致命伤:商业、闭源,所以就有了现在的OracletoMySQL。
2.2MySQL数据库
MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle旗下公司。MySQL是最流行的关系型数据库管理系统,与其他的大型数据库例如Oracle、DB2、SQLServer等相比,MySQL自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且MySQL开源……、MySQL开源……、MySQL开源……(重言三)。业界流行的“LAMP“或“LNMP”网站架构中的M就是MySQL。
3、Oracle2MySQL方法与工具
3.1手动导入:操作岂止是繁琐,而且完全没有效率……
对表结构和数据:①使用SQLDeveloper把oracle的table的schema和Data(.sql和.xls)导出;②使用MySQL的WorkBench创建Table和导入数据。
这里语法上会稍微有一些不同,所以需要略微做一些调整。对于View来说,特别是复杂的有子查询的OracleView说,要导入到MySQL看起来就不是那么容易了。
3.2使用工具DBMover和工具intelligent-converters的OracleToMySQL进行导入
这两个都是收费的软件,而且只能进行表的迁移,不支持迁移视图。和Navicat比较起来,显得功能简单,只能migratetable,而且使用上也不是很方便。
3.3阿里yugong开源项目
yugong是阿里巴巴推出的去Oracle数据迁移同步工具(全量+增量,目标支持MySQL/DRDS),由java语言开发。
08年左右,阿里巴巴开始尝试MySQL的相关研究,并开发了基于MySQL分库分表技术的相关产品,Cobar/TDDL(目前为阿里云DRDS产品),解决了单机Oracle无法满足的扩展性问题,当时也掀起一股去IOE项目的浪潮,愚公这项目因此而诞生,其要解决的目标就是帮助用户完成从Oracle数据迁移到MySQL上,完成去IOE的第一步。
整个数据迁移过程,分为两部分:
(1)全量迁移
(2)增量迁移
过程描述:
(1)增量数据收集(创建oracle表的增量物化视图)
(2)进行全量复制
(3)进行增量复制(可并行进行数据校验)
(4)原库停写,切到新库
架构
说明:
(1)一个JvmContainer对应多个instance,每个instance对应于一张表的迁移任务
(2)instance分为三部分
a.extractor (从源数据库上提取数据,可分为全量/增量实现)
b.translator (将源库上的数据按照目标库的需求进行自定义转化)
c.applier (将数据更新到目标库,可分为全量/增量/对比的实现)
3.4使用NavicatPremium工具进行数据库迁移
NavicatPremium是一款数据库管理工具,是一个可多重连线资料库的管理工具,它可以让你以单一程式同时连线到MySQL、SQLite、Oracle及PostgreSQL资料库,让管理不同类型的资料库更加的方便。结合了其他Navicat成员的功能。有了这种连线到不同资料库类型的能力,NavicatPremium支援在MySQL、SQLite、Oracle及PostgreSQL之间传输资料。它支持大部分的MySQL、SQLite、Oracle及PostgreSQL功能,包括预存程序、事件、触发器、函式、检视等。
利用NavicatPremium进行Oracle2MySQL的迁移流程:
(1)打开软件>File>NewConnection分别新建Oracle和MySQL连接
【注意】Oracle连接之前需要对软件进行OCI文件配置,oci.dll文件就在Oracleclient文件里面,这和配置PLSQLDeveloper差不多。
(2)输入数据库服务器地址、端口号和数据库用户名、密码,分别建立Oracle和MySQL连接如下:
(3)连接好之后,在目标Oracle数据库上:右击>DataTransfer>General
(4)配置数据迁移选择要迁移的数据表、视图等设置迁移目标数据库
(5)高级选项设置
(6)数据迁移成功
PS:迁移后发现数据库显示乱码,肯定是字符编码不一致的问题。在目标数据库MySQL上右击>ConnectionProperties将“UseMySQLcharcterset”复选框上的勾去掉,在Encoding选项下拉框中选择UTF-8编码格式。重新迁移,大功告成。
最后,补充一下备份导出MySQL.sql文件的方法:右击数据库>DumpSQLFile>StructureAndData
4、总结
随着阿里去IOE化的示范效应越来越明显,继大批互联网企业之后,政府、电信、教育、医疗、金融、石油石化和电力等以前基于传统IOE架构的传统公共服务行业必将下定决心跟进这股去IOE的浪潮,数据迁移的技术需求会越来越大,本文主要介绍了几种OracletoMySQL的方法和工具,并结合公司部分Oracle2MySQL数据迁移业务需求,利用NavicatPremium工具做了OracletoMySQL技术实践,希望能够为有数据迁移需求的机构提供参考借鉴。
参考文献:
[1]浅谈运营商去IOE
[2]数据库迁移之从oracle到MySQL
[3]阿里巴巴yugong项目