SQL server 数据库备份

备份操作限制

可以在数据库在线并且正在使用时进行备份。 但是,存在下列限制。

并发限制

SQL Server 可以使用联机备份过程来备份数据库。 在备份过程中,可以进行多个操作;例如:在执行备份操作期间允许使用 INSERT、UPDATE 或 DELETE 语句。 但是,如果在正在创建或删除数据库文件时尝试启动备份操作,则备份操作将等待,直到创建或删除操作完成或者备份超时。

在数据库备份或事务日志备份的过程中无法执行的操作包括:

  • 文件管理操作,如含有 ADD FILE 或 REMOVE FILE 选项的 ALTER DATABASE 语句。
  • 收缩数据库或文件操作。 这包括自动收缩操作。
  • 如果在进行备份操作时尝试创建或删除数据库文件,则创建或删除操作将失败。

如果备份操作与文件管理操作或收缩操作重叠,则产生冲突。 无论哪个冲突操作首先开始,第二个操作总会等待第一个操作设置的锁超时。(超时期限由会话超时设置控制。)如果在超时期限内释放锁,第二个操作将继续执行。 如果锁超时,则第二个操作失败。

无法备份脱机数据

隐式或显式引用脱机数据的任何备份操作都会失败。 一些典型示例包括:

  • 您请求完整数据库备份,但是数据库的一个文件组脱机。 由于所有文件组都隐式包含在完整数据库备份中,因此,此操作将会失败。

    若要备份此数据库,可以使用文件备份并仅指定联机的文件组。

  • 请求部分备份,但是有一个读/写文件组处于脱机状态。 由于部分备份需要使用所有读/写文件组,因此该操作失败。
  • 请求特定文件的文件备份,但是其中有一个文件处于脱机状态。 该操作失败。 若要备份联机文件,可以省略文件列表中的脱机文件并重复该操作。

通常,即使一个或多个数据文件不可用,日志备份也会成功。 但如果某个文件包含大容量日志恢复模式下所做的大容量日志更改,则所有文件都必须都处于联机状态才能成功备份。

限制和局限

  • 不允许在显式或隐式事务中使用 BACKUP 语句。
  • 无法在早期版本的 SQL Server 中还原较新版本的 SQL Server创建的备份。
  • 有关备份概念和任务的概述和详细信息,请在继续操作前先参阅备份概述 (SQL Server)

建议

  • 随着数据库不断增大,完整数据库备份的完成时间会延长,并且需要占用更多存储空间。 对于大型数据库,请考虑用一系列差异数据库备份来补充完整数据库备份。 有关详细信息,请参阅 SQL Server Backup to URL
  • 使用 sp_spaceused 系统存储过程估计完整数据库备份的大小。
  • 默认情况下,每个成功的备份操作都会在 SQL Server 错误日志和系统事件日志中添加一个条目。 若频繁备份,这些成功消息会迅速累积,从而生成巨大的错误日志! 这会使查找其他消息变得非常困难。 在这些情况下,如果脚本均不依赖于这些备份日志条目,则可使用跟踪标志 3226 取消这些条目。 有关详细信息,请参阅跟踪标志 (Transact-SQL)

Security

针对数据库备份,TRUSTWORTHY 设置为 OFF。 有关如何将 TRUSTWORTHY 设置为 ON 的详细信息,请参阅 ALTER DATABASE SET 选项 (Transact-SQL)

从 SQL Server 2012 (11.x) 开始, PASSWORD 和 MEDIAPASSWORD 选项不再可用于创建备份。 不过,您仍可以还原使用密码创建的备份。

权限

默认情况下,为 sysadmin 固定服务器角色以及 db_owner 和 db_backupoperator 固定数据库角色的成员授予 BACKUP DATABASE 和 BACKUP LOG 权限。

备份设备的物理文件的所有权和权限问题可能会妨碍备份操作。 SQL Server 必须能够读取和写入设备;运行 SQL Server 服务的帐户 必须 具有写入权限。 但是,用于在系统表中为备份设备添加项目的 sp_addumpdevice不检查文件访问权限。 备份设备物理文件的这些问题可能直到为备份或还原而访问物理资源时才会出现。

使用 SQL Server Management Studio

使用 SQL Server Management Studio 指定备份任务时,可以通过单击“脚本” 按钮并选择脚本目标生成相应的 Transact-SQL BACKUP 脚本。

原文地址:https://www.cnblogs.com/little-wu/p/11196490.html

时间: 2024-11-29 07:01:27

SQL server 数据库备份的相关文章

