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