SQL Server支持三种备份方式

  • 完全备份;
  • 差异备份
  • 事务日志备份

一般备份方式为,完全备份/每周,差异备份/每天,事务日志备份/按分钟计,这样可确保备份的高效性和可恢复性。

1. 完全备份

  • 备份脚本
BACKUP DATABASE PCT TO DISK ='D:\Company\Data\SQL Server\Backup\PCT.bak';
  • 还原备份
RESTORE DATABASE PCT
FROM DISK = 'D:\Company\Data\SQL Server\Backup\PCT.bak'
WITH RECOVERY;

2. 差异备份

  • 备份脚本
BACKUP DATABASE PCT TO DISK = 'D:\Company\Data\SQL Server\Backup\PCT_Differential.bak' WITH DIFFERENTIAL;
GO
  • 还原备份

在SQL Server中还原差异备份,需要先还原在差异备份时间点之前的一个完整备份,在还原完整备份时要加上NORECOVERY参数,SQL语句如下:

RESTORE DATABASE PCT
FROM DISK = 'D:\Company\Data\SQL Server\Backup\PCT.bak'
WITH FILE = 1,
NOUNLOAD,
STATS = 10,
NORECOVERY
GO

  还原差异备份时,如果只有一个差异备份文件需要还原,无需使用NORECOVERY参数,SQL语句如下:

RESTORE DATABASE PCT
FROM DISK = 'D:\Company\Data\SQL Server\Backup\PCT_Differential.bak'
WITH FILE = 1,
NOUNLOAD,
STATS = 10
GO

  如果有多个差异备份文件需要还原,除了最后一个差异备份文件,其他都需要加上NORECOVERY参数

事务日志备份

  • 事务日志备份
BACKUP LOG PCT TO DISK ='D:\Company\Data\SQL Server\Backup\PCT_Log.bak';
  • 尾日志备份
BACKUP LOG PCT TO DISK ='D:\Company\Data\SQL Server\Backup\PCT_TailLog.bak' WITH NORECOVERY;
  • 完整恢复到失败点
USE master;
BACKUP DATABASE PCT
TO DISK ='D:\Company\Data\SQL Server\Backup\PCT.bak'
WITH INIT;
GO -- Perform a transaction log backup of the Test database
BACKUP Log PCT
TO DISK ='D:\Company\Data\SQL Server\Backup\PCT_log.bak'
WITH INIT;
GO -- ....<FAILURE OCCURS HERE>.... -- Back up the tail of the log to prepare for restore
BACKUP Log PCT
TO DISK ='D:\Company\Data\SQL Server\Backup\PCT_taillog.bak'
WITH NORECOVERY, INIT;
GO -- Restore the full backup
RESTORE DATABASE PCT
FROM DISK = 'D:\Company\Data\SQL Server\Backup\PCT.bak'
WITH NORECOVERY; -- Apply the transaction log backup
RESTORE LOG PCT
FROM DISK = 'D:\Company\Data\SQL Server\Backup\PCT_log.bak'
WITH NORECOVERY; -- Apply the tail log backup
RESTORE LOG PCT
FROM DISK = 'D:\Company\Data\SQL Server\Backup\PCT_taillog.bak'
WITH NORECOVERY; -- Recover the database
RESTORE DATABASE PCT
WITH RECOVERY;
GO
  • 恢复到上次正确日志备份的时间点
-- FULL BACKUP at 2:00 AM
USE master ;
BACKUP DATABASE PCT
TO DISK = 'D:\Company\Data\SQL Server\Backup\PCT.bak'
WITH INIT ;
GO -- LOG BACKUP 1 at 2:15 AM
USE master ;
BACKUP LOG PCT
TO DISK = 'D:\Company\Data\SQL Server\Backup\PCT_log.bak'
WITH INIT ;
GO -- LOG BACKUP 2 at 2:30 AM
USE master ;
BACKUP LOG PCT
TO DISK = 'D:\Company\Data\SQL Server\Backup\PCT_log2.bak'
WITH INIT ;
GO --有时候很遗憾,不能进行完整恢复:例如由于灾难当前事务日志不可用。这样的话,我们会需要还原数据库导最近日志备份的末尾
--如果灾难性故障发生在上午2:30,我们将需要恢复数据库到上午2:30的尾日志备份状态。
--因为不能进行尾日志备份,我们只能恢复到特定点,我们要使用STOPAT选项。 --RESTORE Full backup
RESTORE DATABASE PCT
FROM DISK = 'D:\Company\Data\SQL Server\Backup\PCT.bak'
WITH NORECOVERY; --RESTORE Log file 1
RESTORE LOG PCT
FROM DISK = 'D:\Company\Data\SQL Server\Backup\PCT_log.bak'
WITH NORECOVERY, STOPAT = 'Jan 01, 2020 12:00 AM'; --RESTORE Log file 2
RESTORE LOG PCT
FROM DISK = 'D:\Company\Data\SQL Server\Backup\PCT_Log2.bak'
WITH NORECOVERY, STOPAT = 'Jan 01, 2020 12:00 AM'; --Recover the database
RESTORE DATABASE PCT
WITH RECOVERY;
GO

