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

OpenDBDiff软件使用说明 Open DBDiff软件使用说明 一:软件有哪些功能 数据库对象包括表(列,索引,约束,触发器),存储过程,函数,视图,用户,架构,角色等。该软件实现了一下功能。 1,对象的比较功能:通过比较后,可以知道缺了哪些,需要修改哪些对象,需要删除哪些对象。还可以通过New Objects的信息查看源对象的创建脚本,通过Old Objects的信息查看目标对象的创建脚本 阅读详情
前思后想仍觉得 实战数据库版本的降迁  一文中的方式不仅老土而且低效,故有了下文三步搞定数据库从MSSQL2008R2 高版本降迁至SQL2005低版本。 整个过程如果思路清晰,数据量小,不过就是10分钟的事,效率提高很多。

 

我们这里仍然用上一篇的案例,即Discuz!NT 3.6.519 RC的后台数据库,这里需要利用一个免费的数据库对象同步工具,实际上整个操作过程中,这一步是最耗时低效,检查发现用OpenDBDiff和SQL-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

数据导入完毕

 

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

 

打开OpenDBDiff或SQL-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只能同步对象是个缺憾!

 

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

lable: SQL

SQL 2008升级SQL 2008 R2完全教程或者10 00 1600升级10 50 1600 阅读详情

相关推荐

9、SQL Server 2008 R2 数据库管理与操作指南

本文详细介绍了 SQL Server 2008 R2 中的重要功能,包括服务器项目与数据层应用的操作与原理,实用控制节点数据仓库的管理,实用与非实用数据收集集的实现方法,以及可扩展共享数据库的设计与刷新步骤。通过这些功能的深入解析,为数据库管理员提供了高效管理和维护数据库系统的实用工具和最佳实践建议。

b9c0d的博客 112

sql server附加数据库时 948错误

在附加数据库时,出现了问题,提示948错误,数据库版本不符,导致附加失败。 我出现这种情况是因为更换了sql server的版本,导致原先版本附加的数据库因为版本不一所以无法附加到我现在版本的sql server上,这种情况我重新下载了一份数据库就可以附加上了。 ...

马骏 5780

数据库降版本,管理工具转换神器

MSSQL server 数据库降版本 数据库迁移 数据库转换,我用它实现了2008R2 降版本到2005版,比使用导入导出设置等,要省更多的事情。结构也会同步修改

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

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

weixin_29103191的博客 841

OpenDBDiff:用于Microsoft SQL Server 2005+的数据库比较工具,可报告架构差异并创建同步脚本

的OpenDBDiff 用于Microsoft SQL Server 2005+的数据库比较工具,用于报告架构差异并创建同步脚本。 打开DBDiff可以同步 表格(包括表格选项,如vardecimal,行中的文本等) 列(包括计算列,XML选项,标识等) 约束条件 索引(和XML索引) XML模式 表格类型 用户数据类型(UDT) CLR对象(程序集,CLR-UDT,CLR存储过程,CLR触发器) 触发器(包括DDL触发器) 同义字 模式 文件组 观看次数 职能 存放程序 分区功能/方案 用户数 的角色 根据知识共享署名3.0许可从提供的图标。

开源数据库对象同步工具

分别为开源免费数据库同步工具OpenDBDiff 和 开源免费数据库同步工具SQL-DBDiff_V0.4 ,不记得之前是否有上传OpenDBDiff,但SQL-DBDiff跟其有兄弟之嫌。当然这里的同步仅仅针对数据库对象而非数据。 关于如何将数据库从高版本降至低版本,参考文http://blog.youkuaiyun.com/claro

SQL 2008升级SQL 2008 R2完全教程或者10.00.4000升级10.50.1600

今天将由于需要就将我的SQL 2008升级到SQL 2008R2. 说到为什么要升级是因为,从另一台机器上备份了一个数据库,到我的机器上还原的时候提示“System.Data.SqlClient.Sqlerror:该数据库是在运行版本10.50.4000的服务器上备份的,该版本与此服务器(运行版本10.00.1600)不兼容。请在支持该备份的服务器上还原数据库,或者使用与此服务器兼容...

weixin_30501857的博客 1575

RAG项目简历包装指南:从“流水线工人”到“问题解决者”的跃迁(附代码与思路)

本文代码已在Python 3.11 + CUDA 12.3环境测试,部分功能需LangChain 0.2+支持。

Conan_0728的博客 1886

如何把SQL SERVER 2008 R2 卸载干净

是这样的,老师布置要我们用eclipse连接数据库,但是连接好之后就疯狂报错 然后老师建议去SQL server里查询一下 但是! 这个时候出来的是0条受影响! 然后我把0开始的都删了,出来了三十几条结果,里面都么有和listening相关的,端口啥的我都检查过了都正常,就是不知道为什么呜呜呜。然后实在没办法只能来重装了。 开工! 先进入控制面板,点击卸载程序 选择SQL SERVER 2...

拔牙不打麻药 3839

2.数字芯片时序正确的前提—Max-transition

芯片物理设计中最基本的Max-transition检查

weixin_43868998的博客 5427

spring boot 集成cas(一) 服务端搭建

简单点就是统一服务认证,多个系统一次登录。俗称单点登录。

慕孑晨的博客 1957

SQL_SERVER_2008升级SQL_SERVER_2008_R2的方法

