会员登录 | 会员注册 | 意见建议 | 网站地图

站长资源综合门户

当前位置:首页 > 站长学院 > 建站经验 > 浅谈网站数据从ORACLE到MYSQL的兼容迁移

浅谈网站数据从ORACLE到MYSQL的兼容迁移

时间:2012-05-22 21:12:36   作者:   来源:   点击:

网站整体改版升级,因为想要下降网站运行本钱,斟酌变动数据库,由原来的企业级数据库ORACLE变动为较为小型的MYSQL,数据库的变动中的一个重要过程就是网站的数据迁移。在数据迁移过程中遇到一些问题并花了较长的时间解决,今天就阐发总结下网站的后台数据库构建中需要注意的问题。

1、不合数据库对年夜小写区分不合

在数据库迁移测试过程中,发现通过网站后台办理系统增加的文章呈现异常情况,会呈现报错信息。通过调取数据库的文章SiteArticle表的记实发现新文章对应的记实条未能正常插入。

通过代码测试查抄发现,是由于网页文件的代码对数据库的操作的表名字年夜小写不一致造成的,ORACLE数据库具有较好的包涵度,支持网页文件关于insert into Sitearticle()代码对SiteArticle表的插入新记实操作;而MYSQL数据库对年夜小写敏感,只支持insert into SiteArticle()代码对SiteArticle表的插入新记实操作。

要解决这个问题,只能仔细查看网页文件源码,更改对数据库操作的所有语句的数据库名、表名、字段名等的字符年夜小写,保持与数据库中成扬名称的年夜小写一致。

小结:从兼容性角度斟酌,在网站扶植的时候就规范数据库操作相关代码中的年夜小写问题,在此后改换数据库或升级数据库的过程中,就没必要担忧年夜小写敏感度问题,也削减许多更改代码工作量。

2、不合数据库的个别数据类型定义不合

在数据库变动的测试过程中,发现网站以往的文章详情页面的文章颁发时间显示有问题,非正常格局的年—月—日时:分的样式。

颠末页面调取文件代码、数据库记实等内容的查抄后,发现是由于ORACLE中对时间的定义类型只有Date一种,而这种定义类型的格局包含年月日和时间;而在MYSQL中对时间的定义类型包含Date、Time、Datetime三种,在MYSQL中对Date类型的定义仅仅包含年月日而不包含时间。

要解决这个问题,只能把MYSQL数据库表中成立的字段类型由原来的Date改成Datetime,再重新进行这类数据的导入。

小结:不合的数据库对具体类型定义不合,因此在完成新数据库表布局构件后,最好进行少量数据记实条迁移进行数据测试,能够实时发现问题所在并进行数据类型修改,再进行全部数据的迁移,以免造成数据重复导入,增加工作量。

3、不合数据库对保存字的要求不合

在数据库迁移过程中,发现在统一了年夜小写问题后,提交文章时候关头字标签的记实插入依旧失败,报错信息提示为语法毛病。

颠末排查,发现是保存字在拆台。在ORACLE数据库中对保存字的态度是较为宽容的,可以表名和字段名称都可使用保存字;而MYSQL数据库规定保存字是不成以作为表名和字段名的。在网站的数据库Sitearticle表中的其中一个字段名为show,属于保存字,因此同样成立在MYSQL数据库后,插入新记实报语法毛病。

解决这个问题,需要在网页代码中将代码语句中的关于Sitearticle表的show字段名用``符号(即1按键前面的按键输入的符号)引起来以区别。

小结:不合数据库对保存字的要求不合,所以在网站数据库扶植的时候非论当前数据库类型版本是否支持,尽可能不消保存字作为字段名和表名,以保障后期数据库版本的升级和替换后运行正常。

综上所述,以上为网站数据库变动过程中遇到的问题息争决的手艺体例,分享希望对年夜家有所帮忙,本文由阳光减肥网 .jianfei1234 原创,转载的时候请保存作者链接,谢谢。

分享到:

网友评论

热门建站经验