sql-server – SQL Server就地升级是否像过去那样不明智?

自从SQL Server 6.5以来,我一直在使用SQL服务器,我的脑子里仍然没有进行就地升级的旧建议.

我目前正在将我的2008 R2 DEV和TEST系统升级到SQL Server 2012,并且需要使用相同的硬件.不必恢复我的报告服务配置的想法是非常有吸引力的,我真的很反对时间.没有涉及分析服务或任何异常或非标准 – 仅安装数据库引擎和报告服务.

有没有人遇到过就地升级的严重问题?或者我应该重新评估我对就地升级的立场?

解决方法

真的很短的答案 – 到位是好的.您可以在以后查看配置并实施SQL Server 2012的最佳实践.

关于SQL Server升级/迁移的更长答案

所以这是一个观点,并没有一定的错误或正确的答案,但我更喜欢迁移式升级,因为很多原因.话虽这么说 – 由于各种原因我的一些客户别无选择,只能做就地,而且自从SQL Server 2005以来,就地升级并没有像过去那样糟糕.

为什么我更喜欢迁移到就地升级

>更容易回滚 – 如果出现问题,您可以通过简单的说法“我们中止升级来回滚.请在解决此问题时将连接字符串更改为旧服务器”.有了就地,你正在修理它,或者你失败了.
>刷新硬件 – 硬件变化迅速. 4年前,您很容易陷入适合您公司的硬件上,但今天和接下来的四年内不适合进行就地升级.无论如何,您可能不得不在新硬件上进行迁移.
>感觉更好 – 当然……这个是主观的,但是知道你是从一个新的操作系统安装开始感觉很好,一个新的SQL安装,在你之前没有来自工作人员的蜘蛛网(或者在你知道你之前)今天知道,这可能会让你在将来头疼.
>新操作系统 – 如果您今天没有使用最新版本,那么迁移可让您有机会开始使用新的操作系统版本.
>您可以测试它 – 在安装SQL并使用数据库和使用情况进行云计算之前,是否曾希望在新计算机上获得一组基线?你现在可以这样做.
>有时潜入最佳实践更容易 – 也许SQL Server服务帐户是本地管理员.也许Builtin Administrators是SA服务器角色.也许事情已被黑客攻击,以使之前有效.你可以解决这一切并重新开始.
>免费的测试环境和额外的睡眠 – 当您实现这个新环境时,拥有一个可以在实际转换日之前工作的环境是一个很大的好处.迁移到新环境意味着您可以在工作时间内构建它,远远超过实际的切换日,并提前以多种方式对其进行测试.您可以在所有应用程序和系统上运行完整的回归测试数天,并且在实际执行最后一组还原/附加操作并切换所有应用程序和访问新环境之前,可以放心使用.
>您不必一次完成所有操作 – 我遇到的一个非常常见的情况是尝试合并到几个实例的环境.也许每个版本一个,也许每个“层”和版本一个.根据测试,项目计划和供应商认证的及时性,许多这些项目针对各种应用程序和数据库有不同的时间表.执行迁移意味着您可以移动那些准备就绪的数据库,这些数据库在准备就绪时仍能处理那些因某种原因无法移动的数据库的请求.

请注意,我并不是说你必须做这个迁移.就地工作,如果您没有计划在预算中购买新硬件并且无法为此升级做到这一点,则它可以正常工作.升级过程中的支持比6.5天好得多,所以你不会把自己置于糟糕的位置.

如果您计划为dev / test进行就地操作但是想要进行生产迁移,则可以考虑在生产之前至少进行一次迁移.通过这种方式,您可以提前制定清单并处理您没有想到的任何潜在问题.

附加/分离与备份/还原以进行迁移

如果您决定采用迁移方法,还有一个决定可能仍然存在争议,这就是您将数据库移动到新环境的方式.您可以从旧服务器分离数据库并将其附加到新服务器或备份它并在那里将其还原.

我更喜欢备份/恢复.我听说分离/附着的最大优点是节省了一些时间.对我来说,备份/恢复获胜的原因有以下几点:

>保持旧的可访问性 – 这允许您在源服务器上仍具有可访问的数据库.分离/连接应该做同样的事情,但它需要几个步骤,并且分离/连接存在人为错误的空间,这可能使此复杂化.
>您要保证您有备份 – 您不必仅从分离中获取数据库并且可能忘记备份步骤,而是确保您已经进行了备份.
>人为错误 – 如果删除了错误的文件,忘记发送内容的位置或者弄乱你的步骤,那么通过移动数据库的数据和日志文件会带来很大的风险.现在你可以通过复制而不是剪切来缓解这种情况(如果你做分离,你应该摆脱剪切和粘贴习惯)但你可能会陷入困境. SQL Server不再锁定这些文件,而且我很容易意外地删除文件以免冒险.
>实际上并不是那么慢 – 备份并复制它需要更多时间,但我愿意为此付出额外风险并不是那么多.实际上 – 使用完全恢复模型和日志备份,您可以将停机时间降低甚至更低,如下文“如何使迁移方法更快”中所述

