CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

怎么样实现数据库自动备份(采用SQL脚本)?在线等待

楼主yanglg(ylg)2006-03-10 14:44:08 在 MS-SQL Server / 基础类 提问

各位大侠,我是SQL   Server的菜鸟.请问大家一个问题.  
  我想SQL   Server自动在每天晚上的12:00进行完全备份.想通过SQL语句实现.最好是自己能触发.  
  不知道有什么样的方法.我只会写简单的触发器.最好有例子给我看看.谢谢大家 问题点数:100、回复次数:13Top

1 楼happyflystone(无枪的狙击手)回复于 2006-03-10 14:46:23 得分 10

企业管理器  
  --管理  
  --SQL   Server代理  
  --右键作业  
  --新建作业  
  --"常规"项中输入作业名称  
  --"步骤"项  
  --新建  
  --"步骤名"中输入步骤名  
  --"类型"中选择"Transact-SQL   脚本(TSQL)"  
  --"数据库"选择执行命令的数据库  
  --"命令"中输入要执行的语句:  
                                              backup   ...--这儿你自己写了吧  
   
  --确定  
  --"调度"项  
  --新建调度  
  --"名称"中输入调度名称  
  --"调度类型"中选择你的作业执行安排  
  --如果选择"反复出现"  
  --点"更改"来设置你的时间安排  
   
   
  然后将SQL   Agent服务启动,并设置为自动启动,否则你的作业不会被执行  
   
  设置方法:  
  我的电脑--控制面板--管理工具--服务--右键   SQLSERVERAGENT--属性--启动类型--选择"自动启动"--确定.  
  Top

2 楼libin_ftsafe(子陌红尘:TS for Banking Card)回复于 2006-03-10 14:48:08 得分 20

1、写一个执行完全备份的存储过程  
   
  2、新增一个JOB,定时在每天凌晨00:00:00运行  
  企业管理器  
  --管理  
  --SQL   Server代理  
  --右键作业  
  --新建作业  
  --"常规"项中输入作业名称  
  --"步骤"项  
  --新建  
  --"步骤名"中输入步骤名  
  --"类型"中选择"Transact-SQL   脚本(TSQL)"  
  --"数据库"选择执行命令的数据库  
  --"命令"中输入要执行的语句:  
                                                EXEC   完全备份操作存储过程名  
   
  --确定  
  --"调度"项  
  --新建调度  
  --"名称"中输入调度名称  
  --"调度类型"中选择你的作业执行安排  
  --如果选择"反复出现"  
  --点"更改"来设置你的时间安排  
   
   
  然后将SQL   Agent服务启动,并设置为自动启动,否则你的作业不会被执行  
   
  设置方法:  
  我的电脑--控制面板--管理工具--服务--右键   SQLSERVERAGENT--属性--启动类型--选择"自动启动"--确定.Top

3 楼yanglg(ylg)回复于 2006-03-10 15:15:46 得分 0

有没有完全备份的存储过程?给我一份源码啊?谢谢Top

4 楼wangtiecheng(不知不为过,不学就是错!)回复于 2006-03-10 16:28:01 得分 50

 
  create   procedure   sp_backupdb  
  @path varchar(100), --路径  
  @dbName varchar(100) --数据库名字  
  as  
   
  declare   @dt   nvarchar(20)  
  declare   @s   nvarchar(1000)  
  set   @dt=convert(varchar(10),getdate(),120)   +   right(convert(varchar(20),getdate(),120),8)  
  set   @dt   =   replace(@dt,'-','')  
  set   @dt   =   replace(@dt,':','')  
   
  set   @s   =   'backup   database   ['   +   @dbName   +   ']   to     disk   =   N'''   +   @path   +   @dbName   +   '_'   +   @dt   +   '_BK''   with     init   ,     nounload   ,     name   =   N'''   +   @dbName   +   '   备份'',     noskip   ,     stats   =   10,     noformat'    
   
  --select   @s  
   
  exec   sp_executesql   @s  
   
  GO  
   
   
  --调用  
   
  sp_backupdb   'D:\','Northwind'  
   
   
   
  Top

5 楼bimyboy(★浩天雪狐★)回复于 2006-03-10 17:58:12 得分 0

劝你先了解一下SQL再说,SQL有这种功能的Top

6 楼zjcxc(邹建)回复于 2006-03-10 19:54:13 得分 20

