我们正在从 sql server 2008 迁移到 2017 并将执行以下操作
- 在新机器上安装sql server 2017
- 备份旧服务器上的所有数据库
RESTORE DATABASE DbName FROM DISK = 'C:\temp\Live\dbname.bak'
WITH
MOVE 'DbName' TO 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\DbName.mdf',
MOVE 'DbName_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\DbName_log.ldf'
如果可能,我想避免使用该WITH
部分,但这需要我先创建一个空白数据库并将其版本设置为 2008,然后才能正确恢复。
我想我要问的是,在没有任何数据库的服务器上获取 .bak 文件并将其还原为 db 的最佳方法是什么。
宁愿在不附加/分离的情况下执行此操作
我有大量的数据库,所以我将创建一个脚本来一次完成所有这些。
我不确定你的问题是什么。
当您恢复数据库时,数据 (mdf) 和日志 (ldf) 文件已经在磁盘的某个地方。
WITH MOVE
只是告诉 SQL 把它们放在哪里。你不能有一个没有数据库的 SQL 服务器,每次安装都会有 4 个开箱即用的数据库,
master
,msdb
,model
&tembdb
,它们是系统数据库,它们每个都有 mdf 和 ldf 文件,就像你要恢复的用户数据库一样.正如 scsimon 在评论中提到的那样,您可能不希望您的 SQL 文件位于 C 驱动器上,向我解释的最佳做法是为 SQL 提供 4 个驱动器,