广告
返回顶部
首页 > 资讯 > 数据库 >MSSQL通用还原脚本
  • 512
分享到

MSSQL通用还原脚本

2024-04-02 19:04:59 512人浏览 独家记忆
摘要

MSsql还原脚本SQL Server通用还原脚本,只需修改第二步中,需要还原的数据库名称和路径执行完脚本后会生成对应的还原命令,直接新建查询后执行即可-- 2 - Initi

MSsql还原脚本

SQL Server通用还原脚本,只需修改第二步中,需要还原的数据库名称和路径

执行完脚本后会生成对应的还原命令,直接新建查询后执行即可

MSSQL通用还原脚本


-- 2 - Initialize variables 

SET @dbName = 'Customer' 

SET @backupPath = 'D:\SQLBackups\' 


脚本如下:


--open-- xp_cmdshell

sp_configure 'show advanced options',1

reconfigure

Go

sp_configure 'xp_cmdshell',1

reconfigure

go

 

 

USE Master; 

GO  

SET NOCOUNT ON 

 

-- 1 - Variable declaration 

DECLARE @dbName sysname 

DECLARE @backupPath NVARCHAR(500) 

DECLARE @cmd NVARCHAR(500) 

DECLARE @fileList TABLE (backupFile NVARCHAR(255)) 

DECLARE @lastFullBackup NVARCHAR(500) 

DECLARE @lastDiffBackup NVARCHAR(500) 

DECLARE @backupFile NVARCHAR(500) 

 

-- 2 - Initialize variables 

SET @dbName = 'Customer' 

SET @backupPath = 'D:\SQLBackups\' 

 

-- 3 - get list of files 

SET @cmd = 'DIR /b ' + @backupPath 

 

INSERT INTO @fileList(backupFile) 

EXEC master.sys.xp_cmdshell @cmd 

 

-- 4 - Find latest full backup 

SELECT @lastFullBackup = MAX(backupFile)  

FROM @fileList  

WHERE backupFile LIKE '%.BAK'  

   AND backupFile LIKE @dbName + '%' 

 

