none
sql2008数据库迁移到sql2014几个问题请教。谢谢大家 RRS feed

  • 问题

  • 目前有个项目需要升级。原来环境是w2003+iis6+sql2008 现在迁移到 w2012+iis+sql2014。说实话这种实战第一次遇到。没什么经验,大部分都是靠百度之类的。但是也不是全部可以解惑。所以来这里向大家讨教

    Q1. 首先遇到的问题。当我在sql2008上远程连接slq2014的。出现如下错误:

    而反过来,在sql2014上远程连接sql2008,没有错误提示。

    Q1想得到的帮助:这是由于版本不同造成的正常范畴内的问题(也就是说大家都一样 )or 是我安装设置过程中存在某些错误造成的异常范畴问题。如果是后者,该如何解决?

    Q2: 迁移中最重要的环节,是把sql2008上目前在用的一个数据库迁移到sql2014上了。目前我自己的认知有2种方式实现数据库迁移:

         2.1  在sql2008上分离,目的使数据库文件mdf和ldf可用,再复制到w2012系统中,然后在sql2014上附加此数据库mdf文件实现副本迁移。这样就是在2个sql上同时都有这个数据库。

         2.2  sql2008上有数据库的备份文件bak,复制到w2012上后,在sql2014上使用还原数据库,然后得到如下画面:

         但服务器栏位中显示的服务器还是sql2008的旧服务器名称

    Q2想得到的帮助有几个:

    第一:2.2方式我是在sql2014上操作的。但是画面提示的服务器名称却是sql2008的,所以这里有个困惑是:如果我用这种方式执行。那么还原操作的结果是发生在sql2008上(也就是覆盖掉sql2008上的数据库,sql2014上没有任何影响)or 是把这个bak文件还原到sql2014上?(也就是说不影响sql2008上的任何现有数据,2个sql上各自有一个同名数据库)

    第二:

    如果2.2方式执行的方式最终结果是在sql2014上,那么也实现了数据库迁移,此时2.1方式和2.2方式效果是不是一样?or 有什么区别?

    第三:

    除了2.1和2.2 还有什么方式可实现数据库迁移?

    以上。谢谢大家


    nn

    2020年10月28日 1:38

答案

  • 你好,

    比起分离附加,首先建议使用备份还原的方式。在SQL Server 2014服务器上还原 SQL Server 2008的数据库备份文件是可行的,不会影响到原来的实例.

    但是更建议使用Microsoft数据迁移助手工具。

    数据迁移助手概述
    https://docs.microsoft.com/zh-cn/sql/dma/dma-overview?view=sql-server-ver15

    注意:不管是直接使用备份还原的方式还是使用Microsoft数据迁移助手工具,在迁移完成后,需要在目标实例上(即sql server 2014), 手动更改迁移数据库的兼容性级别。另外因为SQL Server 2014在查询优化器上进行了较大的更改,为防止升级对性能的影响,在更改兼容性级别之前,先参考此文章。

    使用查询优化助手升级数据库


    如果您已解决问题,请将有用的答复标记为答案。 这可能对其他遇到类似问题的社区成员有帮助。
    此外,如果您还有其他问题,请随时提出。

    2020年10月28日 3:31

全部回复

  • 不知道为什么图没出来补图:

    q1图:

    Q2图:


    nn

    2020年10月28日 1:47
  • 你好,

    比起分离附加,首先建议使用备份还原的方式。在SQL Server 2014服务器上还原 SQL Server 2008的数据库备份文件是可行的,不会影响到原来的实例.

    但是更建议使用Microsoft数据迁移助手工具。

    数据迁移助手概述
    https://docs.microsoft.com/zh-cn/sql/dma/dma-overview?view=sql-server-ver15

    注意:不管是直接使用备份还原的方式还是使用Microsoft数据迁移助手工具,在迁移完成后,需要在目标实例上(即sql server 2014), 手动更改迁移数据库的兼容性级别。另外因为SQL Server 2014在查询优化器上进行了较大的更改,为防止升级对性能的影响,在更改兼容性级别之前,先参考此文章。

    使用查询优化助手升级数据库


    如果您已解决问题,请将有用的答复标记为答案。 这可能对其他遇到类似问题的社区成员有帮助。
    此外,如果您还有其他问题,请随时提出。

    2020年10月28日 3:31
  • 感谢您的回答。受益匪浅

    目前已经决定通过还原数据库的方式进行数据库迁移。放弃了分离/附加 方法了。

    另外您提到的迁移到sql2014上后,需要对迁移过来的旧版数据库进行兼容性的升级。对应到我这个问题上就是sql2008的100级别升级到sql2014级别的120

    您给出的参考文章也看过了。大概如下

    1. 通过使用 ALTER DATABASE SET SINGLE_USER,将数据库设置为单用户访问模式。
    2. 更改数据库的兼容级别。
    3. 通过使用 ALTER DATABASE SET MULTI_USER,将数据库设为多用户访问模式。

    文章中介绍的是通过查询分析器用命令来实现。如果对命令不熟悉的情况下,可以通过GUI界面操作可以么?

    比如设置单用户访问和调整兼容性在如下画面做:(画面是在2008上截图的,所以没有sql2014的120级别)

    图形界面中执行效果是不是可以代替命令模式? 然后选定了120之后 就完成了兼容性升级 还有没有其他步骤需要操作了?

    谢谢


    nn

    2020年10月29日 1:40
  • 您好,

    感谢您的回复。

    您在SSMS工具的GUI界面操作是等同于使用T-SQL命令的,只需确保登录到SSMS且进行此操作的用户具有相关权限,并且操作成功执行无报错。在GUI界面成功更改兼容性级别后,无需其他步骤需要操作。系统将自动更新执行计划等。

    另外随着使用的SQL Server数据库版本的升级,也建议使用新版本的SSMS。新版本的SSMS具有更多改进,以及始终对SQL Server提供更多的功能支持。


    ""SQL Server related"" forum will be migrated to a new home on Microsoft Q&A SQL Server!
    We invite you to post new questions in the "SQL Server related" forum’s new home on Microsoft Q&A SQL Server !
    For more information, please refer to the sticky post.

    2020年10月29日 2:16