我在3个不同的服务器上有3个Sql(2008 R2)实例。 版本是(10.50.2550.0 SP1标准版(64位),10.50.2550.0 SP1标准版(64位))。 目标是将所有的数据库和login迁移到新的服务器,我们只需购买Sql server 2012。
我不知道如何处理,我试图使用复制数据库向导,并保持失败。 如果我决定备份每个数据库并将它们还原到新的服务器,我不知道如何迁移login。
处理这种情况的最好方法是什么?
对于混淆抱歉:(更多关于这个问题的细节)
第60行:
On Error,DUPFAIDS,NT AUTHORITY \ SYSTEM,DUAPPSRV1_EXAPPSVR1_DUPFAIDS_PFAIDS_Transfer Objects Task,{8F0C82BB-4C5D-4796-BE75-BAB033C59039},{3818CD1B-9685-46B7-AFE2-AE0FE962DA03},
12/3/2014 12:10:15 PM,12/3/2014 12:10:15 PM,0,0x,错误:errorCode = -1073548784
description =执行查询“——————————————– ——…“失败,出现以下错误:”无效的对象名称xwd_window_disabled_objects“。
可能的失败原因:查询问题,“ResultSet”属性设置不正确,参数设置不正确或连接未正确build立。
按照build议备份和恢复数据库。 然后在旧服务器上运行此Microsoft脚本( https://support.microsoft.com/kb/918992 ),以生成脚本以在新服务器上创buildlogin。 由于您有两个源服务器,请务必仔细检查您的脚本,以确保没有任何重复的条目或其他问题。
有很多不同的方法来迁移数据库。 备份和恢复是最常用的build议,但是如果你有超过100个数据库,你可能需要脚本来分离和附加数据库。 我已经成功地使用这个将大量(数百个)数据库迁移到新的服务器:
@ECHO ON set controlfile=control.txt set newipmdf=\\newserver\g$ set newipldf=\\newserver\e$ set oldserver=oldserver\Prod1 set oldmdfpath=d:\prod1 set newmdfpath=g:\data set copymdfpath=m:\data set newserver=newserver set oldlogpath=e:\prod1 set newlogpath=e:\log set copylogpath=l:\log set movedmdfpath=%oldmdfpath%\moved set movedldfpath=%oldlogpath%\moved mkdir %movedmdfpath% mkdir %movedldfpath% net use m: %newipmdf% net use l: %newipldf% SETLOCAL DISABLEDELAYEDEXPANSION FOR /F %%L IN (%controlfile%%) DO ( SET "line=%%L" SETLOCAL ENABLEDELAYEDEXPANSION ECHO !line! sqlcmd -E -S!oldserver! -Q"EXEC master.dbo.sp_detach_db @dbname = N'!line!'" copy "!oldmdfpath!\!line!.mdf" !copymdfpath! copy "!oldlogpath!\!line!_log.ldf" !copylogpath! sqlcmd -E -S!newserver! -Q"CREATE DATABASE [!line!] ON ( FILENAME = N'!newmdfpath!\!line!.mdf' ),( FILENAME = N'!newlogpath!\!line!_log.ldf' ) FOR ATTACH" move "!oldmdfpath!\!line!.mdf" !movedmdfpath! move "!oldlogpath!\!line!_log.ldf" !movedldfpath! ENDLOCAL ) ENDLOCAL net use m: /z net use l: /z
至于login,我不能帮你的密码,但你应该能够得到用户名列表:
SELECT [name], type, type_desc FROM [master].[sys].[server_principals] where is_disabled=0 and type in ('S','U')
凯瑟琳Villyard的分离/附加脚本是好的。
如果你想备份和恢复,这也是一个很好的select,是经常使用的。 但是先login。
从此Technet文章复制sp_hexadecimal
和sp_help_revlogin
的代码,并使用sp_help_revlogin
生成可用于复制login的TSQL语句。 过程是这样的:
EXEC sp_help_revlogin
sp_help_revlogin
的结果并将其粘贴到与新SQL Server实例相连的新查询窗口中 如果正确完成,您的新实例将具有匹配的login(具有匹配的SID和密码,这是关键)。 然后,您可以备份和恢复您的数据库到新的实例,而不用担心孤立的数据库login。
(注意未来的访问者:如果由于某种原因,链接断开只是searchsp_help_revlogin
来查找新页面)。