mysql降低数据库版本_三步10分钟搞定数据库版本的降迁 (将后台数据库SQL2008R2降为SQ...

三步10分钟搞定数据库版本的降迁 (将SQL2008R2降为SQL2005版本) 前思后想仍觉得实战数据库版本的降迁一文中的方式不仅老土而且低效,故有了下文三步搞定数据库从MSSQL2008R2 高版本降迁至SQL2005低版本。 整个过程如果思路清晰,数据量小,不过就是10分钟

三步10分钟搞定数据库版本的降迁 (将SQL2008R2降为SQL2005版本)

前思后想仍觉得实战数据库版本的降迁 一文中的方式不仅老土而且低效,故有了下文三步搞定数据库从MSSQL2008R2 高版本降迁至SQL2005低版本。 整个过程如果思路清晰,数据量小,不过就是10分钟的事,效率提高很多。

Discuz!NT 3.6.519 RC的后台数据库,这里需要利用一个免费的数据库对象同步工具,实际上整个操作过程中,这一步是最耗时低效,检查发现用OpenDBDiff和SQL-DBDiff可以高效解决这个问题。

首先,MSSQL2008R2有源数据库dnt2_db ,需要转到MSSQL2005目标数据库dnt2_dbNew中。

第一步 在低版本数据库中新建目标库。

案例中SQL2005新建数据库T-SQL:

[python:collapse] +

expand sourceview

plaincopy

第二步 将高版本的表数据全部导入低版本数据库中。

案例中SQL2008R2的表数据,这里重新说明操作步骤,如下图所示:

test.jsp?url=http%3A%2F%2Fhi.csdn.net%2Fattachment%2F201105%2F27%2F0_13064681634LiW.gif&refer=http%3A%2F%2Fblog.csdn.net%2Floverszhaokai%2Farticle%2Fdetails%2F7358441

图1

连接SQL2005目标数据库,并操作导入数据选项

test.jsp?url=http%3A%2F%2Fhi.csdn.net%2Fattachment%2F201105%2F27%2F0_1306468276mU1G.gif&refer=http%3A%2F%2Fblog.csdn.net%2Floverszhaokai%2Farticle%2Fdetails%2F7358441

图2

选择数据源

test.jsp?url=http%3A%2F%2Fhi.csdn.net%2Fattachment%2F201105%2F27%2F0_13064683501O6h.gif&refer=http%3A%2F%2Fblog.csdn.net%2Floverszhaokai%2Farticle%2Fdetails%2F7358441

图3

选择目标服务器

test.jsp?url=http%3A%2F%2Fhi.csdn.net%2Fattachment%2F201105%2F27%2F0_1306468426qOcM.gif&refer=http%3A%2F%2Fblog.csdn.net%2Floverszhaokai%2Farticle%2Fdetails%2F7358441

图4

复制选项设定

test.jsp?url=http%3A%2F%2Fhi.csdn.net%2Fattachment%2F201105%2F27%2F0_1306468481Y4v2.gif&refer=http%3A%2F%2Fblog.csdn.net%2Floverszhaokai%2Farticle%2Fdetails%2F7358441

图5

选择源表。这里全选,而不做对目标表的设定。原因在的{注1}部分已说明。

test.jsp?url=http%3A%2F%2Fhi.csdn.net%2Fattachment%2F201105%2F27%2F0_1306469002tWTt.gif&refer=http%3A%2F%2Fblog.csdn.net%2Floverszhaokai%2Farticle%2Fdetails%2F7358441

图6

数据导入完毕

第三步 将高版本的数据库对象同步到低版本数据库中。

打开OpenDBDiff或SQL-DBDiff,这里使用OpendbDiff,如下图

test.jsp?url=http%3A%2F%2Fhi.csdn.net%2Fattachment%2F201105%2F27%2F0_13064704030ZBB.gif&refer=http%3A%2F%2Fblog.csdn.net%2Floverszhaokai%2Farticle%2Fdetails%2F7358441

图7 打开OpenDBDiff,并选择源和目标库

test.jsp?url=http%3A%2F%2Fhi.csdn.net%2Fattachment%2F201105%2F27%2F0_1306470963kqEE.gif&refer=http%3A%2F%2Fblog.csdn.net%2Floverszhaokai%2Farticle%2Fdetails%2F7358441

图8 比较不同数据库的对象,并生成Alter的T-SQL语句。相比里需要手动修改Create为Alter语句,效率明显提高。

{注:有时当数据库中已存在部分对象时,我们需要注意Open DBDiff在给出Alter针对约束或者Create针对存储过程语句时,会有点问题,可能会需要手动的微调}

此时,我们点击右侧的剪贴板来copy语句,不建议用另存为的方式,否则可能会出现图9中的因字符集问题,当然目前我还不确定是OpenDBDiff本身造成的还是我OS的问题。

将贴出的T-SQL语句在SQL2005的目标库dnt2_dbNew中执行。

test.jsp?url=http%3A%2F%2Fhi.csdn.net%2Fattachment%2F201105%2F27%2F0_1306471522R991.gif&refer=http%3A%2F%2Fblog.csdn.net%2Floverszhaokai%2Farticle%2Fdetails%2F7358441

图9 中文另存为时发生字符集乱码的问题

到此,三大步搞定数据库降迁!呵呵,说我骗人,这怎么可能就三步呢。-_-!

执行完毕后,再用OpenDBDiff检查两库的对象差异,最后如图10所示,都OK。

test.jsp?url=http%3A%2F%2Fhi.csdn.net%2Fattachment%2F201105%2F27%2F0_1306471793mB9u.gif&refer=http%3A%2F%2Fblog.csdn.net%2Floverszhaokai%2Farticle%2Fdetails%2F7358441

图10 最后检查OK

——>总结:优秀的DBA一定要有第三方工具,这句话不是我说的。不过OpenDBDiff只能同步对象是个缺憾!

Posted by: select left('claro',2) @12:56:33

lable: SQL

f68f2add0b68e4f9810432fce46917b7.png

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值