• 批量恢复数据库


    USE Master;
    GO
    SET NOCOUNT ON
    -- 1 - Variable declaratioN
    DECLARE @dbName sysname
    DECLARE @backupPath NVARCHAR(500)
    DECLARE @cmd NVARCHAR(500)
    DECLARE @fileList TABLE (backupFile NVARCHAR(255))
    DECLARE @lastFullBackup NVARCHAR(500)
    DECLARE @lastDiffBackup NVARCHAR(500)
    DECLARE @backupFile NVARCHAR(500)
    -- 2 - Initialize variables
    SET @dbName = 'dddd'
    SET @backupPath = 'c:\'
    -- 3 - get list of files
    SET @cmd = 'DIR /b ' + @backupPath
    INSERT INTO @fileList(backupFile)
    EXEC master.sys.xp_cmdshell @cmd
    -- 4 - Find latest full backup
    SELECT @lastFullBackup = MAX(backupFile)
    FROM @fileList
    WHERE backupFile LIKE '%.BAK'
    SET @cmd = 'RESTORE DATABASE ' + @dbName + ' FROM DISK = '''
    + @backupPath + @lastFullBackup + ''' WITH NORECOVERY, REPLACE'
    PRINT @cmd
    -- 4 - Find latest diff backup
    SELECT @lastDiffBackup = MAX(backupFile)
    FROM @fileList
    WHERE backupFile LIKE '%.DIF'
    AND backupFile > @lastFullBackup
    -- check to make sure there is a diff backup
    IF @lastDiffBackup IS NOT NULL
    BEGIN
    SET @cmd = 'RESTORE DATABASE ' + @dbName + ' FROM DISK = '''
    + @backupPath + @lastDiffBackup + ''' WITH NORECOVERY'
    PRINT @cmd
    SET @lastFullBackup = @lastDiffBackup
    END
    -- 5 - check for log backups
    DECLARE backupFiles CURSOR FOR
    SELECT backupFile
    FROM @fileList
    WHERE backupFile LIKE '%.TRN'
    AND backupFile > @lastFullBackup
    OPEN backupFiles
    -- Loop through all the files for the database
    FETCH NEXT FROM backupFiles INTO @backupFile
    WHILE @@FETCH_STATUS = 0
    BEGIN
    SET @cmd = 'RESTORE LOG ' + @dbName + ' FROM DISK = '''
    + @backupPath + @backupFile + ''' WITH NORECOVERY'
    PRINT @cmd
    FETCH NEXT FROM backupFiles INTO @backupFile
    END
    CLOSE backupFiles
    DEALLOCATE backupFiles
    -- 6 - put database in a useable state
    SET @cmd = 'RESTORE DATABASE ' + @dbName + ' WITH RECOVERY'
    PRINT @cmd

  • 相关阅读:
    电路原理图基本知识概述(转)
    数字电路笔记
    模拟电路笔记
    ROS笔记一
    STM32笔记三
    电子元件笔记
    STM32笔记二
    C语言相关知识
    利用sql报错帮助进行sql注入
    kali下纯文本与窗口环境切换
  • 原文地址:https://www.cnblogs.com/qanholas/p/2128029.html
Copyright © 2020-2023  润新知