怎么样实现数据库自动备份(采用SQL脚本)?在线等待
各位大侠,我是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




