LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

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

admin
2017年4月5日 10:9 本文热度 10062

文三步搞定数据库从MSSQL2008R2 高版本降迁至SQL2005低版本。 整个过程如果思路清晰,数据量小,不过就是10分钟的事,效率提高很多。

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

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

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

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

[Python] view plain copy
  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

数据导入完毕

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

打开OpenDBDiffSQL-DBDiff,这里使用OpendbDiff,如下图

opendbdiff1

图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。

检查OK

图10 最后检查OK

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


该文章在 2017/4/5 10:09:48 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved