一键备份多个SQL Server数据库脚本
"该资源提供了一个自动备份多个SQL Server数据库的解决方案,特别适用于SQL Server 2005和SQL Server 2008环境。它通过一个简单的工具或脚本,实现了定时一键备份所有在线状态且非系统数据库的功能,提高了数据库管理效率。" 在SQL Server数据库管理中,定期备份是保障数据安全的重要步骤。手动备份每个数据库不仅耗时,而且容易出错。针对这一问题,提供的资源提供了一种自动化的方法,能够有效地批量备份多个数据库。这个解决方案主要基于SQL Server的Transact-SQL语句,利用存储过程或者批处理脚本来实现。 脚本的核心部分是一个游标(cursor)遍历`sys.databases`系统视图中的所有在线数据库(state=0)。它排除了系统数据库,如'master', 'model', 'msdb', 'tempdb', 'ReportServer', 'ReportServerTempDB',因为这些通常不需要常规备份。对于每个找到的在线数据库,它会构造一个备份文件的完整路径和名称,格式为:数据库名_日期.bak。这里使用了`GETDATE()`函数获取当前日期,并按照指定的格式(120)转换为字符串。 然后,使用`BACKUP DATABASE`语句将数据库备份到构建好的路径中。例如,如果数据库名为'database1',备份文件将命名为'database1_2022-07-27.bak',存储在'D:\tools\Database\'目录下。一旦备份完成,游标会移动到下一个数据库,继续进行备份,直到所有符合条件的数据库都完成备份。 这样的自动化备份策略可以极大地简化数据库管理员的工作,确保即使在发生意外情况时,也能快速恢复数据。用户只需设置一次,之后就能每天自动执行,降低了人为错误的风险,并且提高了备份的效率。如果你正在寻找一种高效、便捷的方式来管理SQL Server 2005或SQL Server 2008的数据库备份,这个工具或脚本无疑是一个理想的选择。
go
DECLARE @bak_path NVARCHAR(200)
DECLARE @bak_file_name NVARCHAR(200)
--设置文件备份路径
SET @bak_path = 'D:\tools\DataBase\'
--利用游标遍历,逐个备份数据库
DECLARE @db_name SYSNAME
DECLARE cur_database CURSOR FOR
SELECT [name]-- 查询所有数据库
FROM sys.databases
WHERE [state] = 0 -- 0 = ONLINE 在线状态
AND [name] NOT IN ( 'master', 'model', 'msdb', 'tempdb', 'ReportServer','ReportServerTempDB')
--系统数据库、演示数据库除外
OPEN cur_database
FETCH NEXT FROM cur_database INTO @db_name
WHILE ( @@FETCH_STATUS = 0 )
BEGIN
--设置备份文件名称,形如:dbname_2011-10-09.bak
SET @bak_file_name = @bak_path + '' + @db_name + '_'
+ CONVERT(VARCHAR(10), GETDATE(), 120) + '.bak'
--开始完整备份
BACKUP DATABASE @db_name TO DISK = @bak_file_name
FETCH NEXT FROM cur_database INTO @db_name
END
下载后可阅读完整内容,剩余1页未读,立即下载
- 粉丝: 19
- 资源: 9
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- WebLogic集群配置与管理实战指南
- AIX5.3上安装Weblogic 9.2详细步骤
- 面向对象编程模拟试题详解与解析
- Flex+FMS2.0中文教程:开发流媒体应用的实践指南
- PID调节深入解析:从入门到精通
- 数字水印技术:保护版权的新防线
- 8位数码管显示24小时制数字电子钟程序设计
- Mhdd免费版详细使用教程:硬盘检测与坏道屏蔽
- 操作系统期末复习指南:进程、线程与系统调用详解
- Cognos8性能优化指南:软件参数与报表设计调优
- Cognos8开发入门:从Transformer到ReportStudio
- Cisco 6509交换机配置全面指南
- C#入门:XML基础教程与实例解析
- Matlab振动分析详解:从单自由度到6自由度模型
- Eclipse JDT中的ASTParser详解与核心类介绍
- Java程序员必备资源网站大全