`
hgq0011
  • 浏览: 557624 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

备份数据库SQL

阅读更多
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

 
分享到:
评论

相关推荐

    自动备份数据库sql2005

    "自动备份数据库sql2005"的实现主要涉及到SQL Server代理服务的使用,以及创建作业和计划来定时执行备份任务。以下将详细介绍这个过程: 1. **启动Sql Server 代理**: SQL Server 代理是SQL Server的一个组件,它...

    sql server自动备份数据库

    SQL Server 自动备份数据库 SQL Server 自动备份数据库是指通过设置代理来自动备份数据库文件的过程。下面是相关的知识点: SQL Server 代理 SQL Server 代理是 SQL Server 的一部分,负责执行预定义的作业,例如...

    自动备份数据库SQL AutoBack

    2:进入窗口设置后,输入联接数据库相关设置,然后确保联到数据库-->选择要备份的数据库-->选择备份目 标(此时请注意,C盘\文件夹名是中文名\文件名太长,会导致无法保存.) 3:请注意要备份的数据库大小,如果数据库非常大,...

    sqlserver通过作业备份数据库1

    SQL Server 通过作业备份数据库 SQL Server 作业是指 SQL Server Management Studio 中的一种自动执行任务的机制,它可以帮助数据库管理员自动执行常见的数据库维护任务,例如备份数据库、本地事务日志、数据库索引...

    数据库备份的语句

    这是数据库的备份和还原的sql语句,只适用于oracle数据库。

    SQL Server 数据库实现定时自动备份

    完整备份会备份数据库的所有内容,差异备份则只备份自上次完整备份以来发生更改的数据,而日志备份则记录事务日志中的所有更改,适用于事务密集型系统。 实现定时自动备份的方法通常是通过SQL Server代理服务和作业...

    winform 备份数据库(sql server)

    对于使用SQL Server作为数据库系统的项目,定期备份数据库可以防止数据丢失,确保业务连续性。本篇将详细讲解如何在Winform环境下实现SQL Server数据库的备份操作,并提供相关的源码分析。 首先,我们来看标题...

    经典的SQL语句,sql备份数据库

    经典SQL语句,sql备份数据库,sql基本入门的语法。

    SQL_Server_2008维护计划实现数据库定时自动备份

    3. **选择维护任务**:从可用的任务列表中选择“备份数据库(完整)”和“备份数据库(差异)”。 4. **定义任务细节**:分别为完整备份和差异备份任务定义具体的参数,如备份类型、备份文件的存储位置、验证备份...

    SQLServer数据库的备份和还原详解

    2. 在SQL Server Management Studio中新建一个与备份数据库同名的数据库。 3. 选择“所有任务 -> 还原数据库”,在“从设备”选项中选择备份文件。 4. 在“选项”页面中勾选“在现有数据库上强制还原”,并指定新的...

    php备份数据库为sql文件的类

    php备份数据库为sql文件的类

    sql2008自动备份数据库和定期删除数据库备份

    SQLServer 2008 自动备份数据库和定期删除数据库备份 SQLServer 2008 通过创建维护计划可以实现自动备份数据库和定期删除备份。为了实现这个功能,必须开启 SQLServer 的 SQLServer Agent 服务,因为这个服务默认是...

    Delphi SQL Server数据库备份程序_delphi_SQL_ServerDelphi_sqlserver_

    标题 "Delphi SQL Server数据库备份程序" 涉及到的是使用Delphi编程语言与Microsoft SQL Server数据库进行交互,特别是实现数据库的自动化备份功能。在IT领域,数据库备份是至关重要的,它保护了数据免受意外丢失或...

    批量备份数据库.SQL

    作为数据库管理员,或者是软件公司的项目经理经常面临着这个问题,一个数据库一个数据库的备份太累,通过上面的一个存储过程,能够批量备份系统中的所有数据库

    sql数据库备份sql数据库备份.doc

    事务日志备份是一种备份数据库事务日志的方式,能够帮助恢复数据库到某个特定的点。 制作自动化数据库备份 在 SQL Server 中,可以使用 SQL Server Agent 来制作自动化数据库备份。SQL Server Agent 是一种自动化...

    SQL Server数据库备份与恢复(C#代码示例)

    在SQL Server数据库管理中,备份和恢复是两个至关重要的操作,它们确保了数据的安全性和可恢复性。在本文中,我们将深入探讨如何使用C#语言来实现这些功能。C#结合SQL Server的API,如SqlClient和Smo,可以方便地...

    Sqlserver2005数据库还原备份工具

    本文将深入探讨“Sqlserver2005数据库还原备份工具”以及相关的知识点。 首先,我们关注的是“备份”。在SQL Server 2005中,备份是预防数据丢失的关键步骤。备份操作可以创建数据库的完整副本,以便在系统故障、...

    PHP实现数据库备份导出成sql

    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脚本

    windows下自动备份My SQL数据库bat脚本

    数据库SQL备份工具

    数据库SQL备份工具数据库SQL备份工具数据库SQL备份工具

Global site tag (gtag.js) - Google Analytics