如何進行備份

lliang0488 2003-09-29 10:52:29
想直接用 Enterprise Manger 進行數據庫備份,想要每天進行一次備份,每天生成一
個獨立的文件,文件名上包含日期,在 BACK UP 下面的四個選項各是什麼意思呢。
...全文
26 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 元老 2003-09-29
  • 打赏
  • 举报
回复
我写的第一个代码就是用作业的啊

在企业管理器中的操作步骤:

企业管理器--管理--SQL代理--右键作业--新建作业
步骤里新增一个步骤,写入如果代码:
declare @sql varchar(8000),@dbname varchar(800)
set @dbname='数据库名'
set @sql='backup database '+@dbname+' to disk=''c:\'+@dbname
+convert(varchar,getdate(),112)+'.bak'''
exec(@sql)

调度里设置你的执行计划.

然后将SQL AGENT服务设置为自动启动.
pengdali 2003-09-29
  • 打赏
  • 举报
回复
你的数据库服务器-》企业管理器-》管理-》SQL Server 代理-》作业-》新建作业,按照要求填就可以了,在“步骤”的“命令”中填写你要执行的存储过程或语句,在“调度”里面填写什么时间执行

你在作业的命令里写:

declare @myTime datetime
declare @myBak varchar(50)

set @myTime=getdate()
set @myBak='e:\bk-datas\dbname'
set @myBak=@myBak+convert(char(8),@myTime,112)
set @myBak=@myBak+cast(DATEPART(hh, @myTime) as varchar(2))
set @myBak=@myBak+cast(DATEPART(mi, @myTime) as varchar(2))
set @myBak=@myBak+cast(DATEPART(ss, @myTime) as varchar(2))
set @myBak=@myBak+'.bak'
--select @myBak
backup database IISLOGS to disk=@myBak
lliang0488 2003-09-29
  • 打赏
  • 举报
回复
不用存儲過程,是想用作業
zjcxc 元老 2003-09-29
  • 打赏
  • 举报
回复
用存储过程的写法是:

--创建备份当前数据库的存储过程
create proc p_backupdb
as
declare @sql varchar(8000)
set @sql='backup database '+db_name()+' to disk=''c:\'+db_name()
+convert(varchar,getdate(),112)+'.bak'''
exec(@sql)
go

--创建作业
exec sp_add_job @job_name='数据备份'

--创建作业步骤
declare @sql varchar(8000) --数据备份的命令
declare @dbname varchar(250)

select @sql='exec p_backupdb'
,@dbname=db_name()

exec sp_add_jobstep @job_name='数据备份',
@step_name = '数据备份处理',
@subsystem = 'TSQL',
@database_name=@dbname,
@command = @sql

--创建调度
EXEC sp_add_jobschedule @job_name = '数据备份',
@name = '时间安排',
@freq_type = 4, --每天
@freq_interval = 1, --每天执行一次
@active_start_time = 17000 --下午17:00:00分执行

zjcxc 元老 2003-09-29
  • 打赏
  • 举报
回复
如果是想用存储过程,那么只需要将这句:
declare @sql varchar(8000) --数据备份的命令
set @sql='declare @sql varchar(8000)
set @sql=''backup database 数据库名 to disk=''''x:\path\数据库名''
+convert(varchar,getdate(),112)+''.bak''''''
exec(@sql)'

改为对存储过程的调用就行了:
declare @sql varchar(8000) --数据备份的命令
set @sql='exec 要执行的存储过程名'
zjcxc 元老 2003-09-29
  • 打赏
  • 举报
回复
创建作业,每天备份就行了,在查询分析器中执行:

--创建作业
exec sp_add_job @job_name='数据备份'

--创建作业步骤
declare @sql varchar(8000) --数据备份的命令
set @sql='declare @sql varchar(8000)
set @sql=''backup database 数据库名 to disk=''''x:\path\数据库名''
+convert(varchar,getdate(),112)+''.bak''''''
exec(@sql)'

exec sp_add_jobstep @job_name='数据备份',
@step_name = '数据备份处理',
@subsystem = 'TSQL',
@database_name='pubs',
@command = @sql

--创建调度
EXEC sp_add_jobschedule @job_name = '数据备份',
@name = '时间安排',
@freq_type = 4, --每天
@freq_interval = 1, --每天执行一次
@active_start_time = 17000 --下午17:00:00分执行


lliang0488 2003-09-29
  • 打赏
  • 举报
回复
寫一個存儲過程嘛,我要讓他每天自動執行
yujohny 2003-09-29
  • 打赏
  • 举报
回复
上面的saledata是你的数据库名
yujohny 2003-09-29
  • 打赏
  • 举报
回复
declare @str nvarchar(100)
set @str='d:\data2\aa'+CONVERT(varchar(10), getDate(),120)
Backup database saledata to disk=@str
txlicenhe 2003-09-29
  • 打赏
  • 举报
回复
建议在企业管理器下用“数据库维护计划”

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