MS SQL数据批量备份还原(适用于MS SQL 2005+) 分类: SQL Server 数据库 2015-03-10 14:32 103人阅读 评论(0) 收藏
我们知道通过Sql代理,可以实现数据库的定时备份功能;当数据库里的数据库很多时,备份一个数据库需要建立对应的定时作业,相对来说比较麻烦;
还好,微软自带的osql工具,比较实用,通过在命令行里里输入命令,也能实现数据库备份的功能;如果能通过sql语句来生成一个批处理文件,那就方便了;
下面即是生成批处理文件的sql脚本,通过它可以实现:运行一个批处理文件,备份数据库服务器上的所有数据库到指定目录。
生成批量备份脚本:
/************************************************************
* 数据备份脚本:
* 1.运行前,请根据实际配置修改相应账户信息;
* 2.请将脚本执行结果另存为批处理文件,执行批处理文件即可;
* 时间: 2015/3/10 14:21:15
************************************************************/ DECLARE @name NVARCHAR(200)
DECLARE @path NVARCHAR(500)
DECLARE @dbServer NVARCHAR(500)
DECLARE @dbUserName NVARCHAR(500)
DECLARE @dbUserPwd NVARCHAR(500)
--备份文件存放路径
SET @path = 'E:\05_DataBase_bakup\'
--数据库服务器
SET @dbServer = '.'
--数据库用户名
SET @dbUserName = 'sa'
--数据库用户密码
SET @dbUserPwd = '123'
DECLARE cursors CURSOR
FOR
--查询集合
SELECT [name]
FROM [sysdatabases]
WHERE NAME NOT IN ('master', 'tempdb', 'model', 'msdb') OPEN cursors
FETCH NEXT FROM cursors INTO @name
WHILE @@fetch_status = 0
BEGIN
--遍历集合
PRINT 'osql -S ' + @dbServer + ' -U ' + @dbUserName + ' -P ' + @dbUserPwd +
' -Q "BACKUP DATABASE ['
+ @name + '] TO DISK = ''' + @path +
'[%date:~0,4%%date:~5,2%%date:~8,2%]' + @name + '.bak''"'
FETCH NEXT FROM cursors INTO @name
END
CLOSE cursors
DEALLOCATE cursors
生成批量还原脚本:
/************************************************************
* 生成批量还原数据库脚本
* Time: 2015/4/19 18:30:05
************************************************************/
DECLARE @name NVARCHAR(200)
DECLARE @fileName NVARCHAR(200)
DECLARE @path NVARCHAR(500)
DECLARE @restorePath NVARCHAR(500)
DECLARE @dbServer NVARCHAR(500)
DECLARE @dbUserName NVARCHAR(500)
DECLARE @dbUserPwd NVARCHAR(500)
--数据库备份文件存放路径
SET @path = 'E:\05_DataBase_bakup\'
--数据库还原后的文件存放路径
SET @restorePath = 'E:\db2008\'
--还原到的数据库服务器
SET @dbServer = '192.168.0.7,1501\SQL2008'
--还原到的数据库用户名
SET @dbUserName = 'netuser'
--还原到的数据库用户密码
SET @dbUserPwd = 'netuser2008'
DECLARE cursors CURSOR
FOR
--查询集合
--注意:这里将数据库文件的物理路径替换掉了一部分,只保留数据库名称
SELECT [name],
REPLACE (REPLACE(FILENAME, 'E:\01.数据库\', ''), '.mdf', '') AS
[fileName]
FROM [sysdatabases]
WHERE NAME NOT IN ('master', 'tempdb', 'model', 'msdb') OPEN cursors
FETCH NEXT FROM cursors INTO @name,@fileName
WHILE @@fetch_status = 0
BEGIN
--遍历集合
PRINT 'osql -S ' + @dbServer + ' -U ' + @dbUserName + ' -P ' + @dbUserPwd +
' -Q "RESTORE DATABASE [' + @name + '] FROM DISK = ''' + @path + @name +
'.bak'' WITH FILE = 1, MOVE N''' + @fileName + ''' TO N''' + @restorePath
+ @name
+ '.mdf'', MOVE N''' + @fileName + '_log'' TO N''' + @restorePath + @name +
'.LDF'', NOUNLOAD, REPLACE,STATS = 10'
FETCH NEXT FROM cursors INTO @name,@fileName
END
CLOSE cursors
DEALLOCATE cursors
版权声明:本文为博主原创文章,未经博主允许不得转载。
MS SQL数据批量备份还原(适用于MS SQL 2005+) 分类: SQL Server 数据库 2015-03-10 14:32 103人阅读 评论(0) 收藏的更多相关文章
- MS SQL数据批量备份还原(适用于MS SQL 2005+)
原文:MS SQL数据批量备份还原(适用于MS SQL 2005+) 我们知道通过Sql代理,可以实现数据库的定时备份功能:当数据库里的数据库很多时,备份一个数据库需要建立对应的定时作业,相对来说比较 ...
- C# 获取网页数据、获取本机IP 分类: C# 2014-12-16 14:59 308人阅读 评论(0) 收藏
说明: (1) http://www.3322.org/dyndns/getip 这个网址可以获取本机IP,读取的内容就是本机IP (2)方法经测试,可以实现. (3)参考:http://www.cn ...
- SQL ID自增列从1开始重新排序 分类: SQL Server 2014-05-19 14:46 652人阅读 评论(0) 收藏
数据库中把ID自增长重置成1: 一般做法:(太麻烦) 复制表数据->删除原表.新建一张表->粘贴: 新方法: 数据库中:新建查询->复制.粘贴一下代码->修改表名,执行即可(先 ...
- irms模拟数据生成及数据分析 分类: H_HISTORY 2015-03-06 14:17 212人阅读 评论(0) 收藏
一.数据准备 1.每天生成随机一个文本,每小时向文本中追加2次数据,每次10万条 随机数据生成: 2,32 * * * * bash /mnt/jediael/irms/signalGenerat ...
- sql 视图 按where条件多个字段取一个 分类: SQL Server 2014-12-01 14:09 308人阅读 评论(0) 收藏
首先介绍一下 Case ..When...Then..End 的用法: CASEJiXiaoFind_RowID WHEN '1' THENJiXiao_Money1 WHEN '2' THEN ...
- JS 循环遍历JSON数据 分类: JS技术 JS JQuery 2010-12-01 13:56 43646人阅读 评论(5) 收藏 举报 jsonc JSON数据如:{"options":"[{
JS 循环遍历JSON数据 分类: JS技术 JS JQuery2010-12-01 13:56 43646人阅读 评论(5) 收藏 举报 jsonc JSON数据如:{"options&q ...
- Oracle备份与恢复介绍(物理备份与逻辑备份) 分类: Oracle 2015-07-27 22:59 15人阅读 评论(0) 收藏
算是挺全的了,有命令有真相 原文链接:http://blog.chinaunix.net/uid-354915-id-3525989.html 一.Oracle备份方式分类: Oracle有两类备份方 ...
- 用IBM WebSphere DataStage进行数据整合: 第 1 部分 分类: H2_ORACLE 2013-08-23 11:20 688人阅读 评论(0) 收藏
转自:http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0602zhoudp/ 引言 传统的数据整合方式需要大量的手工 ...
- 跨服务器备注SQL数据库 分类: SQL Server 2015-03-05 08:52 227人阅读 评论(0) 收藏
任务:把服务器1上的SQL数据库自动备份到服务器2上,命名格式=数据库名+年月日+小时. 说明: 服务器2=>192.168.0.22 数据库名=>Book 共享文件夹路径:192.168 ...
随机推荐
- JSP Servlet WEB生命周期
[转载] JavaWeb的生命周期是由Servlet容器来控制的总的来说分为三个阶段1.启动阶段:加载web应用相关数据,创建ServletContext对象,对Filter和servlet进行初始化 ...
- Linux下查看机器公网IP
http://jimingsong.iteye.com/blog/1188905 curl http://ifconfig.me
- swfit中的同步锁
swfit 中 objective-c 中的@syncronized 这个东西不能用了,应该用 objc_sync_enter(self) 代码 objc_sync_exit(self) 代替!
- 如果你修改了ashx.cs的命名空间
如果你修改了ashx.cs的命名空间,记得要同时修改ashx的WebHandler的Class. 在解决方案资源管理器中右键,查看标记
- CentOS新系统必做的几件事
一.修改yum源 要知道国外的yum源是很慢的,为了提高效率,更变为网易yum源. 首先备份/etc/yum.repos.d/CentOS-Base.repo(系统默认源): mv /etc/yum. ...
- XP共享连接数限制
- JS 异步加载的方法
(1) defer,只支持IE : <script type="text/javascript" defer="defer"> </scrip ...
- css 优先级 机制
多重样式(Multiple Styles):如果外部样式.内部样式和内联样式同时应用于同一个元素,就是使多重样式的情况. 一般情况下,优先级如下: (外部样式)External style sheet ...
- struts 拦截器 Interceptor
拦截器是AOP中的概念,它本身是一段代码,可以通过定义“织入点”,来指定拦截器的代码在“织入点”的前后执行,从而起到拦截的作用.正如上面 Struts2的Reference中讲述的,Stru ...
- visio 到处流程图
文件 -> 另存为 (选 .jpg) 选自定义,然后 300 * 300 像素.