SQL Server2008数据库升级至SQL Server2012

news2024/11/15 19:43:14

文章目录

  • 引言
  • 升级步骤
    • 安装SQL Server 2008 R2 sp2
    • 清除处于非活动状态的SQL Server实例
  • 一些体会

引言

今天接到了一个需求,服务器上的数据库需要从SQL Server2008升级到2012。根据之前的经验,感觉是一个非常有意思的过程(事实上也是。这个过程也给了我一些触动与启发,因此,便记录了自己的踩坑过程以及解决方案,还有安装过程的体会。

升级步骤

启动SQL Server2012的安装引导程序,中间的过程都很顺利,具体的操作步骤可参考微软官方的帮助文档,帮助文档链接如下。

https://learn.microsoft.com/en-us/previous-versions/sql/sql-server-2012/bb677622(v=sql.110)?redirectedfrom=MSDN
https://learn.microsoft.com/en-us/previous-versions/sql/sql-server-2012/ms144267(v=sql.110)

在升级规则检测的时候却出现了两个异常,如下图所示。
在这里插入图片描述

其中:

  1. 第一个异常产生的原因是:版本为SQL Server2008 R2 Sp1时,需要安装Sp2补丁包之后,才可以升级到SQL Server2012
  2. 第二个异常产生的原因是:在第一次安装失败后,服务器上存在部分已经安装的SQL Server实例,并且此时的状态为“非活动”状态。对于该问题:微软官方给出的原因如下。

出现此问题的原因是在第一次安装失败后,服务器上存在部分安装的SQL Server实例。 如果安装失败,SQL Server安装程序不会回滚安装。 部分安装的实例不包括你尝试安装的SQL Server版本,例如企业版、标准版或评估版。 尝试在同一台服务器上安装同一版本时,安装程序将查找现有实例。 但是,安装程序无法确定要安装的SQL Server版本。 因此,安装失败。

对于这个解释,我个人认为是SQL Server本身存在巨大的问题。安装失败后无法进行回滚安装这一点,对于用户使用非常不友好。
针对这两个升级问题,下面进行逐一解决。

安装SQL Server 2008 R2 sp2

该问题解决较容易,直接在微软中心的Microsoft 365上找到对应的安装包即可。下载链接为:

https://www.microsoft.com/zh-CN/download/details.aspx?id=30437

点击"Download"按钮,出现的界面如下图所示。根据自己机器的处理器架构进行选择即可,我进行更新的机器为Windows Server2008,因此选择的架构为x64版本。
在这里插入图片描述

该补丁包的具体安装方式与SQL Server2012的安装方式相同。如无特殊需要,一路点击"下一步"即可完成安装。

清除处于非活动状态的SQL Server实例

对于该升级问题,微软官方也给出了相应的原因解释以及解决方案。不幸的是,由于我的数据库水平太差,找了很久才找到。对应的链接地址如下:

https://learn.microsoft.com/zh-CN/troubleshoot/sql/install/remove-partial-installation

在该帮助文档的解决方案中,提到了导航到“Summary.txt”文件设置日志文件。然后在该日志文件中,我看到确实存在一些处于非活动状态的数据库服务,如图所示。
在这里插入图片描述

然后我开始查看安装过程的日志信息,由于对数据库安装过程中的日志文件不熟悉。因此,又找到了关于日志文件的说明。对应的链接地址如下:

https://learn.microsoft.com/zh-CN/sql/database-engine/install-windows/view-and-read-sql-server-setup-log-files?view=sql-server-ver16

在这篇帮助文档中,详细介绍了各个日志文件夹/文件的作用以及存放的位置。但是,问题并没有解决。然后,我在微软社区找到了另一篇文章。在这里,我找到了解决问题的方法。对应的链接地址如下:

https://social.technet.microsoft.com/wiki/contents/articles/38000.sql-server-troubleshooting-the-instance-id-mssqlserver-is-already-in-use-by-sql-server-instance-mssqlserver-inactive.aspx?Sort=MostRecent&PageIndex=1

在这篇文章中,它介绍到有一个"Datastore_Discovery.xml"的文件位于日志目录下,在里面找到不活动状态的产品编码,然后使用命令行将其卸载即可。结合两篇文章,我顺利找到了该文件,并通过关键字搜索,找到了不活动状态的产品编码,如下图所示。
在这里插入图片描述

然后,启动“命令提示符”,输入如下语句,即可卸载不活动状态下的SQL Server实例引擎。

msiexec /x {$ProductCode}

注:$ProductCode表示产品编码,如果有多个不活动的产品,应将其全部删除

卸载完成后,重新启动SQL Server2012安装向导,即可顺利完成对数据库的升级。

一些体会

事实上,在我接触过的产品中,微软的产品相对来说帮助文档是比较齐全的。只要你愿意看日志,愿意查帮助文档,愿意上社区搜一些关于issue的提问,那么,我认为99%的问题都可以得到很好的解决。
但是,如我提到的一样,如何能够快速定位到问题对应的文档呢?我认为,需要做到如下两步:

  1. 对产品有足够的熟悉。知道问题的根源发生在哪里,比如在升级数据库的过程中,问题的根源是在数据库引擎,还是在数据库管理工具,还是在客户端的兼容性
  2. 对文档的整体结构有所了解。好的帮助文档就像一本小册子,如果你想了解它,那么,你首先应该知道小册子的目录长什么样。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/129470.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

离散数学—数理逻辑

数理逻辑部分数理逻辑命题逻辑逻辑连接词命题符号化命题公式命题公式的等价矛盾式与重言式※重言关系蕴含式的证明※重言关系等价式的证明析取范式与合取范式主析取范式主合取范式对于两种范式,我的一些看法命题逻辑推理直接推理间接推理谓词逻辑谓词演算的等价式和…

解决Ubuntu/Fedora/Arch有些位置无法切换输入法输入中文

在使用Linux的时候,往往会遇到有些位置无法输入中文的情况,这是怎么造成的呢? 类似下图这种位置,我想搜一下文件,但是发现无法切换输入法,不能输入中文,现在我们来解决一下。 首先安装gedit&…

86.分隔链表

给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你应当 保留 两个分区中每个节点的初始相对位置。 示例 1: 输入:head [1,4,3,2,5,2], x 3 输出&am…

数据结构(链表2)

链表图中的“^”符号表示所储存内容为空。 单循环链表 末结点的next不再指向空,而是指向头结点。 空单向循环链表,只有头结点。 优点:从表中任何一个结点出发,都可以顺next指针访问到所有结点。 不带头结点的单循环链表 为了循…

文件操作(五)—— 文件重定向(dup2)

1、什么是文件重定向? 简单来说,文件重定向可以理解为文件描述符重新选定自己的指向。 2号文件描述符和3号文件描述符原本的指向如下。2号文件描述符之所以指向了stderr,是因为数组下标为2的元素填充的是stderr结构体的地址 发生文件重定向…

Spring Cloud 配置中心多环境 bootstrap.yml

常见的配置类型: 服务配置:数据库配置、缓存配置、消息队列配置 开关配置:功能开发、业务开关、服务开关 业务配置:模块A、模块B bootstrap.yml 定义系统级别参数配置; 应用于: Spring Cloud Config 配置中心配置&…

SpringBoot2-5

先解决一个问题【报错1】java: 无效的目标发行版: 17 修改位置:maven的配置需要改为选取本地maven所在目录(这些都是java指定了1.8比较低但是又都用的版本导致) 再解决一个问题【报错2】 java: 无法访问org.springframework.boot.SpringApplication 错误的类文件…

【模型部署】人脸检测模型DBFace C++ ONNXRuntime推理部署(2)

系列文章目录 【模型部署】人脸检测模型DBFace C ONNXRuntime推理部署(0) 【模型部署】人脸检测模型DBFace C ONNXRuntime推理部署(1) 【模型部署】人脸检测模型DBFace C ONNXRuntime推理部署(2) 文章目录…

Git小本

一、Git 概述 Git 是 Linus Torvalds 为了帮助管理 Linux内核开发的一个开源的版本控制软件。 Linux之父(Linus Torvalds)的代表作:Linux、Git。 1. 为什么要用Git? Git是一个分布式版本控制工具,主要用于管理开发过程中的源代码文件&#xf…

CRC(Cyclic Redundancy Check) 循环冗余校核

最近准备开始更新一个算法系列,这个系列嘛就是别管有没有用先学为敬系列(或者现学现卖系列)。那么这个系列的第一篇就用我这两天看的CRC算法当作开篇吧。 1)什么是CRC呢? 如百度所诉,好像是一个十分有用的…

