![如何最好地将系统数据库从 SQL 2005 移动到 SQL 2008 R2?](https://linux22.com/image/799435/%E5%A6%82%E4%BD%95%E6%9C%80%E5%A5%BD%E5%9C%B0%E5%B0%86%E7%B3%BB%E7%BB%9F%E6%95%B0%E6%8D%AE%E5%BA%93%E4%BB%8E%20SQL%202005%20%E7%A7%BB%E5%8A%A8%E5%88%B0%20SQL%202008%20R2%EF%BC%9F.png)
我正在从 SQL 2005 迁移到 SQL 2008 R2。移动生产数据库和日志很简单,通过分离/连接或备份/恢复即可。(新硬件,因此在迁移过程中,旧系统与新系统并行运行)
不过,我对系统数据库 (master 和 msdb) 感到疑惑。有什么最好的方法可以转移它们的关键内容,同时尽可能多地保留旧系统数据,包括登录名、用户、帐户密码等?(我知道我不能只进行备份/恢复)。
不涉及集群、镜像、复制、链接服务器或 SSIS。有一些标准维护工作。
运行使用任务 --> 生成脚本创建的脚本是否足够?生成的脚本中是否有部分无法从 SQL 2005 移植到 2008 R2?
移动系统数据库后,我是否应该采取其他步骤来完成迁移并避免出现孤立登录等问题?我是否需要手动设置旧系统设置?
答案1
不要。您的新实例将拥有自己的系统数据库。将它们视为不兼容。但您的救赎将是编写您关心的内容的脚本或使用 SSIS,IIRC,它具有移动登录和移动作业任务(第一个肯定,第二个不确定)。对于登录,如果它们是 Windows 登录,则只需一个,create login [domain\user] from windows
任何孤儿都会得到解决。如果您有 SQL 登录,您将不得不四处寻找从 sys.sql_logins 中获取哈希密码和 SID 并执行create login [yourlogin] with sid = <some guid>, password = 0xfacefeed hashed
。祝你好运!