服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Sql Server - 如何恢复数据库备份到一个已存在的正在使用的数据库上

如何恢复数据库备份到一个已存在的正在使用的数据库上

2019-10-25 15:29mssql教程网 Sql Server

如何恢复数据库备份到一个已存在的正在使用的数据库上

  1. USE master  -- (Can’t sit in the database whilst its being restored!)  
  2. GO  
  3.  
  4. ALTER DATABASE MyDatabase SET SINGLE_USER WITH ROLLBACK IMMEDIATE  
  5. GO  
  6.  
  7. -- Restore Full Backup  
  8. RESTORE DATABASE MyDatabase  
  9.  FROM DISK = ’x:\MSSQL\BACKUP\MyBackupFilename_Full.BAK’  
  10.  WITH  
  11.    REPLACE,  
  12.    NORECOVERY,  -- Use if more T/Logs to recover  
  13. --    RECOVERY,  -- Use if NO more T/Logs to recover  
  14.    STATS = 10,  -- Show progress (every 10%)  
  15.  MOVE ’MyDatabase_Data’ TO ’x:\MSSQL\DATA\MyDatabase.mdf’,   
  16.  MOVE ’MyDatabase_Log’ TO ’x:\MSSQL\DATA\MyDatabase.ldf’  
  17. GO  
  18.  
  19. -- Optional restore Differential Backup  
  20. RESTORE DATABASE MyDatabase  
  21.  FROM DISK = ’x:\MSSQL\BACKUP\MyDatabase_Diff.BAK’  
  22.  WITH  
  23. --    RECOVERY  -- Use if NO more file to recover  
  24.    NORECOVERY  -- Use if there are T/Logs to recover  
  25. GO  
  26.  
  27. -- Optional restore Transaction Log Backup  
  28. RESTORE DATABASE MyDatabase  
  29.  FROM DISK = ’x:\MSSQL\BACKUP\MyDatabase_yyyymmdd_hhmm_Trans.BAK’  
  30.  WITH  
  31. --    RECOVERY  -- Use if NO more T/Logs to recover  
  32.    NORECOVERY  -- Use if more T/Logs to recover  
  33. GO  
  34.  
  35. -- Set the database ready for use (after all backups have been restored)  
  36. RESTORE DATABASE MyDatabase RECOVERY  
  37. GO  
  38.  
  39. -- Rename logical names (only needed if restoring from a backup for a Different database):  
  40. ALTER DATABASE MyDatabase   
  41.    MODIFY FILE (NAME = ’OrigDatabase_Data’, NEWNAME = ’MyDatabase_data’)  
  42. GO  
  43. ALTER DATABASE MyDatabase   
  44.    MODIFY FILE (NAME = ’OrigDatabase_Log’, NEWNAME = ’MyDatabase_log’)  
  45. GO 

延伸 · 阅读

精彩推荐