【发布时间】:2011-12-09 04:37:06
【问题描述】:
我需要将我的所有数据库(仅 5 个)从一台服务器移动/复制到另一台服务器。我知道如何进行备份和恢复,但我还需要移动我的数据库的所有信息,包括用户、架构等……
【问题讨论】:
-
您运行的是什么版本的 SQL Server?
标签: sql sql-server database sql-server-2008
我需要将我的所有数据库(仅 5 个)从一台服务器移动/复制到另一台服务器。我知道如何进行备份和恢复,但我还需要移动我的数据库的所有信息,包括用户、架构等……
【问题讨论】:
标签: sql sql-server database sql-server-2008
有脚本数据和登录的选项(大量其他内容)。非常方便。
这里的脚本将生成一个脚本以在所有数据库上添加所有角色
declare @selectStatement varchar(1000)
set @selectStatement = 'Use ?;SELECT ''USE ?''; SELECT ' + '''EXECUTE sp_AddRoleMember ''''' + ''' + roles.name + '''''''+','''''+''' + Replace(users.name,''DOMAINA'',''DOMAINB'') + ''' + '''''''
from sys.database_principals users
inner join sys.database_role_members link
on link.member_principal_id = users.principal_id
inner join sys.database_principals roles
on roles.principal_id = link.role_principal_id'
--where users.name like ''%%'''
EXEC sp_MSForEachDB @selectStatement;
【讨论】:
? 括起来(即[?]),以支持包含点等内容的数据库名称。
一般来说复制数据库有两种可能:
1 备份-恢复
在这种情况下,您将遇到一些问题,主要是After you move databases to a new server, users may not be able to log in to the new server. 这里提供了此问题的解决方案:
How to transfer logins and passwords between instances of SQL Server
2 DETACH-COPY-ATTACH 它只是将数据库文件复制(或移动)到另一台服务器。
您可以在此处阅读每种方法的优缺点SQL Server backup/restore v.s. detach/attach
【讨论】:
我建议使用 Red Gate 的SQL Compare 来完成这项任务。我花了一点钱,但每一分钱都是值得的。请注意,SQL Compare 不会迁移物理数据库,只会迁移数据库的内容。
【讨论】:
pg_dumpall ?但是如何没有文件,直接从服务器A到服务器B。有可能吗?