/*--备份数据库,并按日期生成备份目录  
   
  --邹建   2003.10--*/  
   
  /*--调用示例  
   
  --备份当前数据库  
  exec   p_backupdb    
   
  --*/  
   
  if   exists   (select   *   from   dbo.sysobjects   where   id   =   object_id(N'[dbo].[p_backupdb]')   and   OBJECTPROPERTY(id,   N'IsProcedure')   =   1)  
  drop   procedure   [dbo].[p_backupdb]  
  GO  
   
  create   proc   p_backupdb  
  @dbname   sysname='', --要备份的数据库名称,不指定则备份当前数据库  
  @bkfname   nvarchar(260)='', --备份文件名,文件名中可以用\DBNAME\代表数据库名,\DATE\代表日期,\TIME\代表时间  
  @bkpath   nvarchar(260)='c:\' --备份文件的存放目录,在该目录下创建每天备份的目录  
  as  
  declare   @sql   varchar(8000)  
  if   isnull(@dbname,'')=''   set   @dbname=db_name()  
  if   right(@bkpath,1)<>'\'   set   @bkpath=@bkpath+'\'  
  set   @bkpath=@bkpath+convert(varchar,getdate(),112)+'\'  
   
  --创建目录  
  set   @sql='md   '+@bkpath  
  exec   master..xp_cmdshell   @sql,no_output  
   
  --备份处理  
  if   isnull(@bkfname,'')=''   set   @bkfname='\DBNAME\_\DATE\.BAK'  
  set   @bkfname=replace(replace(replace(@bkfname,'\DBNAME\',@dbname)  
  ,'\DATE\',convert(varchar,getdate(),112))  
  ,'\TIME\',replace(convert(varchar,getdate(),108),':',''))  
  set   @sql='backup   database   '+@dbname  
  +'   to   disk='''+@bkpath+@bkfname+''''  
  exec(@sql)  
  go  
  Top

7 楼www_acafa_com(㊣快乐王子㊣)回复于 2006-03-19 21:40:56 得分 0

*--备份数据库,并按日期生成备份目录  
   
  --邹建   2003.10--*/  
   
  /*--调用示例  
   
  --备份当前数据库  
  exec   p_backupdb    
   
  --*/  
   
  if   exists   (select   *   from   dbo.sysobjects   where   id   =   object_id(N'[dbo].[p_backupdb]')   and   OBJECTPROPERTY(id,   N'IsProcedure')   =   1)  
  drop   procedure   [dbo].[p_backupdb]  
  GO  
   
  create   proc   p_backupdb  
  @dbname   sysname='',--要备份的数据库名称,不指定则备份当前数据库  
  @bkfname   nvarchar(260)='',--备份文件名,文件名中可以用\DBNAME\代表数据库名,\DATE\代表日期,\TIME\代表时间  
  @bkpath   nvarchar(260)='c:\'--备份文件的存放目录,在该目录下创建每天备份的目录  
  as  
  declare   @sql   varchar(8000)  
  if   isnull(@dbname,'')=''   set   @dbname=db_name()  
  if   right(@bkpath,1)<>'\'   set   @bkpath=@bkpath+'\'  
  set   @bkpath=@bkpath+convert(varchar,getdate(),112)+'\'  
   
  --创建目录  
  set   @sql='md   '+@bkpath  
  exec   master..xp_cmdshell   @sql,no_output  
   
  --备份处理  
  if   isnull(@bkfname,'')=''   set   @bkfname='\DBNAME\_\DATE\.BAK'  
  set   @bkfname=replace(replace(replace(@bkfname,'\DBNAME\',@dbname)  
  ,'\DATE\',convert(varchar,getdate(),112))  
  ,'\TIME\',replace(convert(varchar,getdate(),108),':',''))  
  set   @sql='backup   database   '+@dbname  
  +'   to   disk='''+@bkpath+@bkfname+''''  
  exec(@sql)  
  go  
  Top

8 楼xeqtr1982(Visual C# .NET)回复于 2006-03-19 21:49:56 得分 0

学习老大:)Top

9 楼a2048(你好吗)回复于 2006-03-20 10:43:10 得分 0

up!Top

10 楼superdullwolf(超级大笨狼,每天要自强,MVP)回复于 2006-03-28 10:57:34 得分 0

谢!Top

11 楼superdullwolf(超级大笨狼,每天要自强,MVP)回复于 2006-03-28 11:01:35 得分 0

http://blog.csdn.net/zjcxc/archive/2003/12/29/20074.aspxTop

12 楼mabuchi()回复于 2006-03-28 11:06:37 得分 0

收Top

13 楼tian790317()回复于 2006-03-28 11:30:17 得分 0

楼上的都比较经典  
  Top

相关问题

  • [求助]请问定时备份数据库的SQL脚本怎么写?
  • [求助]请问定时备份数据库的SQL脚本怎么写?
  • SQL Server的数据库备份
  • sql数据库备份问题
  • sql server的数据库备份
  • sql server数据库备份问题
  • asp.net 数据库备份问题(Sql server2000)
  • 如何远程备份SQL数据库?
  • 原创SQL数据库实时备份!!!
  • SQL SERVER 2000数据库备份

关键词

  • 数据库
  • 作业
  • 执行
  • 选择
  • 管理
  • date
  • sql
  • 备份
  • bkfname
  • bkpath

得分解答快速导航

  • 帖主:yanglg
  • happyflystone
  • libin_ftsafe
  • wangtiecheng
  • zjcxc

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo