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

转载原文,并注明出处!虽无多少技术含量,毕竟是作者心血原创,希望理解。

转自 http://blog.csdn.net/claro/article/details/6449824


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

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

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

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


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

[python]view plaincopy
  1. ----/****** Object:  Database [dnt2_dbNew]     ******/

  2. CREATE DATABASE [dnt2_dbNew] ON  PRIMARY

  3. ( NAME = N'dnt2_db', FILENAME = N'D:/Program Files/bbs/bbs3.6/dnt2_db .mdf' , SIZE = 15552KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )

  4. LOG ON

  5. ( NAME = N'dnt2_db _log', FILENAME = N'D:/Program Files/bbs/bbs3.6/dnt2_db _log.ldf' , SIZE = 530112KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)

  6. GO

  7. EXEC dbo.sp_dbcmptlevel @dbname=N'dnt2_dbNew', @new_cmptlevel=90

  8. GO

  9. IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))

  10. begin

  11. EXEC [dnt2_dbNew].[dbo].[sp_fulltext_database] @action = 'enable'

  12. end

  13. GO

  14. ALTER DATABASE [dnt2_dbNew] SET ANSI_NULL_DEFAULT OFF

  15. GO

  16. ALTER DATABASE [dnt2_dbNew] SET ANSI_NULLS OFF

  17. GO

  18. ALTER DATABASE [dnt2_dbNew] SET ANSI_PADDING OFF

  19. GO

  20. ALTER DATABASE [dnt2_dbNew] SET ANSI_WARNINGS OFF

  21. GO

  22. ALTER DATABASE [dnt2_dbNew] SET ARITHABORT OFF

  23. GO

  24. ALTER DATABASE [dnt2_dbNew] SET AUTO_CLOSE OFF

  25. GO

  26. ALTER DATABASE [dnt2_dbNew] SET AUTO_CREATE_STATISTICS ON

  27. GO

  28. ALTER DATABASE [dnt2_dbNew] SET AUTO_SHRINK OFF

  29. GO

  30. ALTER DATABASE [dnt2_dbNew] SET AUTO_UPDATE_STATISTICS ON

  31. GO

  32. ALTER DATABASE [dnt2_dbNew] SET CURSOR_CLOSE_ON_COMMIT OFF

  33. GO

  34. ALTER DATABASE [dnt2_dbNew] SET CURSOR_DEFAULT  GLOBAL

  35. GO

  36. ALTER DATABASE [dnt2_dbNew] SET CONCAT_NULL_YIELDS_NULL OFF

  37. GO

  38. ALTER DATABASE [dnt2_dbNew] SET NUMERIC_ROUNDABORT OFF

  39. GO

  40. ALTER DATABASE [dnt2_dbNew] SET QUOTED_IDENTIFIER OFF

  41. GO

  42. ALTER DATABASE [dnt2_dbNew] SET RECURSIVE_TRIGGERS OFF

  43. GO

  44. ALTER DATABASE [dnt2_dbNew] SET  DISABLE_BROKER

  45. GO

  46. ALTER DATABASE [dnt2_dbNew] SET AUTO_UPDATE_STATISTICS_ASYNC OFF

  47. GO

  48. ALTER DATABASE [dnt2_dbNew] SET DATE_CORRELATION_OPTIMIZATION OFF

  49. GO

  50. ALTER DATABASE [dnt2_dbNew] SET TRUSTWORTHY OFF

  51. GO

  52. ALTER DATABASE [dnt2_dbNew] SET ALLOW_SNAPSHOT_ISOLATION OFF

  53. GO

  54. ALTER DATABASE [dnt2_dbNew] SET PARAMETERIZATION SIMPLE

  55. GO

  56. ALTER DATABASE [dnt2_dbNew] SET READ_COMMITTED_SNAPSHOT OFF

  57. GO

  58. ALTER DATABASE [dnt2_dbNew] SET  READ_WRITE

  59. GO

  60. ALTER DATABASE [dnt2_dbNew] SET RECOVERY FULL

  61. GO

  62. ALTER DATABASE [dnt2_dbNew] SET  MULTI_USER

  63. GO

  64. ALTER DATABASE [dnt2_dbNew] SET PAGE_VERIFY CHECKSUM

  65. GO

  66. ALTER DATABASE [dnt2_dbNew] SET DB_CHAINING OFF

  67. GO

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


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

图1

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

图2

选择数据源

图3

选择目标服务器

图4

复制选项设定

图5

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

图6

数据导入完毕

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

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

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

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

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

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

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

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

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

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

图10 最后检查OK

转载原文,并注明出处!虽无多少技术含量,毕竟是作者心血原创,希望理解。

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

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

lable: SQL

转载于:https://blog.51cto.com/landy2000n/1288218

