sqlserver2008数据库自动备份脚本

CREATE proc [dbo].[usp_autoBackupDB]

@dbname sysname=null --要备份的数据库名,不指定即为全部备份

,@path nvarchar(128)=‘d:\‘ --备份目录路径

,@backup_type varchar(16)=‘database‘ --备份类型,可以为database,log

,@backup_sysdb int=0 --是否备份系统数据库,0为不备份,1为备份

as

set nocount on;

declare @dbcnt int =0

,@sql varchar(2000)=‘‘

,@except_db varchar(1000)=case @backup_sysdb

when 0 then ‘‘‘‘+‘master‘+‘‘‘‘+‘,‘+‘‘‘‘ +‘msdb‘+‘‘‘‘+‘,‘+‘‘‘‘+‘tempdb‘+‘‘‘‘+‘,‘+‘‘‘‘+‘model‘+‘‘‘‘

when 1 then ‘‘ end;

declare @db_list table(id int identity(1,1) not null,name sysname);

declare @backup_err_list table(id int identity(1,1) not null,name sysname);

if right(@path,1)<>‘\‘

set @[email protected]+‘\‘

if @dbname is null or @dbname in (‘all‘,‘*‘)

begin

--将所有数据库名存到一张临时表上

set @sql=‘select name from sys.databases where name not in (‘[email protected]_db+‘);‘

insert into @db_list(name) exec(@sql);

--得到一共有多少个数据库

select @dbcnt=count(1) from @db_list;

--开始循环

while @dbcnt>0

begin

--从临时表中获得最后一个数据库的名字

select @dbname=name from @db_list where [email protected];

set @sql=‘backup ‘[email protected]_type+‘ ‘[email protected]+‘ to disk=‘+‘‘‘‘[email protected][email protected]_type+‘_‘[email protected]+‘.‘+convert(varchar(8),getdate(),112)+‘.‘+DATENAME(HH,GETDATE())+‘‘‘‘

--开始循环备份

exec (@sql);

if @@ERROR<>0

insert into @backup_err_list(name) values(@dbname);

set @[email protected]

end

end

else

begin

set @sql=‘backup ‘[email protected]_type+‘ ‘[email protected]+‘ to disk=‘+‘‘‘‘[email protected][email protected]_type+‘_‘[email protected]+‘.‘+convert(varchar(8),getdate(),112)+‘.‘+DATENAME(HH,GETDATE())+‘‘‘‘

--仅备份一次

exec (@sql);

if @@ERROR<>0

insert into @backup_err_list(name) values(@dbname);

end

if exists(select * from @backup_err_list)

select ID ,name as ‘backup_err_dbname‘ from @backup_err_list;

else print ‘backup success‘;

set nocount off;

GO

时间: 2024-10-04 23:14:29

sqlserver2008数据库自动备份脚本的相关文章

windows下oracle数据库自动备份脚本

1.根据日期自动生成 Oracle 备份文件 @echo off echo 正在备份Oracle数据库,请稍等...... exp userid='用户名/密码@SID' file=D:\bak\res_%date:~0,4%%date:~5,2%%date:~8,2%.dmp log=D:\bak\res_%date:~0,4%%date:~5,2%%date:~8,2%.log owner=res echo 任务完成! 2.根据日期时间分秒自动生成 Oracle 备份文件 @echo off

mysql数据库自动备份脚本分享

前几篇博客已经相继公开了去转盘网的所有技术细节,如下: 百度网盘爬虫 中文分词算法 邀请好友注册 js分页部分代码 这篇博客我将继续公开数据库自动备份的代码.可以这么说,没有数据库,一切就是个蛋,没有数据库备份,一切还是个蛋,你可以想象数据库备份多么重要.不会linux,不会写shell的朋友麻烦先去补补.不过你说我牛逼,不补也能看懂,那没问题,哈哈,废话不说了.老规矩,上代码: #!/bin/bash time=$(date +"%d-%m-%Y") pre=/home/ubuntu

sqlserver2008数据库自动备份的sql脚本及使用bat命令执行脚本

-----sql脚本 declare @fileName varchar(255) ,--定义备份文件名变量         @dbname varchar(255)--定义备份数据库名变量declare mycursor cursor fast_forward for select name from master..sysDatabases order by name --定义一个游标对象 open mycursor --打开游标set @dbname='pysf'set @fileName

oracle数据库自动备份脚本

::通过exp命令导出远程机器(192.168.2.1)上指定服务(orcl)指定用户(pmis)及密码(pmis)的数据 ::运行该脚本的机器必须安装oracle @echo off @echo [备份pmis系统的数据] set hh=%time:~0,2% set hh=%hh: =0% set sid=127.0.0.1/orcl set backdir=D:\oracle_bak set backfile=%backdir%\%date:~0,4%%date:~5,2%%date:~8

sqlserver2008R2数据库自动备份脚本

1 CREATE proc [dbo].[usp_autoBackupDB] 2 @dbname sysname=null --要备份的数据库名,不指定即为全部备份 3 ,@path nvarchar(128)='d:\' --备份目录路径 4 ,@backup_type varchar(16)='database' --备份类型,可以为database,log 5 ,@backup_sysdb int=0 --是否备份系统数据库,0为不备份,1为备份 6 as 7 set nocount on

禅道及其数据库自动备份及短信、邮件通知脚本

一.添加SMTP服务器 在需要发送自动报警的服务器上修改如下文件,增加如下两行 # vim /etc/mail.rc set [email protected] smtp=smtp.126.com set smtp-auth-user=doteyplay smtp-auth-password=*** smtp-auth=login     当然,这里的SMTP服务器也可以使用别的,比如QQ的,但是QQ只能发几卦,在测试的时候,总报错:smtp-server: 454 Error: authent

Windows环境下Oracle数据库的自动备份脚本

批处理文件(.bat) @echo off echo ================================================ echo  Windows环境下Oracle数据库的自动备份脚本 echo  1. 使用当前日期命名备份文件. echo  2. 自动删除7天前的备份. echo ================================================ ::以“YYYYMMDD”格式取出当前时间. set BACKUPDATE=%date

linux shell简单实现数据库自动备份

以centos系统为例,实现数据库自动备份.1.写一个shell: 12 #! /bin/bashmysqldump -cp --user=root --password='123' dbName | gzip > ~/db/dbName-`date +%Y%m%d%H`.sql.gz ; 上述shell中,root是备份时使用的用户名,123是密码,dbName是要备份的数据库的名称.把这个文件放在用户目录下,保存路径为:~/db/dbBackup.sh 保存结束后添加执行权限:chmod a

设置mysql数据库自动备份

由于项目需要,在windows下的mysql实现数据库自动备份.经资料查询和尝试,得出方法有两种: 1.使用windows自带的任务计划,然后定时执行一个数据库备份的脚本. 2.使用mysql管理工具navicat配置数据库的备份 这里,由于第二种方法比较简单实用,我就简单描述下第二种方法(因为简单). 工具: navicat for mysql mysql 5.5 步骤: 1.打开navicat客户端,连上mysql后,双击左边你想要备份的数据库.点击“计划”,再点击“新建批处理作业”. .