如果您决定进行备份/恢复 – 这意味着您的旧源数据库仍将处于联机状态.我喜欢在备份后使该数据库脱机.在编写安全性,作业,链接服务器,证书,数据库邮件设置和其他实例范围信息之后,我有时会更进一步,使整个SQL实例脱机.这避免了在测试期间有人说“一切看起来都很棒!”的问题.只是为了实现一两天后他们一直在与旧服务器上的旧数据库进行通信.使这些数据库脱机或整个实例脱机可以防止这些误报和它们造成的混乱.

如何使迁移方法更快

通过利用完整恢复模型,您可以最大限度地缩短从旧环境到新环境的切换所需的停机时间,从而使繁忙的生产环境几乎不会停机.基本上 – 通过恢复最新的完整备份,任何差异备份和任何已经采用的指定NORECOVERY的日志备份来暂存要迁移到的环境 – 然后您需要做的最后一次切换就是恢复尚未恢复的日志备份以及要恢复的最终日志备份,指定WITH RECOVERY.对于大型数据库,通过在停机时间窗口之前支付完整,差异和大多数日志恢复的成本,可以极大地减少实际的切换停机时间窗口.感谢Tao在评论中指出这一点!

如何使就地升级更安全

在选择就地方法时,您可以采取一些措施来改善您的体验和结果.

>备份 – 提前对您环境中的所有用户和系统数据库进行适当的备份并确保它们是好的(我是偏执的……我实际上会先将它们恢复到某个地方才真正知道它们很好……可能会浪费你的时间..但是,如果发生灾难,您可能会感谢自己).在该环境中编写有关SQL和OS安装的任何配置信息.
>在开始之前做好测试 – 确认您拥有良好的环境和良好的数据库.你应该做的事情就是查看错误日志并定期运行DBCC CHECKDB,但在进行就地升级之前是一个很好的开始时间.提前解决任何问题.
>确保操作系统健康 – 不要只确保SQL健康,确保服务器运行正常.您的系统或应用程序错误事件日志中的任何粗糙错误?你的自由空间怎么样?
>做好最坏的准备 – 前一段时间我有一个博客文章系列,其前提是如果你没有为失败做准备 – you are actually preparing to fail ..我仍然相信.因此,请仔细考虑您可能遇到的问题,并提前做出相应处理.让自己陷入“失败”的心态,你会想到你不会有的事情.

升级或迁移清单的重要性

如果您决定进行升级(无论是到位还是迁移),您应该认真考虑创建一个清单并在每个环境中使用此清单.你应该在这份清单中加入一堆东西,其中最重要的是:

>在开始时 – 做一些事情,比如执行测试升级,在最新的数据库兼容级别上测试应用程序,并考虑提前运行像SQL Server Upgrade Advisor这样的工具,看看在进行SQL Server升级之前需要完成哪些任务或迁移.
>预备步骤 – 清理,操作系统任务,提前修补,准备升级应用程序(清理关闭,连接字符串工作),备份等.
>升级/迁移步骤 – 升级或迁移所需的一切都要成功并按正确的顺序进行.安装,更改(或根据您的测试和方法不改变)兼容模式更改为数据库等.
>迁移后/升级步骤 – 各种测试,发布新版本或新服务器配置选项,最佳实践实施,安全性更改等.
>回滚步骤 – 您应该拥有回滚步骤和里程碑.如果你走得这么远,这会发生,你会怎么做?什么是“完全回滚”标准?你是如何进行回滚的(反向连接字符串更改,更改设置,返回旧版本,如果安装就重新安装,如果迁移则返回旧服务器等)

然后让生产升级的人员在生产以外的某些环境中遵循清单 – 特别是如果可能的话,关闭生产类似的生产(正如我所说,“生产的南方”),并注意任何问题或要点由于缺乏清单,他们不得不从清单转移或即兴发挥.然后将合并的更改合并到您的生产变更中.

我不能过分强调在迁移或升级之后彻底测试的重要性.在升级过程中做出回滚决定应该很容易 – 尤其是在迁移过程中.如果有什么不舒服的东西,如果你无法在迁移的热量中有效可靠地解决问题,请回滚并弄明白.一旦您在这个新环境中生活并且用户连接 – 回滚就变成了一项艰巨的任务.您无法将SQL Server数据库还原到早期版本.这意味着手动工作和数据迁移.我总是等待几个星期来杀死旧环境,但是你应该尽可能地避免在现场用户触摸新环境之前找到所有问题来避免需要旧环境.最好在你开始升级/迁移之前.

