sqlserver 一键备份,异机还原脚本
REM +---------------------------------------------------------------------------------+
REM |desc AUTO backup sqlserver database and recovery to focdev env ervery week |
REM |auther: monkeybron 38339332@qq.com |
REM |NOTE : xp_cmdshell must ON V2.0 |
REM +---------------------------------------------------------------------------------+
REM +--------------------------------------------------------------------------+
REM | VALIDATE ENVIRONMENT VARIABLES |
REM +--------------------------------------------------------------------------+ set YYYYmmdd=%date:~0,4%%date:~5,2%%date:~8,2%
set hhmiss=%time:~0,2%%time:~3,2%%time:~6,2%
set BACKUPTEMP=D:\dbbackup
set BACKUPLOG=%BACKUPTEMP%\backup.log
SET RECOVERYLOG=%BACKUPTEMP%\recovery.log
set GRANTLOG=%BACKUPTEMP%\grant.log
set LOGFILE=D:\dba_scripts\autobackup_%YYYYmmdd%_%hhmiss%.log
set BAKCMDFILE=%BACKUPTEMP%\backup.rcv SET REMOTEUSER=sa
set REMOTEPASSWD=xxxxSET RECOVERYFILE=%BACKUPTEMP%\recovery.rcv
set GRANTFILE=%BACKUPTEMP%\GRANTFILE.rcv REM +--------------------------------------------------------------------------+
REM | REMOVE OLD LOG AND COMMAND FILES AND FILES |
REM +--------------------------------------------------------------------------+ del /q %BACKUPTEMP%
md %BACKUPTEMP% REM +--------------------------------------------------------------------------+
REM | WRITE BACKUP COMMAND SCRIPT. |
REM +--------------------------------------------------------------------------+ > %BAKCMDFILE% echo exec master.sys.xp_cmdshell 'net use g: \\172.31.40.41\dbbackup "xxxxx" /user:172.31.40.41\administrator',NO_OUTPUT
>> %BAKCMDFILE% echo go
>> %BAKCMDFILE% echo declare @s nvarchar(200),@del nvarchar(200)
>> %BAKCMDFILE% echo select @s='',@del=''
>> %BAKCMDFILE% echo declare datebak cursor for
>> %BAKCMDFILE% echo select
>> %BAKCMDFILE% echo [bak]='backup database '+quotename(Name)+' to disk =''g:\'+Name+'_'+convert(varchar(8),getdate(),112)+'.bak'' with init,format,compression,buffercount=50,maxtransfersize=4194304;',
>> %BAKCMDFILE% echo [del]='exec master..xp_cmdshell '' del g:'+Name+'_'+convert(varchar(8),getdate()-7,112)+'.bak'', no_output'
>> %BAKCMDFILE% echo from master..sysdatabases where dbid=db_id('isa')
>> %BAKCMDFILE% echo open datebak
>> %BAKCMDFILE% echo fetch next from datebak into @s,@del
>> %BAKCMDFILE% echo while @@fetch_status=0
>> %BAKCMDFILE% echo begin
>> %BAKCMDFILE% echo exec(@del)
>> %BAKCMDFILE% echo exec(@s)
>> %BAKCMDFILE% echo fetch next from datebak into @s,@del
>> %BAKCMDFILE% echo end
>> %BAKCMDFILE% echo close datebak
>> %BAKCMDFILE% echo deallocate datebak
>> %BAKCMDFILE% echo go
>> %BAKCMDFILE% echo exec master..xp_cmdshell 'net use g: /delete'
>> %BAKCMDFILE% echo go REM +--------------------------------------------------------------------------+
REM | PERFORM remote SQL BACKUP. |
REM +--------------------------------------------------------------------------+ sqlcmd -S 172.31.86.56 -U%REMOTEUSER% -P%REMOTEPASSWD% -i %BAKCMDFILE% -o %BACKUPLOG% REM +--------------------------------------------------------------------------+
REM | WRITE RECOVERY COMMAND SCRIPT. |
REM +--------------------------------------------------------------------------+ >%RECOVERYFILE% echo declare @i int declare cur cursor for select spid from sysprocesses where db_name(dbid)= 'isa_test' open cur fetch next from cur into @i while @@fetch_status=0 begin exec('kill '+@i) fetch next from cur into @i end close cur deallocate cur;
>>%RECOVERYFILE% echo drop database isa_test;
>>%RECOVERYFILE% echo declare @res nvarchar(200)
>>%RECOVERYFILE% echo select @res=''
>>%RECOVERYFILE% echo declare datebak cursor for
>>%RECOVERYFILE% echo select
>>%RECOVERYFILE% echo [res]='restore database isa_test from disk =''d:\dbbackup\'+'isa'+'_'+convert(varchar(8),getdate(),112)+'.bak'''
>>%RECOVERYFILE% echo + ' with move ''ISA_Data'' to ''D:\DATA\isa_test.mdf'',move''ISA_Log'' to ''D:\DATA\isa_test.ldf'';'
>>%RECOVERYFILE% echo from master..sysdatabases where dbid=db_id('master')
>>%RECOVERYFILE% echo open datebak
>>%RECOVERYFILE% echo fetch next from datebak into @res
>>%RECOVERYFILE% echo while @@fetch_status=0
>>%RECOVERYFILE% echo begin
>>%RECOVERYFILE% echo exec(@res)
>>%RECOVERYFILE% echo fetch next from datebak into @res
>>%RECOVERYFILE% echo end
>>%RECOVERYFILE% echo close datebak
>>%RECOVERYFILE% echo deallocate datebak
>>%RECOVERYFILE% echo go REM +--------------------------------------------------------------------------+
REM | RECOVERY to dev hosts. |
REM +--------------------------------------------------------------------------+ sqlcmd -i %RECOVERYFILE% -o %RECOVERYLOG% REM +--------------------------------------------------------------------------+
REM | WRITE GRANT PRIVILEGES COMMAND SCRIPT. |
REM +--------------------------------------------------------------------------+ >%GRANTFILE% echo USE [master]
>>%GRANTFILE% echo GO
>>%GRANTFILE% echo ALTER DATABASE [isa_test] SET RECOVERY SIMPLE WITH NO_WAIT
>>%GRANTFILE% echo go
>>%GRANTFILE% echo use isa_test
>>%GRANTFILE% echo go
>>%GRANTFILE% echo use isa_test
>>%GRANTFILE% echo go
>>%GRANTFILE% echo create user isa_test for login isa_test with default_schema=dbo
>>%GRANTFILE% echo exec sp_addrolemember 'db_owner', 'isa_test'
>>%GRANTFILE% echo go
>>%GRANTFILE% echo create user isa_r for login isa_r with default_schema=dbo
>>%GRANTFILE% echo ALTER ROLE [db_datareader] ADD MEMBER [liujing]
>>%GRANTFILE% echo go >>%GRANTFILE% echo grant select on OCR_factorS to isa_r;
>>%GRANTFILE% echo grant select on OCR_factor_Rick to isa_r;
>>%GRANTFILE% echo grant select on AIRLINES_ROUTES to isa_r;
>>%GRANTFILE% echo grant select on AIRLINES_ROUTES_PTP to isa_r;
>>%GRANTFILE% echo go REM +--------------------------------------------------------------------------+
REM | grant privileges to dev hosts. |
REM +--------------------------------------------------------------------------+ sqlcmd -i %GRANTFILE% -o %GRANTLOG% REM +--------------------------------------------------------------------------+
REM | merge log operation |
REM +--------------------------------------------------------------------------+
echo ------------- > %LOGFILE%
type %BACKUPLOG% >> %LOGFILE%
echo ------------- >> %LOGFILE%
type %RECOVERYLOG% >> %LOGFILE%
echo ------------- >> %LOGFILE%
type %GRANTLOG% >> %LOGFILE%
echo ------------- >> %LOGFILE%
echo complete! >> %LOGFILE%
sqlserver 一键备份,异机还原脚本的更多相关文章
- 利用rman进行异机还原(目录相同)
利用rman进行异机还原(目录相同) 源始库:192.168.201.2 目标库:192.168.201.3 --192.168.201.2 --rman [oracle@db01 ~]$ rman ...
- 使用rman备份异机恢复数据库
一.RMAN备份源库注意点: 最好保留rman备份日志 $rman target / log=backup.log RMAN>run { allocate channel t1 type dis ...
- Oracle备份恢复之冷备份恢复与异机还原
(同平台:rhel6.4~rhel6.4:同版本:oracle 11g 11.2.0.1~ oracle 11g 11.2.0.1) 冷备份发生在数据库关闭状态下,直接拷贝物理文件的备份方式,备份数据 ...
- Oracle RAC备份异机单实例恢复演练
本文只节选了操作方案的部分章节: 3. 操作步骤 3.1. 异机单实例Oracle数据库软件安装 在异机上进行单实例Oracle数据库软件安装.该步骤过程不再本文中重复描述,如果对安装过程存在疑问 ...
- RMAN 备份异机恢复 并创建新DBID
测试平台信息: Oracle:11gR2 操作系统:Redhat 5.5 Target DB:dave 几点说明: (1)RMAN 异机恢复的时候,db_name必须相同. 如果说要想改成其他的实 ...
- RMAN - 备份异机恢复
OS: Oracle Linux Server release 5.7 DB: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - ...
- RMAN冷备份异机还原
1:环境准备 在新的服务器上安装ORACLE实例,安装过程中需要注意源服务器与目标服务器的ORACLE_SID一致,另外确保安装路径与源路径一致(不仅是安装目录,甚至包括数据文件.控制文件目录.联机重 ...
- rman全备份异机恢复
一.测试环境 [oracle@localhost ~]$ uname -a Linux localhost.localdomain -.el6.x86_64 # SMP Tue May :: EDT ...
- Rman备份异机恢复
最后更新时间:2018/12/29 前置条件 已准备一台安装好Centos6+oracle11gr2 软件的服务器; 只安装了 oracle 数据库软件,需要手工创建以下目录: #环境变量 expor ...
随机推荐
- Java NIO 基础知识
前言 前言部分是科普,读者可自行选择是否阅读这部分内容. 为什么我们需要关心 NIO?我想很多业务猿都会有这个疑问. 我在工作的前两年对这个问题也很不解,因为那个时候我认为自己已经非常熟悉 IO 操作 ...
- MySQL Replication 详解MySQL数据库设置主从同步的方法
MySQL同步的流程大致如下: 1.主服务器(master)将变更事件(更新.删除.表结构改变等等)写入二进制日志(master log). 2.从服务器(slave)的IO线程从主服务器(binl ...
- Linux-(inotify-tools&rsync)
inotifywait命令 mac中的是:fswatch,fsevents-tools. 1.命令格式: inotifywait [参数] [events] [targetDir] 2.命令功能: 平 ...
- Tomcat学习总结(8)——Tomcat+Nginx集群解决均衡负载及生产环境热部署
近日,为解决生产环境热部署问题,决定在服务器中增加一个tomcat组成集群,利用集群解决热部署问题. 这样既能解决高并发瓶颈问题,又能解决热部署(不影响用户使用的情况下平滑更新生产服务器)问题. 因为 ...
- ASP.NET MVC5+EF6+LayUI实战教程,通用后台管理系统框架(7)- EF增删改查
前言 上一节创建了实体数据库,这次我们来看看怎么操作这个实体 代码实现 新建一个UserInfoController的控制器:不需要写什么代码,系统自动生成Index方法: 创建IDAL,DAL,IB ...
- zoj 2723 Semi-Prime(素筛打表+搜索优化)
题目链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2723 题目描述: Prime Number Definitio ...
- [HAOI 2010]订货
Description 题库链接 某公司估计市场在第 \(i\) 个月对某产品的需求量为 \(U_i\) ,已知在第 \(i\) 月该产品的订货单价为 \(d_i\) ,上个月月底未销完的单位产品要付 ...
- 并发编程之 ThreadLocal 源码剖析
前言 首先看看 JDK 文档的描述: 该类提供了线程局部 (thread-local) 变量.这些变量不同于它们的普通对应物,因为访问某个变量(通过其 get 或 set 方法)的每个线程都有自己的局 ...
- SQL SERVER TRANSACTION 事物
1.事务的概念 事物是一种机制,是一种操作序列,它包含了数据库一组操作命令,这组命令要么全部执行,要么都不执行.因此事物是一组不可分割的事物逻辑单元,在数据库进行并发操作时候,事物是作为最小的控制单元 ...
- C#+三层+会员管理系统源码
本打算上51aspx的 但是他们说我做的太简单..,那我还是拿出来共享给大家 源码下载地址 链接:http://pan.baidu.com/s/1boAwv2R 密码:ycrf 源码描述:一.源码 ...