SQL Server 备份还原的更多相关文章

  1. SQL点滴12—SQL Server备份还原数据库中的小把戏

    原文:SQL点滴12-SQL Server备份还原数据库中的小把戏 备份数据库时出现一个不太了解的错误 ,错误信息“is formatted to support  1 media families, ...

  2. Sql Server 备份还原失败错误ERROR:3145(备份集中的数据库备份与现有的数据库不同)及解决办法

    SQL Server备份文件bak,备份后还原出现错误3145,备份集中的数据库备份与现有的 'xxx' 数据库不同. 解决办法如下: 1,新建一个与现有数据库重名的数据库. 如果您不知道数据库名称, ...

  3. Sql server 备份还原后出现“受限制用户”问题

    http://jingyan.baidu.com/article/eb9f7b6dcbf1ea869264e856.html SQL数据库作备份和还原操作几乎是日常性事务了.但某次在对Sql Serv ...

  4. SQL Server备份还原数据库中的小把戏

    备份数据库时出现一个不太了解的错误 ,错误信息“is formatted to support  1 media families, but 2 media families are expected ...

  5. Sql server 备份还原后出现“受限制用户”问题

    SQL数据库作备份和还原操作几乎是日常性事务了.但某次在对Sql Server 2005 数据库做备份还原后经常出现数据库“受限制用户”的问题 工具/原料 Windows OS SQL DB 步骤/方 ...

  6. sql server备份还原数据时的问题记录

    1.关于“因为数据库正在使用,所以无法获得对数据库的独占访问权”的最终解决方案 关键SQL语句: ALTER DATABASE [datebase] SET OFFLINE WITH ROLLBACK ...

  7. 【数据库】Sql Server备份还原脚本

    USE master RESTORE DATABASE 新建的没有任何数据的数据库名 FROM DISK = 'e:\数据库备份文件.bak' WITH MOVE '原来的逻辑名称' TO 'e:\新 ...

  8. 17、SQL Server 备份和还原

    SQL Server 备份 恢复模式 SQL Server 数据恢复模式分为三种:完整恢复模式.大容量日志恢复模式.简单恢复模式. 完整恢复模式 默认的恢复模式,它会完整记录下操作数据库的每一个步骤, ...

  9. SQL Server 备份和还原

    SQL Server 备份和还原   SQL Server 备份 恢复模式 SQL Server 数据恢复模式分为三种:完整恢复模式.大容量日志恢复模式.简单恢复模式. 完整恢复模式 默认的恢复模式, ...

随机推荐

  1. LOJ #6270. 数据结构板子题 (离线+树状数组)

    题意 有 \(n\) 个区间,第 \(i\) 个区间是 \([l_i,r_i]\) ,它的长度是 \(r_i-l_i\) . 有 \(q\) 个询问,每个询问给定 \(L,R,K\) ,询问被 \([ ...

  2. 自学Linux Shell8.2-linux逻辑卷LVM管理

    点击返回 自学Linux命令行与Shell脚本之路 8.2-linux逻辑卷LVM管理 Linux逻辑卷管理器软件包用来通过将另外一个硬盘上的分区加入已有文件系统,动态地添加存储空间. 1. 逻辑卷L ...

  3. 【洛谷P3586】LOG

    题目大意:维护一个集合,支持单点修改.查询小于 X 的数的个数.查询小于 X 的数的和. 题解:学习到了动态开点线段树.对于一棵未经离散化的权值线段树来说,对于静态开点来说,过大的值域会导致不能承受的 ...

  4. 费马定理&欧拉定理

    费马定理: ap≡a(mod p) 其中p为质数,且a不是p的倍数 证明: ..... 欧拉定理: aφ(p)≡1(mod p) φ(x)(欧拉函数)为小于等于x且与x互质的数的个数 φ(x)=∏(p ...

  5. vi怎么查找关键字

    进入vi的命令模式,具体操作:编辑模式下键入“:”,此时进入命令模式 在命令模式下键入“/”.

  6. VS 2010解决方案添加头文件和动态库

    右键点击项目,选择“properties”, Additional include references:头文件路径,分号隔开. Additional library directories:

  7. 不跳转修改url(history.pushState)

    有时候我们会想不跳转的情况下修改url 直接上代码吧: history.pushState(null,"","?test=123") 值得注意的是,为了用户安全 ...

  8. MySQL_异常

    问题1 描述:在连接MYSQL数据库时出现问题:“ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’ (10061)” 分 ...

  9. python自动化运维之路~DAY8

    python自动化运维之路~DAY8 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.线程进程介绍 为了方便我们队线程和进程的理解,我们来画2组图,方便我们对python中的线程 ...

  10. Python基础【day02】:元组和购物车练习的知识点

    一.元组 元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表 用途:一般情况下用于自己写的程序能存下数据,但是又希望这些数据不会被改变,比如:数据库连接信息等 1.元 ...