SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
-- execute AutoBackupDataBase
ALTER procedure AutoBackupDataBase
--WITH ENCRYPTION 加密
As
Begin
declare @curDate varchar(12)
declare @before7Date varchar(8)
declare @dbSavePath varchar(100)
declare @dbLogSavePath varchar(100)
declare @dbDeletPath varchar(100)
declare @dbLogDeletPath varchar(100)
Declare @saveMainPath varchar(50)
declare @dbPath varchar(125)
declare @Name sysname
declare @trunLog varchar(512)
--select convert(char(10),getdate(),112)
--select convert(char(10),getdate()-3,112)
--select convert(char(20),getdate(),120)
--select getdate()
set @curDate = convert(char(8),getdate(),112)+right('00' + (cast(datepart(hh,getdate()) as varchar(2))),2)+right('00' + (cast(datepart(mi,getdate()) as varchar(2))),2)
set @before7Date=convert(char(10),getdate()-7,112)
set @saveMainPath = 'D:\database\'
--select * from master.dbo.sysdatabases
declare DBName cursor for select Name from master.dbo.sysdatabases where name !='tempdb'
open DBName
FETCH NEXT FROM DBName into @Name
WHILE @@FETCH_STATUS = 0
BEGIN
set @dbPath = @saveMainPath + @Name+'\'+@Name
set @dbDeletPath ='del '+@dbPath+'_DB_'+@before7Date+'*.bak'
set @dbLogDeletPath ='del '+@dbPath+'_tlog_'+@before7Date+'*.trn'
print @dbDeletPath
print @dbLogDeletPath
exec master..xp_cmdshell @dbDeletPath
exec master..xp_cmdshell @dbLogDeletPath
set @dbSavePath =@dbPath+'_DB_'+@curDate+'.bak'
print @dbSavePath
--set @Str_LOG =@StrPath+@Name+'_LOG'+@Str
BACKUP DATABASE @Name TO DISK = @dbSavePath WITH NOINIT , NOUNLOAD , NAME = N'数据库备份', NOSKIP , STATS = 10, NOFORMAT
--BACKUP LOG bdm TO DISK = @Str_LOG WITH NOINIT , NOUNLOAD , NAME = N' 所有数据库日志备份', NOSKIP , STATS = 10, NOFORMAT, NO_TRUNCATE
/*if @Name != 'master' and @Name != 'model' and @Name != 'msdb'
begin
set @dbLogSavePath =@dbPath+'_tlog_'+@curDate+'.trn'
--set @trunLog = 'USE ' + @Name +' BACKUP LOG '+@Name+' to disk = '''+ @dbLogSavePath + ''' WITH NOINIT , NOUNLOAD , NAME = N'' 数据库日志备份'', NOSKIP , STATS = 10, NOFORMAT, NO_TRUNCATE DBCC SHRINKFILE ( '+@Name + '_Log)'
if @Name = 'GPT2006' or @Name = 'TRAINING' or @Name = 'WTD2005' or @Name = 'DevArea'
begin
set @trunLog = 'USE ' + @Name +' BACKUP LOG '+@Name+' to disk = '''+ @dbLogSavePath + ''' WITH NOINIT , NOUNLOAD , NAME = N'' 数据库日志备份'', NOSKIP , STATS = 10, NOFORMAT, NO_TRUNCATE DBCC SHRINKFILE ( ajstest_log)'
end
else
begin
--set @trunLog = 'USE ' + @Name +' BACKUP LOG '+@Name+' to disk = '''+ @dbLogSavePath + ''' WITH NOINIT , NOUNLOAD , NAME = N'' 数据库日志备份'', NOSKIP , STATS = 10, NOFORMAT, NO_TRUNCATE DBCC SHRINKFILE ( DevelopmentArea_Log)'
set @trunLog = 'USE ' + @Name +' BACKUP LOG '+@Name+' to disk = '''+ @dbLogSavePath + ''' WITH NOINIT , NOUNLOAD , NAME = N'' 数据库日志备份'', NOSKIP , STATS = 10, NOFORMAT, NO_TRUNCATE DBCC SHRINKFILE ( '+@Name + '_Log)'
end
print @trunLog
execute (@trunLog)
end
*/
--set @dbLogSavePath =@dbPath+'_tlog_'+@curDate+'.trn'
--set @trunLog = 'USE ' + @Name +' BACKUP LOG '+@Name+' to disk = '''+ @dbLogSavePath + ''' WITH NOINIT , NOUNLOAD , NAME = N'' 数据库日志备份'', NOSKIP , STATS = 10, NOFORMAT, NO_TRUNCATE DBCC SHRINKFILE ( '+@Name + '_Log)'
--print @trunLog
--execute (@trunLog)
FETCH NEXT FROM DBName INTO @Name
END
CLOSE DBName
DEALLOCATE DBName
end
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
ALTER procedure AutoBackupDataBaseTlog
--WITH ENCRYPTION 加密
As
Begin
declare @curDate varchar(12)
declare @dbLogSavePath varchar(100)
Declare @saveMainPath varchar(50)
declare @dbPath varchar(125)
declare @Name sysname
declare @trunLog varchar(100)
set @curDate = convert(char(8),getdate(),112)+right('00' + (cast(datepart(hh,getdate()) as varchar(2))),2)+right('00' + (cast(datepart(mi,getdate()) as varchar(2))),2)
set @saveMainPath = 'D:\database\'
declare DBName cursor for select Name from master.dbo.sysdatabases where name != 'master' and name != 'tempdb'
open DBName
FETCH NEXT FROM DBName into @Name
WHILE @@FETCH_STATUS = 0
BEGIN
set @dbPath = @saveMainPath + @Name+'\'+@Name
set @dbLogSavePath =@dbPath+'_tlog_'+@curDate+'.trn'
print @dbLogSavePath
BACKUP LOG @Name TO DISK = @dbLogSavePath WITH NOINIT , NOUNLOAD , NAME = N' 数据库日志备份', NOSKIP , STATS = 10, NOFORMAT, NO_TRUNCATE
FETCH NEXT FROM DBName INTO @Name
END
CLOSE DBName
DEALLOCATE DBName
end
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
分享到:
相关推荐
2:进入窗口设置后,输入联接数据库相关设置,然后确保联到数据库-->选择要备份的数据库-->选择备份目 标(此时请注意,C盘\文件夹名是中文名\文件名太长,会导致无法保存.) 3:请注意要备份的数据库大小,如果数据库非常大,...
这是数据库的备份和还原的sql语句,只适用于oracle数据库。
通过sql代理自动执行数据库备份,在指定目录生成文件。定时执行
利用sqlserver自带的命令行工具sqlcmd实现数据库备份,自动备份只需要自己建立计划任务。自行修改压缩包中的backup.sql
经典SQL语句,sql备份数据库,sql基本入门的语法。
php备份数据库为sql文件的类
备份sqlserver数据库,winform备份sqlserver数据库,简单备份、源码。
作为数据库管理员,或者是软件公司的项目经理经常面临着这个问题,一个数据库一个数据库的备份太累,通过上面的一个存储过程,能够批量备份系统中的所有数据库
PHP实现数据库备份导出成sql 一、 开发环境 1、环境搭建:Windows 7+Apache 2.4.18+MySQL 5.7.11+PHP 7.1.0。 2、文本编辑器:Sublime 3。 二、主要技术 本案例使用PHP 7中的PDO数据对象对MySQL数据库进行查询操作...
windows下自动备份My SQL数据库bat脚本
数据库SQL备份工具数据库SQL备份工具数据库SQL备份工具
SQL Server 2005备份的数据库还原到SQL Server 2012失败,错误信息如下: 解决方法 由于是还原完整数据库备份,因此删除SQL Server 2012同名数据库再还原,还原成功: 您可能感兴趣的文章:SQL Server 2005...
sqlserver通过作业备份数据库1
c#备份sqlserver数据库 c#备份sqlserver数据库 c#备份sqlserver数据库 c#备份sqlserver数据库 c#备份sqlserver数据库
《数据库开发常用SQL文件批量备份》---备份 《数据库开发常用SQL文件批量备份》---备份 《数据库开发常用SQL文件批量备份》---备份 《数据库开发常用SQL文件批量备份》---备份 《数据库开发常用SQL文件批量备份》---...
C#实现SQL数据库备份与恢复.txt
sqlserver2017数据库的两种备份方式:1、自动备份,2、手动备份,具体介绍如何自动备份sqlserver数据库,如何配置自动备份方案,以及备份数据库的还原,分享在操作过程中遇到的问题
SQLServer数据库的备份和还原详解SQLServer数据库的备份和还原详解
sql server 数据库备份, 2005, 2008 安装 sql server代理。 设置代理的运行时间,指定时间内就可以自动备份数据库文件了。
NULL 博文链接:https://wang-z-p2007.iteye.com/blog/908050