SQL 2008升级到SQL 2008 R2. 说到为什么要升级是因为,从另一台机器上备份了一个数据库,到我的机器上还原的时候提示“948错误,意思就是不能把高版本的数据库附加到低版本上,所以要升级自己数据库的版本。 注:10.00.1600其实就是SQL 2008 10.50.1600其实就是SQL 2008 R2 10.50.2500其实就是SQL...

ajuvfe4150的博客 1745

树莓派安装snowboy

1、树莓派换源 参考链接:https://blog.youkuaiyun.com/qq_43556844/article/details/113615915 2、更新pip3 参考链接:https://blog.youkuaiyun.com/qq_43556844/article/details/113616214 3、存取麦克风 我们使用PortAudio作为音频输入/输出的跨平台支持。我们还使用sox作为快速实用程序来检查麦克风设置是否正确。 sudo apt-get install python-pyaudio python

qq_43556844的博客 1923

SQL 2008升级SQL 2008 R2完全教程或者10.00.1600升级10.50.1600

今天将由于需要就将我的SQL 2008升级到SQL 2008R2. 说到为什么要升级是因为,从另一台机器上备份了一个数据库,到我的机器上还原的时候提示“System.Data.SqlClient.Sqlerror:该数据库是在运行版本10.50.2500的服务器上备份的,该版本与此服务器(运行版本10.00.1600)不兼容。请在支持该备份的服务器上还原数据库,或者使用与此服务器兼容...

admin8868的博客 483

基于Simulink的二相混合式步进电机驱动器快速建模与仿真实践

本文详细介绍了如何利用Simulink对二相混合式步进电机驱动器进行快速建模与仿真。通过从零搭建电机数学模型、设计H桥控制逻辑,并集成步进时序,手把手指导读者创建可运行的仿真模型文件。该方法能有效验证控制策略,避免硬件调试风险,是学习与实践电机驱动开发的理想途径。

weixin_29171087的博客 149

把表的每一次改动都记下来:SAP 表变更日志 DBTABLOG/DBTABPRT 与 SCU3 全面解析

摘要:SAP系统提供了数据库表变更日志功能(SCU3/DBTABLOG),用于追踪关键配置表的变更历史。该功能通过profile参数rec/client和表级技术设置双重开关控制,能记录谁在何时修改了哪些数据。与业务变更凭证(CDHDR/CDPOS)和应用日志(SLG1)不同,表变更日志提供技术层面的审计线索,适用于快速定位生产事故中的异常数据变更。但需注意其限制:不支持超宽表和大批量变更,且可能引发性能问题。建议将表变更日志与业务变更凭证、应用日志结合使用,构建完整的审计追踪体系。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1694

附加数据库时的错误948

转载原文,并注明出处!虽无多少技术含量,毕竟是作者心血原创,希望理解。 前思后想仍觉得实战数据库版本的降迁 一文中的方式不仅老土而且低效,故有了下文三步搞定数据库从MSSQL2008R2 高版本降迁至SQL2005低版本。 整个过程如果思路清晰,数据量小,不过就是10分钟的事,效率提高很多。   我们这里仍然用上一篇的案例,即Discuz!NT 3.6.519 RC的后台数据

走在奋斗的路上 6721

若依开源系统多数据源整合clickhouse数据库详细步骤

若依开源系统多数据源整合clickhouse数据库详细步骤

java之书-资源 898

怎样从SQL Server2008升级到SQL Server 2008 r2

今天将由于需要就将我的SQL 2008升级到SQL 2008 R2. 说到为什么要升级是因为,从另一台机器上备份了一个数据库,到我的机器上还原的时候提示“System.Data.SqlClient.Sqlerror:该数据库是在运行版本10.50.2500的服务器上备份的,该版本与此服务器(运行版本10.00.1600)不兼容。请在支持该备份的服务器上还原数据库,或者使用与此服务器兼容的备份

Mindy的专栏 7407

17 指挥AI写Mamba相关模型代码,快速适配大模型场景

本文为《30天掌控AI编程:从指令到落地,手把手教你指挥AI写代码》系列第十七篇,属于第三阶段多场景实战核心内容。本篇聚焦当下大模型领域热门的**Mamba架构**,针对零基础大模型开发、无深度学习基础的使用者,拆解指挥AI生成Mamba基础模型、微调适配、推理部署代码的核心方法,覆盖Mamba基础模块搭建、简易序列建模、小样本微调、本地推理等高频场景,提供可直接复用的高质量指令模板、完整可运行代码、环境配置与避坑指南,无需精通Transformer、状态空间模型等底层原理,轻松上手Mamba大模型开发。

coreopt的博客 61

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

SQL2008升级SQL2008R2完全教程

原文地址:2008升级SQL 2008 R2完全教程或者10.00.1600升级10.50.1600">SQL 2008升级SQL 2008 R2完全教程或者10.00.1600升级10.50.1600作者:冷雨玫瑰 今天将由于需要就将我的SQL 2008升级到SQL 2008 R2. 说到为什么要升级是因为,从另一台机器上备份了一个数据库,到我的机器上还原的时候提示“System.Data.S

GeoTechMAN's Zone 3724

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

上一篇: 解决Eclipse中文乱码
下一篇: Android无法访问本地服务器(localhost)的解决方案
codepython
博客等级 码龄20年 125粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值