我正在将 100 多个 SQL 数据库迁移到新位置的新服务器。我有适当的维护计划来进行完整备份,然后是将.bak文件复制到临时目录的脚本。我正在寻找的是一种批量恢复这些.bak文件的方法,这样我就不必整个周末都手动进行。
我在这里找到了一个不错的存储过程:SQL 还原
我将其安装到位并进行了测试,但出现以下错误:
消息 3118,级别 16,状态 1,第 1 行
数据库“TF058”不存在。RESTORE 只能在恢复主文件的完整备份或文件备份时创建数据库。
消息 3013,级别 16,状态 1,第 1 行
RESTORE DATABASE 异常终止。
我正在运行 SQL Server 2012 并且数据库处于完全恢复模式。
我有一个查询,让我知道有关备份的基本信息。我有几个 SQL 服务器,我希望能够一次查询。是否可以同时在多台服务器上运行以下查询?
SELECT
A.[Server],
A.database_name,
A.last_db_backup_date,
B.backup_type,
B.backup_start_date,
B.expiration_date,
B.backup_size,
B.logical_device_name,
B.physical_device_name,
B.backupset_name,
B.description
FROM
(
SELECT
CONVERT(CHAR(100), SERVERPROPERTY('Servername')) AS Server,
msdb.dbo.backupset.database_name,
MAX(msdb.dbo.backupset.backup_finish_date) AS last_db_backup_date
FROM msdb.dbo.backupmediafamily
INNER JOIN msdb.dbo.backupset ON msdb.dbo.backupmediafamily.media_set_id = msdb.dbo.backupset.media_set_id
GROUP BY
msdb.dbo.backupset.database_name
) AS A
LEFT JOIN
(
SELECT
CONVERT(CHAR(100), SERVERPROPERTY('Servername')) AS Server,
msdb.dbo.backupset.database_name,
msdb.dbo.backupset.backup_start_date,
msdb.dbo.backupset.backup_finish_date,
msdb.dbo.backupset.expiration_date,
msdb.dbo.backupset.backup_size,
msdb.dbo.backupmediafamily.logical_device_name,
msdb.dbo.backupmediafamily.physical_device_name,
msdb.dbo.backupset.name AS backupset_name,
msdb.dbo.backupset.description,
CASE msdb..backupset.type
WHEN 'D' THEN 'Full Database'
WHEN 'L' THEN 'Log'
WHEN 'I' THEN 'Differential'
WHEN 'F' THEN 'File Level' …Run Code Online (Sandbox Code Playgroud)