SQL Server的备份和恢复(100分相送)

jackeaaa 2003-09-14 04:44:44
我现在有一个数据库A,想每天来一个差异备份A_data_time;
然后在另一个机器上恢复每天的差异备份,请教各位大虾?
...全文
100 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuguangwei 2003-09-19
  • 打赏
  • 举报
回复
TO: meetweb(niky)

写的蛮好的,不过我看不懂;
不过运行还是可以的,还需要研究;
meetweb 2003-09-19
  • 打赏
  • 举报
回复
To: jackeaaa(刘光伟)
这是使用存储过程来实现备份和还原工作.你在Sqlserver的查询分析器中运行该代码.
就可以看到效果.
步骤一.使用sqlserver把存储过程写好.或者使用程序写好存储过程
步骤二 使用程序把参数写好,运行已经写好的存储过程,实现备份和还原工作
jackeaaa 2003-09-18
  • 打赏
  • 举报
回复
TO: meetweb(niky)

什么意思,有什么功能?
hikele 2003-09-16
  • 打赏
  • 举报
回复
搬个凳子,坐下来看看:)
rock29 2003-09-15
  • 打赏
  • 举报
回复
haha,五星的水平就是比三星高!
jjcccc 2003-09-15
  • 打赏
  • 举报
回复
在sql server里建个定时维护任务,启动sql agent ,这样不更方便科学吗?
rock29 2003-09-15
  • 打赏
  • 举报
回复
先建立数据库,用语句倒数!速度还行.
jackeaaa 2003-09-15
  • 打赏
  • 举报
回复
To:rock29(rock)

what's mean?
rock29 2003-09-15
  • 打赏
  • 举报
回复
呵呵,偷懒不得,用sql语句倒数把!备份看来可能不行
jackeaaa 2003-09-15
  • 打赏
  • 举报
回复
To: dxq(懒虫)

你这种情况在一个月是有效果的
再过一个月
我将清空所有数据(作差异备份的那个数据库)

而第二月我又想恢复那个差异的数

如果这时,来个总的恢复将使另一个机器上的所有数据都将丢失
dxq 2003-09-15
  • 打赏
  • 举报
回复
纠错:

Backup DataBase NorthWind
To NorthWind_1 DIFFERENTIAL

改为:

Backup DataBase NorthWind
To NorthWind_1
With DIFFERENTIAL
dxq 2003-09-15
  • 打赏
  • 举报
回复
除非首先创建数据库备份,否则不能创建差异数据库备份

备份:
'先进行完整备份
Backup DataBase NorthWind
To NorthWind
With Init '重写现有备份设备
'再进行差异备份
Backup DataBase NorthWind
To NorthWind_1 DIFFERENTIAL
Anhowe 2003-09-15
  • 打赏
  • 举报
回复
SQL中的有关发布问题,可以看看
jackeaaa 2003-09-15
  • 打赏
  • 举报
回复
对我想用程序来实现;
还有是只是在另一机上(已经和前一个数据库结构一样)恢复当天的差异备份
youngzi 2003-09-15
  • 打赏
  • 举报
回复
企业管理器有这个功能的,先备份,再把备份文件拷到B服务器,再恢复不就行了
meetweb 2003-09-15
  • 打赏
  • 举报
回复
create PROCEDURE GY_DBBak
@bakequip int, -- 备份设备:磁盘&磁带
@bakpath varchar(50), -- 带全路径的备份文件名
@baktype int, -- 完全备份&增量备份
@baklog int, -- ‘0’备份日志
@bakdb int, -- ‘0’备份数据库
@kind varchar(7), --备份还是恢复

@retmsg varchar(20) output --返回信息
AS
DECLARE @DevName_data varchar(50)
DECLARE @DevName_log varchar(50)
declare @db_path varchar(100)
declare @log_path varchar(100)

DECLARE @RC INT

SELECT @db_path = @bakpath + '.dat'
SELECT @log_path = @bakpath + 'log.dat'
SELECT @RC=0
select @DevName_data='dali',@DevName_log='dalilog'

DBCC CHECKDB(数据库名)
/***********************************************************
** CREATE BACKUP AND RESTORE DEVICES
************************************************************/
IF @RC=0
BEGIN

EXEC sp_addumpdevice 'disk', @DevName_data,@db_path

exec sp_addumpdevice 'disk', @DevName_log,@log_path
select @rc=@@error
IF @RC<>0
begin
EXEC SP_DropDevice @Devname_data
exec sp_dropdevice @devname_log
SELECT @RC=-1000
return @rc
end
END

IF @kind='backup'
BEGIN
IF @bakequip=0
BEGIN
IF @baktype=0
BEGIN
IF @bakdb=0
BEGIN
BACKUP DATABASE 数据库名 TO DISK=@Devname_data
WITH INIT
END
IF @baklog=0
BEGIN
BACKUP LOG 数据库名 WITH NO_LOG
BACKUP LOG 数据库名 TO DISK=@DevName_log
WITH INIT,NO_TRUNCATE
END
END
ELSE BEGIN
IF @bakdb=0
BEGIN
BACKUP DATABASE 数据库名 TO DISK=@DevName_data
WITH NOINIT
END
IF @baklog=0
BEGIN
BACKUP LOG 数据库名 WITH NO_LOG
BACKUP LOG 数据库名 TO DISK=@DevName_log
WITH NOINIT,NO_TRUNCATE
END
END
END
SELECT @retmsg='数据库备份成功!'
END

IF @kind='restore'
BEGIN
RESTORE DATABASE 数据库名 FROM DISK= @DevName_data WITH REPLACE
SELECT @retmsg='恢复数据库成功!'
END

EXEC SP_DropDevice @Devname_data
exec sp_dropdevice @devname_log

RETURN 0

---测试:
declare @ varchar(100)
exec gy_dbbak 0,'aa',0,0,0,'backup',@ output
select @
dzliang21 2003-09-15
  • 打赏
  • 举报
回复
嘿嘿~~~~
gdfspy2 2003-09-14
  • 打赏
  • 举报
回复
到sql数据库论坛里找找吧, 应该就是两个sql语句的问题
NaZiChong 2003-09-14
  • 打赏
  • 举报
回复
sql server本身不是不是有这个功能吗?

如果不能满足你的需求,那就自己写一个程序放在服务器上定时执行,不就行了吗?
jjcccc 2003-09-14
  • 打赏
  • 举报
回复
你是想用程序实现吗?

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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