SQL Server使用sql语句来进行备份和还原

108 阅读1分钟

SQL Sever 备份和还原

一、备份操作

  1. 完整备份(Full Backup)
    ●说明:
    ○WITH INIT:覆盖现有备份文件(若存在)。
    ○STATS = 10:显示每完成 10% 的进度。
    ○NAME:备份集的名称。
  2. 差异备份(Differential Backup)
    ●说明:
    ○WITH DIFFERENTIAL:表示差异备份(仅备份自上次完整备份后的变化)。
  3. 设置备份间隔时间(通过 SQL Server 代理作业)
    需使用 SQL Server 代理创建定时任务。以下是创建每日完整备份和每小时差异备份的示例:
    步骤 1:创建每日完整备份作业
    步骤 2:创建每小时差异备份作业
    二、还原操作
  4. 从完整备份还原
RESTORE DATABASE [YourDatabaseName]

FROM DISK = N'D:\Backup\YourDatabaseName_Full.bak'

WITH REPLACE, RECOVERY, STATS = 10;

●说明:
○WITH REPLACE:覆盖现有数据库。
○RECOVERY:使数据库处于可用状态(后续无法还原其他备份)。
2. 从完整备份 + 差异备份还原

-- 步骤 1:还原完整备份(保持 NORECOVERY 状态)

RESTORE DATABASE [YourDatabaseName]

FROM DISK = N'D:\Backup\YourDatabaseName_Full.bak'

WITH REPLACE, NORECOVERY, STATS = 10;

-- 步骤 2:还原差异备份(最后一步使用 RECOVERY)

RESTORE DATABASE [YourDatabaseName]

FROM DISK = N'D:\Backup\YourDatabaseName_Diff.bak'

WITH RECOVERY, STATS = 10;

●说明:
○NORECOVERY:允许后续继续还原差异或日志备份。
○最后一次还原需使用 RECOVERY 使数据库可用。
三、注意事项
1权限:执行备份/还原的用户需具有 sysadmin 或 db_backupoperator 角色权限。
2路径检查:确保备份文件路径存在且可写。
数据库占用:还原时需断开其他连接,或使用以下语句强制断开:
3sql复制下载ALTER DATABASE [YourDatabaseName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
4时间点还原:如需更细粒度恢复,需结合事务日志备份(需使用 WITH STANDBY 或 NORECOVERY)。