ASP.NET + Sql Server - 如何将托管数据库移动到与网站相同的服务器?

时间:2014-02-24 11:42:20

标签: c# asp.net sql-server

我正在使用asp.net网站,我遇到了从原始服务器迁移数据库的问题。

最初,数据库托管在与网站不同的服务器上。性能测试显示这是一个主要的瓶颈因此我决定将数据库迁移到与网站相同的服务器上(我不是本网站的原始设计者或实施者)。

我设法从原始服务器获取数据库转储并将其安装在我当前使用的服务器上。

迁移并连接数据库后,最奇怪的事情发生在:网站上有用户配置文件。但是,对于迁移的数据库,无论连接多少用户,他们都会看到其中一个用户的信息(通常是ID号较大的用户,尽管这是无关紧要的)。此外,登录不再适用于隐身模式(Chrome)。其余的数据库通信(所有用户通用的数据)似乎运行良好。

我尝试过的解决方案:

  • 检查数据库中复制时可能遗漏的内容(外键等):它们是相同的,手动验证并使用特殊工具(SQL比较和数据比较),很多次
  • 从原始数据库导入原始登录名和权限。
  • 网站使用处理数据转换和存储过程调用的DLL与数据库进行通信。这个.dll包含一些内联的SQL查询,我在数据库中作为存储过程移动 - 问题仍然存在。

我现在想的是使用服务器的ip和指定的端口通过TCP / IP连接到数据库。我试图这样做,但直到现在我才能启用到数据库的远程连接。此外,我不确定这是一个很好的解决方案。

我在我的服务器上使用:

  • Windows Server 2008 R2
  • SQL Server Enterprise 2012
  • 我不知道原始数据库使用了什么SQL Server版本(正如我之前所说,它不是由我开发的)
  • 网站是用asp.net编写的,带有c#codebehind。

你对可能出现的问题有任何想法吗?

1 个答案:

答案 0 :(得分:0)

正如评论中所提到的,兼容性可能是问题,但可能不是。试试这个备份吧。

USE yourDatabaseName;
GO
BACKUP DATABASE yourDatabaseName
TO DISK = 'C:\folderName\BackUpTestServer.Bak'
   WITH FORMAT,
      MEDIANAME = 'C_SQLServerBackups',
      NAME = 'Full Backup of yourDatabaseName';
GO

将文件复制到2012服务器。 然后在2012服务器上运行这些步骤......

1)右键单击对象资源管理器中的“数据库”。

2)单击“还原数据库”

3)选择设备,然后单击“...”框

4)选择备份设备会出现,文件应该在下拉列表中高亮,点击“添加”

5)从2008文件夹中找到备份文件,然后单击“确定”

6)再次单击“确定”,然后再次单击“确定”。应该说数据库已成功恢复。

尝试这些步骤..这就是我将数据库迁移到新服务器的方式,以及如果服务器因任何原因而关闭时如何恢复数据库。

相关问题