【Vegas原创】用proc来做SQL数据库备份与还原
2008-09-29 10:33
351 查看
一、DB备份:FlowER DB为例:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
/***********************************
删除一周前资料;备份当天资料
For FLowER、持续改善系统
Vegas Add 08-09-29
************************************/
ALTER proc [dbo].[FlowER_backup]
as
declare @data_7ago nvarchar(50) --获取七天前日期
declare @cmd varchar(50) --cmd 指令
--删除七天前的备份资料
set @data_7ago ='\\10.91.50.107\DBBackup\FlowER\'+convert(varchar(10),getdate()-7,112)
set @cmd = 'del '+ @data_7ago
exec master..xp_cmdshell @cmd
go
-- 备份当天资料
declare @data nvarchar(50)
set @data='\\10.91.50.107\DBBackup\FlowER\'+convert(varchar(10),getdate(),112)
BACKUP DATABASE FlowER TO DISK = @data
with init
二、DB还原:
1,要Kill掉数据库进程的proc:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
/*
断开所有用户打开的连接
Vegas Add 08.09.29
*/
ALTER proc [dbo].[p_killspid]
@dbname sysname --要关闭进程的数据库名
as
declare @s nvarchar(1000)
declare tb cursor local for
select s='kill '+cast(spid as varchar)
from master..sysprocesses
where dbid=db_id(@dbname)
open tb
fetch next from tb into @s
while @@fetch_status=0
begin
exec(@s)
fetch next from tb into @s
end
close tb
deallocate tb
2,进行还原:DBBackup DB为例
exec dbo.p_killspid 'DBBackup'
RESTORE DATABASE DBBackup
FROM DISK = '\\10.91.50.107\DBBackup\DBBackup\20080929'
WITH REPLACE
或将备份文件加.bak后缀名,从SQL Server还原。
PS:用SQL Server进行还原的注意事项:
1)新建一个test数据库,点击还原,在选项里选择“覆盖现有数据库”
2) 如报数据库 '***' 正在使用该文件,在选项里更新新的数据文件 。
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
/***********************************
删除一周前资料;备份当天资料
For FLowER、持续改善系统
Vegas Add 08-09-29
************************************/
ALTER proc [dbo].[FlowER_backup]
as
declare @data_7ago nvarchar(50) --获取七天前日期
declare @cmd varchar(50) --cmd 指令
--删除七天前的备份资料
set @data_7ago ='\\10.91.50.107\DBBackup\FlowER\'+convert(varchar(10),getdate()-7,112)
set @cmd = 'del '+ @data_7ago
exec master..xp_cmdshell @cmd
go
-- 备份当天资料
declare @data nvarchar(50)
set @data='\\10.91.50.107\DBBackup\FlowER\'+convert(varchar(10),getdate(),112)
BACKUP DATABASE FlowER TO DISK = @data
with init
二、DB还原:
1,要Kill掉数据库进程的proc:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
/*
断开所有用户打开的连接
Vegas Add 08.09.29
*/
ALTER proc [dbo].[p_killspid]
@dbname sysname --要关闭进程的数据库名
as
declare @s nvarchar(1000)
declare tb cursor local for
select s='kill '+cast(spid as varchar)
from master..sysprocesses
where dbid=db_id(@dbname)
open tb
fetch next from tb into @s
while @@fetch_status=0
begin
exec(@s)
fetch next from tb into @s
end
close tb
deallocate tb
2,进行还原:DBBackup DB为例
exec dbo.p_killspid 'DBBackup'
RESTORE DATABASE DBBackup
FROM DISK = '\\10.91.50.107\DBBackup\DBBackup\20080929'
WITH REPLACE
或将备份文件加.bak后缀名,从SQL Server还原。
PS:用SQL Server进行还原的注意事项:
1)新建一个test数据库,点击还原,在选项里选择“覆盖现有数据库”
2) 如报数据库 '***' 正在使用该文件,在选项里更新新的数据文件 。
相关文章推荐
- 【Vegas原创】用proc来做SQL数据库备份与还原
- 【Vegas原创】用proc来做SQL数据库备份与还原
- SQL数据库备份还原的一些心得
- SQL数据库增量备份还原方式
- 【Vegas原创】RMAN还原一个损坏的user表空间的数据文件
- 【Vegas原创】RMAN数据库Daily备份脚本(Windows版)
- 【Vegas原创】RMAN还原一个损坏的user表空间的数据文件
- c# 用SQLDMO 进行sql数据库备份及还原
- [置顶]SQL SERVER完整、差异和事务日志备份及还原(脚本和GUI实现) [原创]
- sql数据库的备份还原问题
- SQL数据库备份与还原的四个存储过程与一个函数
- 非常好用的asp备份,还原SQL数据库的代码
- SQL数据库的备份、还原、压缩与数据转移的方法
- SQL数据库的分离附加,导出脚本,备份和还原
- 【Vegas原创】ProC环境搭建
- 【Vegas原创】RMAN数据库Daily备份脚本(Linux版)
- asp备份,还原SQL数据库--非常好用.--2006-6-8-5
- sql数据库的分离和附加,备份和还原
- SQL数据库不同备份名称存放不同路径还原方法
- SQL数据库还原时备份集中的数据库备份与现有的数据库不同的解决办法