pandas学习笔记(1)

学习网址:kaggle 注:本文仅为个人总结,不作为任何学习资料 一、在pandas里有两种Core objects:DataFrame和Series DataFrame的使用方法: DataFrame有两个方向,纵向为index,横向为column 定义一个DataFrame的…

vue3 antd项目实战——Form表单提交和校验【v-model双向绑定input输入框、form表单数据】

vue3 ant design vue项目实战——Form表单【v-model双向绑定数据实现form表单数据的提交】上期文章回顾【UI界面渲染】场景复现(源代码附在文章最后)实现需求1.表单数据及其类型的定义2.表单及各部分数据的双向绑定3.表单提交功能4.校验输入内容不为空5.…

计算机组成原理实训报告(附电路图)

实训一:运算器组成实验 目的要求: 掌握FA全加器的工作原理掌握行波进位的补码加法/减法器的工作原理了解ALU运算器的工作原理 掌握FA全加器的工作原理: 实验步骤:创建一个叫做FA的电路,然后开始绘制。 放一个或门&a…

记一次内网渗透过程学习|天磊卫士

一、靶场说明 此靶场共有3台主机 Win7为双网卡,桥接为模拟外网ip(192.168.1.220),nat(192.168.52.142)模拟内网域环境,处于DMZ区域的web服务器 Win2013为内网域控成员(nat&#xff…

[综][PDPTW]A survey on pickup and delivery problems

相关数据集的下载:https://www.sintef.no/projectweb/top/pdptw/100-customers/ 由于Li&Lim生成测试实例的方式,这些实例中的任务数量不同,略高于标称值。 在这里,您可以找到Li&Lim的PDPTW基准问题的100个任务实例的实例定义和最著名…

哗啦啦疑似暴雷之后,平台老板们开始迫切寻求二清合规监管办法

(图源百度后台,侵删) 最近一则“哗啦啦资金链断裂 导致餐饮店无法提现”的帖子在餐饮人中疯传,引起了业内不小的轰动。据很多餐饮商户反馈,近一个多月以来,哗啦啦系统一直延期提现,网上舆论迅速…

微服务门神-Gateway路由

引言 书接上篇微服务门神-网关了解&#xff0c;讲完了解Gateway基本概念之后&#xff0c;本篇来看下Gateway路由实现 项目集成 还是延续之前例子&#xff1a;订单服务与商品服务 步骤1&#xff1a;创建一个 shop-gateway 的模块,导入相关依赖 <?xml version"1.0…

2022年年度总结

目录 一&#xff0c;回望我的2022 二&#xff0c;2023目标 一&#xff0c;回望我的2022 刚刚度过我迷茫的大一生活&#xff0c;我的大二生活也已经过去了一半。说实话&#xff0c;家里就我一个大学生&#xff0c;我实在是不知道怎么去面对我的大学生活&#xff0c;或者说我…

高性能web网关Openresty实践

高性能web网关之openresty一、openresty 简介二、openresty 安装三、openresty开发实践 —— content_by_lua 阶段四、openresty开发实践 —— rewrite_by_lua 阶段五、openresty开发实践 —— body_filter_by_lua 阶段六、openresty开发实践 —— 黑名单6.1、基础版6.2、进阶版…

【面试题】面试官:为什么Promise中的错误不能被try/catch?

大厂面试题分享 面试题库 前端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★ 地址&#xff1a;前端面试题库 前言 之前我写过一篇文章&#xff0c;讨论了为什么async await中的错误可以被try catch&#xff0c;而setTimeout等api不能&#xff0c…