有关SQL Server Reporting Services迁移/升级的快速说明迁移SSRS安装并不是许多人认为的艰巨任务.这篇文章中最重要的警告之一是“备份加密密钥”,特别是如果您有大量已保存的敏感信息,如预定报告电子邮件收件人电子邮件地址,多个连接的连接信息,等一段时间你可以向我的一位客户询问这有多重要.他们知道,因为我搞砸了这一步,花了很多时间修改报表计划和连接字符串权限.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


本篇内容主要讲解“sqlalchemy的常用数据类型怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“sqlalche...
今天小编给大家分享一下sqlServer实现分页查询的方式有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家
这篇文章主要介绍“sqlmap之osshell怎么使用”,在日常操作中,相信很多人在sqlmap之osshell怎么使用问题上存在疑惑,小编查阅了各式资料,整理出
本篇内容介绍了“SQL注入的知识点有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧...
1. mssql权限sa权限:数据库操作,文件管理,命令执行,注册表读取等system。是mssql的最高权限db权限:文件管理,数据库操作等 users-administratorspublic权限:数据库操作 guest-users2、sql server注入执行命令查
sql执行计划如何查看?在SPL庞大的数据中我们不知道如何查看实际数据库中发生了什么事情,有必要定期进行查询优化和索引否则会影响我们后期的SQL的查询速度。那么针对这样的问题我们必须要知道SQL执行的计划,在本文中winwin7小编给大家分享下SQL执
SQL Server 是Microsoft 公司推出的关系型数据库管理系统。具有使用方便可伸缩性好与相关软件集成程度高等优点应用非常广泛。不过在使用中,我们会遇到非常多的错误,面对这么庞大的数据库环境,当然会有精确的错误代码的对照季,下面小编分享的
SQL Server本地账户无法登陆出现错误提示:error:40-Could not open a connenction to SQL Server的问题很常见,对于初学者来说可能不知道如何解决,一起来看看下面的解决方案。解决步骤如下:1、这种情况需要开启 SQL Server service
微软推出的SQL2008是一款非常好用的数据库软件,它稳定、功能强大,为众多企业提供了最佳的数据库解决方案,那么我们如何在Windows中安装它呢,一些朋友对SQL Server 2008的安装过程还不是很熟悉,下面就一起来看看SQL Server 2008详细安装图解...
本页概要如果您使用的是 SQL Server 2005备份和还原Sp_detach_db 和 Sp_attach_db 存储过程关于排序规则的说明导入和导出数据(在 SQL Server 数据库之间复
DBCC CHECKIDENT 检查指定表的当前标识值,如有必要,还对标识值进行更正。 语法 DBCC CHECKIDENT ( 'table_name' [ , { NORESEED
这里对 SQL Server 字符串函数进行分门别类地列出,便于查阅和记忆,相信大家都在其它方面有高深的编程基础,从字面上来说大家都知道这些函数的意义,就不对这些函数作过多的解释了,主要谈些经验,具体
查询及删除重复记录的方法 1、查找表(people)中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select*frompeoplewherepeopleIdin(selectpe
微软发SQL Server 2008第二个CTP预览版from: http://news.csdn.net/n/20070807/107158.html8月7日消息,微软公司本周发布了SQL Serv
症状当您将数据库备份恢复到另一台服务器时,可能会遇到孤立用户的问题。SQL Server 联机丛书中的孤立用户疑难解答主题中没有讲述解决此问题的具体步骤。本文介绍了如何解决孤立用户问题。更多信息虽然术
当登录SQL Server 2005时可能碰到错误: 'No Process is on the Other End of the Pipe'。解决方法:(1)Open up SQL
概要本文描述如何映射标准登录和集成登录来解决在运行 SQL Server 的服务器之间移动数据库时的权限问题。更多信息当您将数据库从一个运行 SQL Server 的服务器移到另一个运行 SQL Se
----------------------------------------问题:该用户与可信的SQL SERVER 连接无关联使用sa用户或自建用户使用“SQL SERVER 身份认证”连接数据
更新日期: 2007 年 5 月 20 日 使用下表可以确定各种版本的 Microsoft SQL Server 2005 支持哪些功能。有关 SQL Server 2005 Enterprise E
当从Excel导入数据到Sql Sever中,可能会出现以下问题:
对于指定的缓冲区大小而言,源列的数据太大