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. Python基础之控制流

    介绍一些Python的基本的东西,你会发现,Python真的很简单.我也尽可能说得简单一些,因为我理解的也很简单. 在到目前为止我们所见到的程序中,总是有一系列的语句,Python忠实地按照它们的顺序 ...

  2. UOJ#7. 【NOI2014】购票 | 线段树 凸包优化DP

    题目链接 UOJ #7 题解 首先这一定是DP!可以写出: \[f[i] = \min_{ancestor\ j} \{f[j] + (d[j] - d[i]) * p[i] + q[i]\}\] 其 ...

  3. 小trick总结

    一个圆上的整点数量不会很多.(Cf AIM TR 5 F) 二分图完美匹配求字典序最小的方案:先一遍匈牙利求出任意一组完美匹配.再跑一遍逐位确定,要求不能修改编号比它小的匹配.(LG 4100) 如果 ...

  4. Problem C: 文体双花 解题报告

    Problem C: 文体双花 被A穿的题,我这个屑只拿了20... 意识到这个题简单的时候考试已经快结束了,那边又各种吵,不过下午改题的情况来看,我可能码力还有点问题... 据神O所说,出这个题的时 ...

  5. 【codeforces 335E】 Counting Skyscrapers

    http://codeforces.com/problemset/problem/335/E (题目链接) 题意 懒得写了= = Solution 这题咋不上天= =. 参考题解:http://blo ...

  6. requests+beautifulsoup爬取豆瓣图书

    使用Xpath和BeautifulSoup来解析网页可以说真的很简便. import requests from bs4 import BeautifulSoup from random import ...

  7. [bzoj4709][柠檬]

    bzoj4709 思路 首先,最优秀的分法一定是每段两端都是这一段中最多的那个,否则可以把不是的那个踢出去单独成段肯定会更优秀.然后就成了将这个序列分段,保证每段两端元素相同的最大收益和. 用a[i] ...

  8. ReactNative快速入门

    首先放图 这就是我通过简单的搭建环境写出的helloworld和使用的button组件. 那么搭建环境如何搭建呢? 使用的软件有:Node 最新版,Python2.7,Android环境要有配置And ...

  9. Golang面向API编程-interface(接口)

    Golang面向API编程-interface(接口) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Golang并不是一种典型的面向对象编程(Object Oriented Pr ...

  10. 无法使用备份文件 'D:\20160512.bak',因为原先格式化该文件时所用扇区大小为 512,而目前所在设备的扇区大小为 4096

    删除原先备份的记录 这里再加一条,如果你备份的文件还原有兼容性的问题,那就用低版本的sql做备份,这样的话哪里都能用