场景:一台服务器A配置SQL2005&SP3,含多个用户数据库,需要迁移到新的服务器B使用SQL2008R2&SP2。
说明:这里包含迁移Migrate和升级Upgrade两个动作,为了保留SQL所有设置,升迁要包括master和msdb两个数据库。
步骤1:在服务器B上安装SQL2008R2&SP2。
步骤2:备份SQL2008R2的master,msdb,model三个数据库,并拷贝一份数据库文件到别处,皆备份用途。
步骤3:在服务器上运行SQL2008R2上运行单用户模式sqlservr.exe -m,恢复服务器A的master备份失败,sql error提示版本不兼容,不能恢复。
步骤3:使用Symantec Backup Exec恢复服务器A的master备份重定向到服务器B,选中“ ”,仍然失败,提示“V-79-65323-0 查询数据库 master 时出错”。
步骤3:在服务器A上将master的备份恢复到master2数据库,分离master2数据库,改名为master.mdf和mastlog.ldf并复制到服务器B替换之。创建和服务器A上SQL实例相同的目录(包括Data和Log目录),将model和msdb的数据库文件复制到这个Data目录。
步骤4:启动服务器B上的SQL,观察errorlog,顺利的话隔几分钟就完成master的升级和实例的启动,如有错误再纠正。
步骤5:使用ALTER database msdb/model/tempdb modify file(name=tempdev, filename='...')逐个更改(调整)数据库物理文件路径,停止SQL复制物理文件到新路径,重启SQL。
步骤6:msdb如果从备份恢复也可能不成功(没有试这个步骤,也没有试从复制过来的数据文件升级),可以使用SQL Server Business Intelligence Development Studio新建一个Integration Services 项目来传输所有的Logins和Jobs。可能出错,记得先创建相同的Operators和Database Mail。
步骤7:只需要将所有最新的用户数据库文件从服务器A复制到服务器B的相同目录再重启sql就可以完成SQL升级了。
步骤8:其它SQL2008R2配置。