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 ...
随机推荐
- Weiphp随笔,百度天气API接口
新建插件名必须大写 http://api.map.baidu.com/telematics/v3/weather?location=%E5%8C%97%E4%BA%AC&output=json ...
- python gui之tkinter界面设计pythonic设计
ui的设计,控件id的记录是一件比较繁琐的事情. 此外,赋值和读取数据也比较繁琐,非常不pythonic. 有没有神马办法优雅一点呢?life is short. 鉴于控件有name属性,通过dir( ...
- OLA音频变速算法的仿真与剖析
前段时间,在尝试音乐节拍数的提取时,终于有了突破性的进展,效果基本上比市面上的许多商业软件还要好,在作节拍数检测时,高频信息作用不大, 通过重采样减小运算量.重采样让我想起了在学校里面做的变速变调算法 ...
- 《oracle每天一练》Oracle之物化视图
相关帖子思考和跟踪 本文转自Ronger 物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的.普通视图是虚拟表,应用的局限性大,任何对视图的查询,Oracle都实 ...
- Insert Delete GetRandom O(1) I & II
Design a data structure that supports all following operations in O(1) time. insert(val): Inserts an ...
- POJ 1503
http://poj.org/problem?id=1503 对于这个题我也是醉了,因为最开始是有学长和我们说过这个题目的,我以为我记得题目是什么意思,也就没看题目,结果按案例去理解题意,结果WA了一 ...
- Kafka集群环境搭建
Kafka是一个分布式.可分区.可复制的消息系统.Kafka将消息以topic为单位进行归纳:Kafka发布消息的程序称为producer,也叫生产者:Kafka预订topics并消费消息的程序称为c ...
- .net Framework Class Library(FCL)
from:http://msdn.microsoft.com/en-us/library/ms229335.aspx 我们平时在VS.net里引用的那些类库就是从这里来的 The .NET Frame ...
- 【leetcode】Best Time to Buy and Sell (easy)
题目: Say you have an array for which the ith element is the price of a given stock on day i. If you w ...
- 一个.xib界面文件中设计有多个View
一个新建的.xib文件(Xcode's Interface Builder),有一个默认的View,也就是self.view,是主视图 其他新建的View可以在viewDidLoad()函数中使用 [ ...