公众号推荐
微信公众号搜"智元新知" 关注 微信扫一扫可直接关注哦!
自动定时备份sqlserver数据库的方法
下面是我已经证实可用的自动备份 的方法 . 1、打开企业管理器->管理->sql server代理 2、新建一个 作业,作业名称 随便取,例如:data备份,所有者选择sa,当然你也可以选择其他用户 ,前提是该用户 有执行作业的权限; 3、点击步骤标签 ,进入步骤面板.新建步骤,步骤名可以随便填写,如步骤1,类型和数据库 默 认,不需要修改 .命令中写入以下语句: BACKUP DATABASE [数据库 名] TO dis K = N'F:\databack\firenews备份' WITH NOINIT,NOUNLOAD,NAME = N'firenews备份',NOSKIP,STATS = 10,NOFORMAT 注意:需要修改 的地方,数据库 名,dis K=(这里需要填写路径和你的数据库 备份的名称 )后面的Name=可以随便填写. 4、点击调度标签 ,进入调度面板,新建调度,名称 随便填写,选择反复出现,点更改可以选择你想要执行任务的随意调度.如每天,每2天,每星期,每月等.根据需要自己设置;(注意:在调度名称 后面有个启动选项,必须勾选) 5、确定后,不要忘记一件事情,在你刚才建立的工作上点右键,启动工作,如果你的工作没有问题,将会提示 执行成功,并有相对应的备份文件 在你的磁盘上出现; 6、还有一个 重要的问题就是你的sql server agent服务器已经启动. 如果我们需要根据每天的日期来生成 一个 新的备份,以便我们区别备份文件 .这时,我们需要修改 一下刚才的sql 语句. 参考实例: 1、自动备份 ,固定备份名,每次会追加备份 <div class="codetitle"><a style="CURSOR: pointer" data="97257" class="copybut" id="copybut97257" onclick="doCopy('code97257')"> 代码 如下:
<div class="codebody" id="code97257">
backup database FireNews to
dis k=N'F:\databack\firenews备份' with noinit,nounload,name=N'firenews备份',noskip,stats=10,noformat
backup database fireweb to
dis k=N'F:\backup\data\fireweb\fireweb备份' with noinit,name=N'fireweb备份',noformat
2、
自动备份 ,以时间命名,完整备份
<div class="codetitle">
<a style="CURSOR: pointer" data="88971" class="copybut" id="copybut88971" onclick="doCopy('code88971')"> 代码 如下:
<div class="codebody" id="code88971">
declare @filename nvarchar(100) set @filename='F:\databack\data'+convert(char(8),getdate(),112)+'.bak' print @filename BACKUP DATABASE [firenews] TO
dis K = @filename WITH NOINIT,NOFORMAT
declare @filename nvarchar(100) set @filename='F:\backup\data\fireweb\fireweb'+convert(char(8),112)+'.bak' print @filename BACKUP DATABASE [fireweb] TO
dis K = @filename WITH NOINIT,NAME = N'fireweb备份',NOFORMAT
注:
1、备份的
数据库 存放的
文件 夹必须已经存在;
2、N 必须大写;
3、NAME的值可以随便写;
4、FireNews,fireweb为
数据库 名;
5、新建作业时
提示 :未能找到存储过程master.dbo.xp_regread,表名master
数据库 没有这个存储过程(可能是做安全处理的时候
删除 了),需自己
注册 。
方法 是:找到
数据库 ——
master——扩展存储过程,右键“新建扩展存储过程”(
名称 :xp_regread,路径直接填:xpstar.dll)
以下为完整的备份
数据库 的
方法 :
备份整个
数据库 :
<div class="codetitle">
<a style="CURSOR: pointer" data="66945" class="copybut" id="copybut66945" onclick="doCopy('code66945')"> 代码 如下:
<div class="codebody" id="code66945">
BACKUP DATABASE { database_name | @database_name_var }
TO < backup_device > [,...n ]
[ WITH
[ BLOCKSIZE = { blocksize | @blocksize_variable } ]
[ [,] DESCRIPTION = { 'text' | @text_variable } ]
[ [,] DIFFERENTIAL ]
[ [,] EXPIREDATE = { date | @date_var }
| RETAINDAYS = { days | @days_var } ]
[ [,] PASSWORD = { password | @password_variable } ]
[ [,] FORMAT | NOFORMAT ]
[ [,] { INIT | NOINIT } ]
[ [,] MEDIADESCRIPTION = { 'text' | @text_variable } ]
[ [,] MEDIANAME = { media_name | @media_name_variable } ]
[ [,] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ]
[ [,] NAME = { backup_set_name | @backup_set_name_var } ]
[ [,] { NOSKIP | SKIP } ]
[ [,] {
nor EWIND | REWIND } ]
[ [,] { NOUNLOAD | UNLOAD } ]
[ [,] RESTART ]
[ [,] STATS [ = percentage ] ]
]
参数
DATABASE
指定
一个 完整的
数据库 备份。假如指定了
一个 文件 和
文件 组的列表,那么仅有这些被指定的
文件 和
文件 组被备份。
说明 在进行完整
数据库 备份或差异
数据库 备份时,Microsoft®
sql Server™ 备份足够的事务日志,以
生成 一个 将在还原
数据库 时使用的一致的
数据库 。在 master
数据库 上只能采用完整
数据库 备份。 { database_name | @database_name_var }
指定了
一个 数据库 ,从该
数据库 中对事务日志、部分
数据库 或完整的
数据库 进行备份。如果作为变量 (@database_name_var) 提供,则可将该
名称 指定为字符串常量 (@database_name_var = database name) 或字符串数据类型(ntext 或 text 数据类型除外)的变量。
< backup_device >
指定备份操作时要使用的逻辑或物理备份设备。可以是下列一种或多种形式:
{ logical_backup_device_name } | { @logical_backup_device_name_var }
是由 sp_addumpdevice 创建的备份设备的逻辑
名称 ,
数据库 将备份到该设备中,其
名称 必须遵守标识符规则。如果将其作为变量 (@logical_backup_device_name_var) 提供,则可将该备份设备
名称 指定为字符串常量 (@logical_backup_device_name_var = logical backup device name) 或字符串数据类型(ntext 或 text 数据类型除外)的变量。
{
dis K | TAPE } =
'physical_backup_device_name' | @physical_backup_device_name_var
允许在指定的磁盘或磁带设备上创建备份。在执行 BACKUP 语句之前不必存在指定的物理设备。如果存在物理设备且 BACKUP 语句中没有指定 INIT 选项,则备份将追加到该设备。
当指定 TO
dis K 或 TO TAPE 时,请输入完整路径和
文件 名。例如,
dis K = 'C:\Program Files\Microsoft
sql Server\MS
sql \BACKUP\Mybackup.dat' 或 TAPE = '\.\TAPE0'。 说明 对于备份到磁盘的情况,如果输入
一个 相对路径名,备份
文件 将存储到
默 认的备份目录中。该目录在安装时被设置并且存储在 KEY_LOCAL_MACHINE\Software\Microsoft\MS
sql Server\MS
sql Server 目录下的 BackupDirectory
注册 表键值中。
如果使用的是具有统一命名规则 (UNC)
名称 的网络服务器或已重新定向的驱动器号,则请指定磁盘的设备类型。
当指定多个
文件 时,可以混合逻辑
文件 名(或变量)和物理
文件 名(或变量)。但是,所有的设备都必须为同一类型(磁盘、磁带或管道)。
Windows 98
不支持 备份到磁盘。 是表示可以指定多个备份设备的占位符。备份设备数目的上限为 64。
BLOCKSIZE = { blocksize | @blocksize_variable }
用字节数来指定物理块的大小。在 Windows NT 系统上,
默 认设置是设备的
默 认块大小。一般情况下,当
sql Server 选择适合于设备的块大小时不需要此参数。在基于 Windows 2000 的计算机上,
默 认设置是 65,536(64 KB,是
sql Server
支持 的最大大小)。
对于磁盘,BACKUP
自动 决定磁盘设备合适的块大小。
说明 如果要将结果备份集存储到 CD-ROM 中然后从 CD-ROM 中恢复,请将 BLOCKSIZE 设为 2048。 磁带的
默 认 BLOCKSIZE 为 65,536 (64 KB)。显式声明块大小将替代
sql Server 选择的块大小。
DESCRIPTION = { 'text' | @text_variable }
指定描述备份集的自由格式文本。该字符串最长可以有 255 个字符。
DIFFERENTIAL
指定
数据库 备份或
文件 备份应该与上一次完整备份后改变的
数据库 或
文件 部分保持一致。差异备份一般会比完整备份占用更少的空间。对于上一次完整备份时备份的全部单个日志,使用该选项可以不必再进行备份。有关更多信息,请参见差异
数据库 备份和
文件 差异备份。
说明 在进行完整
数据库 备份或差异备份时,
sql Server 备份足够的事务日志,从而在恢复
数据库 时
生成 一个 一致的
数据库 。 EXPIREDATE = { date | @date_var }
指定备份集到期和允许被重写的日期。如果将该日期作为变量 (@date_var) 提供,则可以将该日期指定为字符串常量 (@date_var = date)、字符串数据类型变量(ntext 或 text 数据类型除外)、smalldatetime 或者 datetime 变量,并且该日期必须符合已配置的系统 datetime 格式。
RETAINDAYS = { days | @days_var }
指定必须经过多少天才可以重写该备份媒体集。假如用变量 (@days_var) 指定,该变量必须为整型。
重要 假如 EXPIREDATE 或 RETAINDAYS 没有指定,有效期将取决于 sp_con
fig ure 的 media retention 配置设置。这些选项仅仅阻止
sql Server 重写
文件 。用其它
方法 可擦除磁带,而通过操作系统可以
删除 磁盘
文件 。有关过期验证的更多信息,请参见本
主题 的 SKIP 和 FORMAT。 PASSWORD = { password | @password_variable }
为备份集设置密码。 PASSWORD 是
一个 字符串。如果为备份集定义了密码,必须提供这个密码才能对该备份集执行任何还原操作。
重要 备份集密码防止未经授权即通过
sql Server 2000 工具访问备份集的
内容 ,但是不能防止重写备份集。 有关使用密码的更多信息,请参见"权限"部分。
FORMAT
指定应将媒体头写入用于此备份操作的所有卷。任何现有的媒体头都被重写。FORMAT 选项使整个媒体
内容 无效,并且忽略任何现有的
内容 。
重要 使用 FORMAT 要谨慎。格式化
一个 备份设备或媒体将使整个媒体集不可用。例如,如果初始化现有条带备份集中的单个磁带,则整个备份集都将变得不可用。 通过指定 FORMAT,备份操作也就暗示了 SKIP 和 INIT;这些都不必显式说明。
NOFORMAT
指定媒体头不应写入所有用于该备份操作的卷中,并且不要重写该备份设备除非指定了 INIT。
INIT
指定应重写所有备份集,但是保留媒体头。如果指定了 INIT,将重写那个设备上的所有现有的备份集数据。
当遇到以下几种情况之一时不重写备份媒体:
媒体上的备份设置没有全部过期。有关更多信息,请参见 EXPIREDATE 和 RETAINDAYS 选项。 如果 BACKUP 语句给出了备份集名,该备份集名与备份媒体上的
名称 不匹配。有关更多信息,请参见 NAME 子句。
使用 SKIP 选项替代这些检查。有关使用 SKIP、NOSKIP、INIT 和 NOINIT 时的相互作用关系的更多信息,请参见注释部分。
说明 如果备份媒体有密码保护,
sql Server 将不写入媒体,除非提供媒体密码。SKIP 选项不替代此检查。只有通过格式化才能重写受密码保护的媒体。有关更多信息,请参见 FORMAT 选项。 NOINIT
表示备份集将追加到指定的磁盘或磁带设备上,以保留现有的备份集。NOINIT 是
默 认设置。
RESTORE 命令的 FILE 选项用于在还原时选择适当的备份集。有关更多信息,请参见 RESTORE。
如果为媒体集定义了媒体密码,则必须提供密码。
MEDIADESCRIPTION = { text | @text_variable }
指明媒体集的自由格式文本描述,最多为 255 个字符。
MEDIADESCRIPTION = { text | @text_variable }
为整个备份媒体集指明媒体名,最多为 128 个字符。假如指定了 MEDIANAME,则它必须与以前指定的媒体名相匹配,该媒体名已存在于备份卷中。假如没有指定 MEDIANAME,或指定了 SKIP 选项,将不会对媒体名进行验证检查。
MEDIAPASSWORD = { mediapassword | @mediapassword_variable }
为媒体集设置密码。MEDIAPASSWORD 是
一个 字符串。
如果为媒体集定义了密码,则在该媒体集上创建备份集时必须提供此密码。另外,从该媒体集执行任何还原操作时也必须提供媒体密码。只有通过格式化才能重写受密码保护的媒体。有关更多信息,请参见 FORMAT 选项。
有关使用密码的更多信息,请参见"权限"部分。
NAME = { backup_set_name | @backup_set_var }
指定备份集的
名称 。
名称 最长可达 128 个字符。假如没有指定 NAME,它将为空。
nor ECOVERY
只与 BACKUP LOG 一起使用。备份日志尾部并使
数据库 处于正在还原的状态。当将故障转移到辅助
数据库 或在 RESTORE 操作前保存日志尾部时,
nor ECOVERY 很有用。
STANDBY = undo_file_name
只与 BACKUP LOG 一起使用。备份日志尾部并使
数据库 处于只读或备用模式。撤消
文件 名指定了容纳回滚更改的存储,如果随后应用 RESTORE LOG 操作,则必须撤消这些回滚更改。
如果指定的撤消
文件 名不存在,
sql Server 将创建该
文件 。如果该
文件 已存在,则
sql Server 将重写它。有关更多信息,请参见使用备用服务器。
nor EWIND
指定
sql Server 在备份操作完成后使磁带保持打开。
nor EWIND 意即 NOUNLOAD。
sql Server 将保留磁带驱动器的所有权,直到 BACKUP或 RESTORE 命令使用 REWIND 为止。
如果无意中使磁带处于打开状态,则释放磁带的最快
方法 是使用下面的 RESTORE 命令:
RESTORE LABELONLY FROM TAPE =
WITH REWIND通过查询 master 数据库 中的 sysopentapes 表可以查找正在打开的磁带列表。 REWIND 指定 sql Server 将释放磁带和倒带。如果 nor EWIND 和 REWIND 均未指定,则默 认设置为 REWIND。 NOSKIP 指示 BACKUP 语句在可以重写媒体上的所有备份集之前先检查它们的过期日期。 SKIP 禁用备份集过期和名称 检查,这些检查一般由 BACKUP 语句执行以防重写备份集。有关更多信息,请参见注释部分。 NOUNLOAD 指定不在备份后从磁带驱动器中自动 卸载磁带。设置始终为 NOUNLOAD,直到指定 UNLOAD 为止。该选项只用于磁带设备。 UNLOAD 指定在备份完成后自动 倒带并卸载磁带。启动新用户 会话时其默 认设置为 UNLOAD。该设置一直保持到用户 指定了 NOUNLOAD 时为止。该选项只用于磁带设备。 RESTART 指定 sql Server 重新启动一个 被中断的备份操作。因为 RESTART 选项在备份操作被中断处重新启动该操作,所以它节省了时间。若要重新启动一个 特定的备份操作,请重复整个 BACKUP 语句并且加入 RESTART 选项。不一定非要使用 RESTART 选项,但是它可以节省时间。 重要 该选项只用于导向磁带媒体的备份和跨越了多个磁带卷的备份。在备份的第一卷上永远不会有重新启动操作。 STATS [= percentage] 每当另一个 percentage 结束时显示 一条消息,它被用于测量进度。如果省略 percentage,sql Server 将每完成 10 个百分点显示 一条消息。 指定包含在数据库 备份中的文件 或文件 组的逻辑名。可以指定多个文件 或文件 组。 FILE = { logical_file_name | @logical_file_name_var } 给一个 或多个包含在数据库 备份中的文件 命名。 FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var } 给一个 或多个包含在数据库 备份中的文件 组命名。 说明 当数据库 的大小和性能 要求使得进行完整数据库 备份不切实际时,备份一个 文件 。若要单独备份事务日志,请使用 BACKUP LOG。 重要 必须通过使用 BACKUP LOG 提供事务日志的单独备份,才能使用文件 和文件 组备份来恢复数据库 。有关文件 备份的更多信息,请参见备份使用文件 备份。 如果恢复模型为 SIMPLE,则不允许文件 和文件 组备份。 是一个 占位符,表示可以指定多个文件 和文件 组。对文件 或文件 组的最大个数没有限制。 LOG 指定只备份事务日志。该日志是从上一次成功执行了的 LOG 备份到当前日志的末尾。一旦备份日志,可能会截断复制或活动事务不再需要的空间。 说明 假如备份日志看来并没有截断大部分的日志,则有可能在日志中存在一个 旧的开放事务。可以使用 DBCC sql PERF (LOGSPACE) 观察日志空间。有关更多信息,请参见事务日志备份。 NO_LOG | Trunc ATE_ONLY 无须备份复制日志即删除 不活动的日志部分,并且截断日志 。该选项会释放空间。因为并不保存日志备份,所以没有必要指定备份设备。NO_LOG 和 Trunc ATE_ONLY 是同义的。 使用 NO_LOG 或 Trunc ATE_ONLY 备份日志后,记录在日志中的更改不可恢复。为了恢复,请立即执行 BACKUP DATABASE。 NO_Trunc ATE 允许在数据库 损坏时备份日志。 注释 可以将数据库 或日志备份追加到任何磁盘或磁带设备上,从而使得数据库 和它的事务日志能存储在一个 物理位置中。 当数据库 正在使用时,sql Server 使用一个 联机备份过程来对数据库 进行备份。下面的列表包括 在数据库 或事务日志备份时无法进行的操作: 在备份操作时允许进行文件 管理操作,如带有 ADD FILE 或 REMOVE FILE 选项的 ALTER DATABASE 语句,以及 INSERT、UPDATE 或 DELETE 语句。 收缩数据库 或文件 。这包括 自动 收缩操作。 假如在这 些操作正在进行 时启动备份,备份将终止。假如正在进行 备份时,试图进行这些操作,则操作会失败。 只要操作系统支持 数据库 的排序规则,就可以在不同的平台之间执行备份操作,即使这些平台使用不同的处理器类型。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。