SQL server数据库备份还原问题备忘(亲测有效)

问题一:SQL server数据库备份还原方法 http://www.cnblogs.com/zgqys1980/archive/2012/07/04/2576382.html 问题二:无法执行 BACKUP LOG,因为当前没有数据库备份 http://blog.csdn.net/aojiancc2/article/details/46316451 问题三:还原数据库失败 备份集中数据库备份与现有数据库不同 http://jingyan.baidu.com/article/fb48e8be52

SQL Server数据库备份:通过Windows批处理命令执行

通过Windows批处理命令执行SQL Server数据库备份 建立mybackup.bat ,输入以下内容直接运行该脚本,即可开始自动备份数据库也可把该脚本加入windows任务计划里执行. ----------------------------------------------------------------------------@echo off set path=%path%;C:Program Files\Microsoft SQL Server\80\Tools\Binn

SQL Server数据库备份(本机)

基础的SQL Server数据库备份存储过程 /****************************************************************************************************** ** 功能:本机备份数据库 ** 作者:Danny,Li ** 日期:2012-11-05 ** --------------------------------------------------------------------------

在.Net中进行SQL Server数据库备份与还原操作实用类

#region 类说明 //----------------------------------------------------------------------------- // // 项目名称:*** // 文件名称:DBBakManager.cs // 文件说明:对数据库备份文件进行管理.提供备份.还原.备份文件管理操作. // // 开始日期:2007年04月04日 // 开发人员:*** // //----------------------------------------

SQL SERVER 数据库备份的三种策略及语句

1.全量数据备份    备份整个数据库,恢复时恢复所有.优点是简单,缺点是数据量太大,非常耗时 全数据库备份因为容易实施,被许多系统优先采用.在一天或一周中预定的时间进行全数据库备份使你不用动什么脑筋.使用这种类型的备份带来的问题是非常缺乏灵活性,而且当数据库被冲掉后,你面临丢失大量数据的潜在威胁.例如,假设你每天在午夜备份数据库. 如果服务器在晚上11点崩溃了,你将丢失前面23个小时对数据所做的全部修改.对大多数系统来说,这是无法接受的.对此规则,为数不多的例外如下: 1.系统中所存的数据可以

SQL Server数据库备份恢复(Simple Recovery Model和Full Recovery Model)(链接)

下面这篇微软文档,介绍了SQL Server数据库在Simple Recovery Model下的备份和恢复机制: Complete Database Restores (Simple Recovery Model) 下面这篇微软文档,介绍了SQL Server数据库在Full Recovery Model下的备份和恢复机制: Complete Database Restores (Full Recovery Model) 原文地址:https://www.cnblogs.com/OpenCod

SQL Server 数据库备份与还原

1.相同SQL Server版本(2008为例)之间数据库备份与还原 (1)数据库备份 相同SQL Server服务器版本之间数据库的备份还原操作相对来说比较简单. 首先找到需要备份的数据库实例,[右键]->[任务]->[备份...],界面下边选择备份路径,点击确定,备份成功后即可在选择的备份路径下找到后缀名为.bak的备份文件. (2)数据库还原 对于需要还原的.bak数据库文件,一般会先拷贝到 C:\Program Files\Microsoft SQL Server\MSSQL10.MS

SQL Server 数据库备份策略,第一周运行失败的原因

一般生产库,采用 每10分钟备份Log,每天备份Diff,每周备份Full的策略. 同时存在异地备份.异地备份可使用SQL Server本身的cmdshell存储过程,调用系统命令. 在为新数据库,建立备份策略后,往往日志开始首先备份. 这时,若新库之前没有Full备份,则Log备份,Diff备份均失败.Diff和Log备份都依赖于完整备份,而一个新库是没有完整备份的. 所以策略运行第一周会失败. 为了避免这个问题,要手工运行下Full备份. 新库,若没备份过,如下图.

sql server 数据库备份说明

Sql server 设置完整备份,差异备份说明 在数据库管理器中,选择要备份的数据库,右键找到“备份” 然后可以按照备份的方式进行备份. 关于文件的还原,作以下补充说明: 步骤为: 1.在需要还原的数据库上右键选择如图 2.在“常规”选项中点击“源设备”选取磁盘上备份好的.bak文件后,勾上“还原”选项的勾 3.在“选项”页面中,勾选上“覆盖现有数据库”,恢复状态,选择第一个“回滚未提交的事务....”,其中在“行数据”和“日志”两个数据行中,务必查看“还原为”的路径是否指向了你需要还原的数据