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 ...
随机推荐
- 2. Android系统启动流程
1.启动加载完内核 2.执行init进程 ----> 设备初始化工作 a1. 读取inic.rc a2. 启动Zygote进程 ----> 该进程是所有进程的孵 ...
- iOS开源App整理
http://duxinfeng.com/2015/07/14/iOS%E5%BC%80%E6%BA%90App%E6%95%B4%E7%90%86/ http://blog.csdn.net/dux ...
- cocos2dx 2.x实现闪电效果(贴画版)
cocos2dx 2.x实现闪电效果(非画线版) 在网上搜索到一个直接用opengl画线实现的版本,但放在游戏中效果不太搭,要求用贴图的.我这个版本用的也是画线版的算法. 闪动的时候效果还可以,每段衔 ...
- html表单样式, table隔行高亮, 长字符串自动换行
2016年1月14日 11:16:54 星期四 效果图: html: <!DOCTYPE html> <html lang="en"> <head&g ...
- Linux下安装Scala
Linux下安装Scala和Windows下安装类似,步骤如下: 首先访问下载链接:http://www.scala-lang.org/download/默认这里下载的是Windows版本,这时点击上 ...
- eclipse中手动导入DTD文件的方式
DTD一般应用在应用程序中定义数据交换类型的文档,一般用在xml配置文件中,有些时候在eclipse中并不能加载一些提示,这个时候需要手动导入,导入方法如下: 1.首先根据声明的网址下载.dtd的文件 ...
- Effective C++ -----条款18:让接口容易被正确使用,不易被误用
好的接口很容易被正确使用,不容易被误用.你应该在你IDE所有接口中努力达成这些性质. “促进正确使用”的办法包括接口的一致性,以及与内置类型的行为兼容. “阻止误用"的办法包括建立新类型.限 ...
- POJ 1681 Painter's Problem (高斯消元)
题目链接 题意:有一面墙每个格子有黄白两种颜色,刷墙每次刷一格会将上下左右中五个格子变色,求最少的刷方法使得所有的格子都变成yellow. 题解:通过打表我们可以得知4*4的一共有4个自由变元,那么我 ...
- ZooKeeper 配置文件(zoo.cfg)详解
参数名 说明 clientPort 客户端连接server的端口,即对外服务端口,一般设置为2181吧. dataDir 存储快照文件snapshot的目录.默认情况下,事务日志也会存储在这里.建议同 ...
- Sightseeing(poj 3463)
题意:给出n个点m条单向边,求最短路的道路条数和比最短路大1的道路条数的和. /* 用Dijkstra更新2*n次,来更新出所有点的最短路和次短路,顺便更新方案数. */ #include<cs ...