当前位置: 首页 > 图文教程 > 数据库 > MSSQL > SQL2005 自动备份的脚本

MSSQL
用Oracle和SQL Server数据库组合利弊分析
3个SQL视图搞定所有SqlServer数据库字典
使用SQL Server数据库的查询累计值
如何维护SQL Server的“交易日志”
SQL Server扩展存储过程实现远程备份与恢复
SQL Server 的存储过程
SQL Server 数据库嵌套子查询
如何使用SQL 事件探查器?
SQL Server 2008的新压缩特性
改进SQL Server数据库系统安全五步走
把SQL数据库部署到远程主机环境
SQL Server 2008综合数据可编程性
SQL Server 2005 数据维护实务
详细介绍微软SQL Server 2008
SQL Server数据库管理常用的SQL和T-SQL语句
从算法入手讲解SQL Server典例实现过程
ASP.NET连接Access和SQL Server数据库
SQL Server如何识别真实和自动创建的索引
SQL Server 2005数据转换服务的疑难解答
利用SQL Server 2005同义字缩短开发时间

MSSQL 中的 SQL2005 自动备份的脚本


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 111 ::
收藏到网摘: n/a

避免无用日志过大(根据实际情况选择)按照不同版本来备份 此版本是始终只有最新的一版(我自己的用的是版本是每天都有一个备份)
复制代码 代码如下:

declare @DBName varchar(200)
set @DBName='ReportServer$SQL2005'
--截断日志
DUMP TRANSACTION @DBName WITH NO_LOG
--收缩数据库
DBCC SHRINKDATABASE (@DBName,TRUNCATEONLY)
--备份数据库
USE master
declare @Version varchar(20)
declare @DateAppend varchar(20)
declare @BasePath varchar(200)
declare @BakPath varchar(200)
--设定备份的基本目录
set @BasePath='f:\tmp'
--设定版本,每个版本的备份放在不同的地方
set @Version='V6.1'
--设定备份的完整路径
set @BakPath=@BasePath+'\'+ @Version +'\Db.Bak'
USE master
--创建备份设备,如果存在则无需建立
if exists(select * from sysdevices where name='CTOS_DB_Bak')
begin
EXEC sp_dropdevice 'CTOS_DB_Bak'
declare @tmpcmd varchar(100)
set @tmpcmd='del ' + @BakPath
EXEC sp_configure 'show advanced options',1
RECONFIGURE
EXEC sp_configure 'xp_cmdshell', 1
RECONFIGURE
exec master..xp_cmdshell @tmpcmd
EXEC sp_configure 'show advanced options', 1
RECONFIGURE
EXEC sp_configure 'xp_cmdshell', 0
RECONFIGURE
end
EXEC sp_addumpdevice 'disk','CTOS_DB_Bak',@BakPath
--备份数据库
BACKUP DATABASE @DBName TO CTOS_DB_Bak