SET @cmd = 'RESTORE DATABASE ' + @dbName + ' FROM DISK = '''  

       + @backupPath + @lastFullBackup + ''' WITH NORECOVERY, REPLACE' 

PRINT @cmd 

 

-- 4 - Find latest diff backup 

SELECT @lastDiffBackup = MAX(backupFile)  

FROM @fileList  

WHERE backupFile LIKE '%.DIF'  

   AND backupFile LIKE @dbName + '%' 

   AND backupFile > @lastFullBackup 

 

-- check to make sure there is a diff backup 

IF @lastDiffBackup IS NOT NULL 

BEGIN 

   SET @cmd = 'RESTORE DATABASE ' + @dbName + ' FROM DISK = '''  

       + @backupPath + @lastDiffBackup + ''' WITH NORECOVERY' 

   PRINT @cmd 

   SET @lastFullBackup = @lastDiffBackup 

END 

 

-- 5 - check for log backups 

DECLARE backupFiles CURSOR FOR  

   SELECT backupFile  

   FROM @fileList 

   WHERE backupFile LIKE '%.TRN'  

   AND backupFile LIKE @dbName + '%' 

   AND backupFile > @lastFullBackup 

 

OPEN backupFiles  

 

-- Loop through all the files for the database  

FETCH NEXT FROM backupFiles INTO @backupFile  

 

WHILE @@FETCH_STATUS = 0  

BEGIN  

   SET @cmd = 'RESTORE LOG ' + @dbName + ' FROM DISK = '''  

       + @backupPath + @backupFile + ''' WITH NORECOVERY' 

   PRINT @cmd 

   FETCH NEXT FROM backupFiles INTO @backupFile  

END 

 

CLOSE backupFiles  

DEALLOCATE backupFiles  

 

-- 6 - put database in a useable state 

SET @cmd = 'RESTORE DATABASE ' + @dbName + ' WITH RECOVERY' 

PRINT @cmd 

 

 

 

 


 


您可能感兴趣的文档:

--结束END--

本文标题: MSSQL通用还原脚本

本文链接: https://www.lsjlt.com/news/41201.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MSSQL通用还原脚本
    MSSQL还原脚本SQL Server通用还原脚本,只需修改第二步中,需要还原的数据库名称和路径执行完脚本后会生成对应的还原命令,直接新建查询后执行即可-- 2 - Initi...
    99+
    2022-10-18
  • shell 脚本--备份、还原mysql数据库
    备份mysql数据库#! /bin/bashBPATH=/home/backup/mysql_bakUSER="root"PASSWD="123456"HOST="192.168.1.5"DATE=$(da...
    99+
    2022-10-18
  • ORACLE RMAN自动备份还原脚本设计
    很多时候,我们DBA需要定时对生产环境进行整体备份,并恢复到测试环境,供开发人员调试或测试,如果数据量比较大的情况下,RMAN方式比较高效省时,下面策略是在生产环境部署备份任务,并在测试模拟环境进行定时还原的脚本。 生产库源端每周日全...
    99+
    2017-05-10
    ORACLE RMAN自动备份还原脚本设计
  • sqlserver数据库还原存储过程脚本
      存储过程必须要创建在系统数据库的master里 #from fhadmin.cn create proc killspid (@dbname varchar(20)) as begin ...
    99+
    2022-02-07
    sqlserver数据库还原存储过程脚本
  • 如何实现alwayson的备份还原脚本
    这篇文章主要介绍如何实现alwayson的备份还原脚本,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 1、 备份数据库 在主副本上,将需要做AlwaysOn的数据库做一次全备和日...
    99+
    2022-10-19
  • MySQL热备份与还原---利用mysqldump---备份脚本
    对extmail数据库进行每天01:00完全热备份,并可以完全恢复!一、先建立备份脚本,如下:vi mysql_extmail_bak.sh #!/bin/bash # Program ...
    99+
    2022-10-18
  • mssql sqlserver 使用sql脚本实现相邻两条数
    摘要:下文讲述使用sql脚本实现相邻两条数据相减的方法,如下所示:实验环境:sql server 2008 R2 实现思路:1.使用cte表达式,对当前表进行重新编号2.使用左连接对 表达式 生成的临时表进...
    99+
    2022-10-18
  • SQL Server2019数据库备份与还原脚本(批量备份)
    前言最近公司服务器到期,需要进行数据迁移,而数据库属于多而繁琐,通过图形化界面一个一个备份所需时间成本很大,所以想着写一个sql脚本来执行。 开始 数据库单个备份 ...
    99+
    2022-11-12
  • SQL Server生成sql脚本并执行还原数据库的示例分析
    这篇文章将为大家详细讲解有关SQL Server生成sql脚本并执行还原数据库的示例分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。上次介绍过如何通过ba...
    99+
    2022-10-19
  • Linux下shell通用脚本启动jar
    Linux下shell通用脚本启动jar?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。vim app_jar.sh#!/bin/bash#source /etc/...
    99+
    2023-06-09
  • 数据库备份、还原、删除、收缩,创建登录用户,数据库用户等操作脚本
    记录一下/ --备份数据库 use [master] go BACKUP DATABASE [LnkSys11] TO DISK = N"C:BackUpLnkSys11.bak" WITH --备份文件存放路径 NOFORMAT,...
    99+
    2015-06-09
    数据库备份 还原 删除 收缩,创建登录用户,数据库用户等操作脚本
  • MongoDB基本操作、备份还原及用户管理
    今日趁周末得空,将近日在学习的MongoDB数据库常用命令作以下整理,方便工作中查看 MongoDB的逻辑结构主要由文档、集合和数据库三部分组成。其中文档是MongoDB的核心概念,它是MongoDB逻辑...
    99+
    2022-10-18
  • Linux下shell通用脚本启动jar(微服务)
    vim app_jar.sh #!/bin/bash #source /etc/profile # Auth:Liucx # Please change these parameters according to y...
    99+
    2022-06-04
    shell 脚本启动jar linux shell jar
  • 通过Jython调用Python脚本的实现方法
    前言 前面在 BeanShell 里面是通过 java 脚本实现请求的预处理,jmeter里面也可以调用python的脚本,需安装 jython.jar 的插件. Jython 是 ...
    99+
    2022-11-12
  • 如何通过shell脚本批量添加用户
    这篇文章主要介绍了如何通过shell脚本批量添加用户,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。for添加指定类型用户以及设置随机密码这里分两种情况,一种是测试for循环批...
    99+
    2023-06-05
  • 用Python写游戏脚本原来这么简单
    前言最近在玩儿公主连结,之前也玩儿过阴阳师这样的游戏,这样的游戏都会有个初始号这样的东西,或者说是可以肝的东西。当然,作为一名程序员,肝这种东西完全可以用写代码的方式帮我们自动完成。游戏脚本其实并不高深,最简单的体验方法就是下载一个Airt...
    99+
    2023-05-14
    游戏 Python 脚本
  • 用D语言写脚本的原因有哪些
    这篇文章主要讲解了“用D语言写脚本的原因有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“用D语言写脚本的原因有哪些”吧!1、D 很容易读和写作为一种类似于 C 的语言,D 应该是大多数程...
    99+
    2023-06-15
  • PHP应用程序的打包:使用Bash脚本还是其他工具?
    在开发PHP应用程序时,我们通常需要将代码打包为一个可执行文件或者一个压缩包,以便于部署和分发。而在打包过程中,我们需要考虑许多因素,比如文件结构、依赖关系、版本管理等。那么,我们应该使用什么工具来打包我们的PHP应用程序呢? 在这篇文章...
    99+
    2023-11-06
    linux 打包 bash
  • 12C还原使用旧版本RMAN所创建的备份
    可以还原使用旧版本RMAN所创建的备份,最旧版本为9.2.0.8。在创建备份的数据库版本与还原备份的数据库版本之间必须有支持的升级路径存在。比如,源数据库的版本为11gr2并且配置使用spfile参数文...
    99+
    2022-10-18
  • 在linux shell脚本中root切换到普通用户执行脚本或命令的方法
    需求: 安装deb包,设置程序安装后启动,不需要root权限启动程序 | 不能用root权限启动 其他开机启动选项 方法:root临时降低权限 secUser=`who am i | awk '{print $1}...
    99+
    2022-06-04
    linux shell 切换root
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作