关于SQL备份存储过程问题,向高手请教

cbbear 2005-07-14 01:05:50
文件backup.bat内容如下(用于计划任务):

"C:\Program Files\Microsoft SQL Server\80\Tools\Binn\OSQL.EXE" -i c:\tempdb\backup.sql -S ATHENS\SQLPRODA -d IoGarment -E

--存储过程文件backup.sql内容如下:

BACKUP DATABASE IoGarment TO DISK = 'C:\tempdb\IoGarmentData.BAK'
go

USE master
GO

DROP DATABASE IoGarmentTrain
GO

RESTORE DATABASE IoGarmentTrain
FROM DISK = 'C:\tempdb\IoGarmentData.BAK' WITH
MOVE 'IoGarmentData' TO 'C:\tempdb\IoGarmentTrainData.MDF',
MOVE 'IoGarmentLog' TO 'C:\tempdb\IoGarmentTrainData.LDF'
GO

使用“控制面板”->“计划任务”每天3:00备份一次。
问题:我想每次生成的备份文件名是由备份日期时间组成,而且保留最近的七个备份文件?

小弟刚学,请各位指教!
...全文
117 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
cbbear 2005-07-14
  • 打赏
  • 举报
回复
顶啊!!!
能不能每天备份一次,每备份一次的文件名IoGarmentData.BAK,IoGarmentData1.BAK'——IoGarmentData7.BAK到七时,自动覆盖第一个备份!重复下去,就有七个最近的备份.bak
cbbear 2005-07-14
  • 打赏
  • 举报
回复
还有,我用的是SQL Server Desktop Engine 只安装了这个!不用企业管理器~也不用查询之类!!
就用OSQL.EXE运行.sql存储过程!
vivianfdlpw 2005-07-14
  • 打赏
  • 举报
回复
declare @sql varchar(8000)
set @sql=' BACKUP DATABASE testTrain TO DISK = ''C:\tempdb\testData.BAK'''
+' USE master'+
+' DROP DATABASE testTrain'+
+' RESTORE DATABASE testTrain'+
+' FROM DISK = ''C:\tempdb\testData.BAK'' WITH'+
+' MOVE ''test_Data'' TO ''C:\tempdb\'+convert(varchar(10),getdate(),120)+'.MDF'','+
+' MOVE ''test_Log'' TO ''C:\tempdb\'+convert(varchar(10),getdate(),120)+'.LDF'''
exec(@sql)

--结果
/*
已处理 240 页,这些页属于数据库 'testTrain' 的文件 'test_Data'(位于文件 2 上)。
已处理 1 页,这些页属于数据库 'testTrain' 的文件 'test_Log'(位于文件 2 上)。
BACKUP DATABASE 操作成功地处理了 241 页,花费了 0.230 秒(8.552 MB/秒)。
正在删除数据库文件 'C:\tempdb\2005-07-14.LDF'。
正在删除数据库文件 'C:\tempdb\2005-07-14.MDF'。
已处理 240 页,这些页属于数据库 'testTrain' 的文件 'test_Data'(位于文件 1 上)。
已处理 1 页,这些页属于数据库 'testTrain' 的文件 'test_Log'(位于文件 1 上)。
RESTORE DATABASE 操作成功地处理了 241 页,花费了 0.115 秒(17.105 MB/秒)。
*/

34,588

社区成员

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

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