SQL Server 完整升级

SQL Server 完整升级

我们当前的 SQL 服务器运行在 Windows 2003 32 位上,因此我们计划在 64 位上从头开始重建服务器,但是我们在服务器上运行了大约 200 个数据库,因此我可能必须一次备份所有内容并在 64 位 Windows 安装后恢复它们。有没有更简单的方法可以批量恢复所有这些数据库,或者有任何最安全的选择会很感激。

答案1

使用 SQL 本身来生成备份和恢复脚本。您必须首先通过记录的方法处理 MASTER 和 MSDB 以获取用户帐户,否则,您可以执行以下操作(未经测试的代码):

/* script to generate backup script */
    use master
go
select 'backup database ['+ [name] +'] to DISK=''\\myserver\mypath\' + [name] + '.BAK'' WITH COPY_ONLY, INIT'
    from sys.databases where name not in ('master','msdb','tempdb','model')

/* generate restore script */
    select 'restore database ['+ [name] +'] from DISK=''\\myserver\mypath\' + [name] + '.BAK'' '
    from sys.databases where name not in ('master','msdb','tempdb','model')

在查询分析器中运行该程序,然后将各部分的结果粘贴到新的查询编辑器窗口中并保存。这是最安全我认为这是可行的方法,整个过程可以按计划自动运行(当然需要有人监控进度)。显然,您需要在进行这些“最终”备份之前关闭源服务器上的客户端访问。如果新服务器上的驱动器布局明显不同,则必须调整恢复部分。

最快的方法是使用相同的路径和驱动器布局安装 SQL Server,然后关闭源服务器并将所有文件复制到新服务器(包括主服务器等)上的相同位置。这种方法过去对我来说很管用,但根据环境的不同,以这种方式将主服务器恢复到新服务器并非完全没有问题(我认为 MSFT 也没有正式支持这种方法)。只要您拥有相同的 SQL Server 版本、服务包 + 补丁级别,即使源服务器是 32 位而目标是 64 位,这种方法也应该有效。

相关内容