三步10分钟搞定数据库版本的降迁 (将后台数据库SQL2008R2降为SQL2005版本)相关推荐

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

    三步10分钟搞定数据库版本的降迁 (将SQL2008R2降为SQL2005版本) 前思后想仍觉得实战数据库版本的降迁一文中的方式不仅老土而且低效,故有了下文三步搞定数据库从MSSQL2008R2 高版 ...

  2. 10分钟搞定win11安卓子系统

    10分钟搞定win11安卓子系统 Android子系统的要求 一.安装 Windows 虚拟化支持 二.Win11 正式版安装安卓子系统方法教程 (离线包安装) 三.在Win11 安卓子系统安装 AP ...

  3. 风控必备的评分卡模型,TempoAI 10分钟搞定

    8月20日,央行发布了<2020年第二季度支付体系运行总体情况>,数据显示,截至第二季度末,信用卡逾期半年未偿信贷总额838.84亿元,占信用卡应偿信贷余额的1.17%.与一季度相比,信用 ...

  4. 多个PDF文件如何合并成一个?三步教你搞定

    在日常学习生活中,如果你需要将多个文档整合为一个完整的文件,比如说多篇文章.多张图片.多个表格等等,这时候就需要将这些文档合并成一个PDF文件.如何将多个PDF文件如何合并成一个?三步教你搞定. 步骤 ...

  5. 视频教程-10分钟搞定 php+H5手机网页微信支付 在线视频教程(含源代码)-微信开发

    10分钟搞定 php+H5手机网页微信支付 在线视频教程(含源代码) 04年进入计算机行业.拥有6年net和php项目开发经验,8年java项目开发经验. 现前端全栈工程师,主攻产品设计,微信开发等. ...

  6. 10分钟搞定miniconda-python环境安装

    windows配置python环境 每次到一个新电脑就要安装环境,很多包安装起来很麻烦,下面对安装地址和常规使用包做了总结,一键安装所有包不用再一个一个找了!所有问题10分钟搞定! 1. 安装Mini ...

  7. 内部流出: 66个经典数据分析神技汇总,10分钟搞定一天工作!

    不会吧,都2022年了, 还有人在网盘.B站里学"Excel的用法和表格模板"? 宝~ 那忒麻烦了,还不靠谱 今个,分享你一 华为内部流出的  Excel学习资源! 1.用Vloo ...

  8. w ndows 10画图,网友“羞辱”Windows 10界面设计:用画图 10分钟搞定!

    原标题:网友"羞辱"Windows 10界面设计:用画图 10分钟搞定! Windows 10是个好系统,但是UI界面设计一直有不小的争议.微软试图全面扁平化,但很多时候仿佛只是为 ...

  9. 计算机专业试讲10分钟教案,10分钟搞定一份满意的试讲教案!(适用所有学科)...

    原标题:10分钟搞定一份满意的试讲教案!(适用所有学科) 虽然临近教资面试,但很多小伙伴还是对写教案不是很熟悉,觉得没有思路,总之好多小伙伴都在为面试写教案的事情发愁呀! 现就来教大家在10分钟的时间 ...

最新文章

  1. 闲谈IPv6-典型特征的一些技术细节
  2. Jquery实现图片左右滚动,没有头尾的,一直循环
  3. 强制类型转换规则 java_Java学习——第002天学习笔记整理
  4. Java编程思想学习录(连载之:内部类)
  5. 面向对象的多态性(3)
  6. python中输入提示_Python-Tkinter Text输入内容在界面显示的实例
  7. 每日签到html特效,前端这种连续签到的效果要怎么写
  8. 2015新东方计算机,2015年同等学力计算机综合模拟(2)
  9. 采购订单暂存和持有相关的问题?
  10. Highcharts exporting属性实现图表导出为图片、PDF
  11. 静态码率(CBR)和动态码率(VBR)
  12. db的中英文全称_DB是什么?解读《北京遇上西雅图》中英语文化
  13. windows7彻底删除流氓软件的操作方法
  14. 4103 yxc 的日常
  15. 金大侠的亲属与剑桥大学最厉害的三个学院
  16. 人工智能必备数学基础--精华笔记
  17. 好的工具分享(持续更新)
  18. Ubuntu 14.04+GT720M+CUDA8.0+CUDNN+PYCAFFE
  19. aba会导致问题_浅谈 ABA 问题
  20. 里约奥运会火的不是巴西而是中国互联网,自己看

热门文章

  1. 高德地图POI搜索,附近地图搜索,类似附近的人搜索
  2. STM32中EXTI和NVIC的关系
  3. 全球物联网产业规模不断扩大 中国市场前景分析
  4. mysql本地可以访问 网络不能访问
  5. 分布式服务框架 Zookeeper -- 管理分布式环境中的数据
  6. Struts 2的输入校验(一)
  7. 【JDK7】新特性(2) 语法
  8. 爱情也许是最忧伤的童话
  9. dw8与mysql的连接,VS2019连接mysql8.0数据库的教程图文详解
  10. (C++)1041 考试座位号