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 一键备份,异机还原脚本的更多相关文章

  1. 利用rman进行异机还原(目录相同)

    利用rman进行异机还原(目录相同) 源始库:192.168.201.2 目标库:192.168.201.3 --192.168.201.2 --rman [oracle@db01 ~]$ rman ...

  2. 使用rman备份异机恢复数据库

    一.RMAN备份源库注意点: 最好保留rman备份日志 $rman target / log=backup.log RMAN>run { allocate channel t1 type dis ...

  3. Oracle备份恢复之冷备份恢复与异机还原

    (同平台:rhel6.4~rhel6.4:同版本:oracle 11g 11.2.0.1~ oracle 11g 11.2.0.1) 冷备份发生在数据库关闭状态下,直接拷贝物理文件的备份方式,备份数据 ...

  4. Oracle RAC备份异机单实例恢复演练

    本文只节选了操作方案的部分章节: 3.   操作步骤 3.1. 异机单实例Oracle数据库软件安装 在异机上进行单实例Oracle数据库软件安装.该步骤过程不再本文中重复描述,如果对安装过程存在疑问 ...

  5. RMAN 备份异机恢复 并创建新DBID

    测试平台信息: Oracle:11gR2 操作系统:Redhat 5.5 Target DB:dave   几点说明: (1)RMAN 异机恢复的时候,db_name必须相同. 如果说要想改成其他的实 ...

  6. RMAN - 备份异机恢复

    OS: Oracle Linux Server release 5.7 DB: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - ...

  7. RMAN冷备份异机还原

    1:环境准备 在新的服务器上安装ORACLE实例,安装过程中需要注意源服务器与目标服务器的ORACLE_SID一致,另外确保安装路径与源路径一致(不仅是安装目录,甚至包括数据文件.控制文件目录.联机重 ...

  8. rman全备份异机恢复

    一.测试环境 [oracle@localhost ~]$ uname -a Linux localhost.localdomain -.el6.x86_64 # SMP Tue May :: EDT ...

  9. Rman备份异机恢复

    最后更新时间:2018/12/29 前置条件 已准备一台安装好Centos6+oracle11gr2 软件的服务器; 只安装了 oracle 数据库软件,需要手工创建以下目录: #环境变量 expor ...

随机推荐

  1. CentOS7 下安装 iSCSI Target(tgt) ,使用 Ceph rbd

    目录 一.iSCSI 介绍 1. iSCSI 定义 2. 几种常见的 iSCSI Target 3. 优缺点比较 二.安装步骤 1. 关闭防火墙 2. 关闭selinux 3. 通过 yum 安装 t ...

  2. 中小团队快速实现持续交付iOS版

    时间来到8102年,但是很多中小团队还是缺少持续交付,打包发布还是处于原始手打阶段使得工程师们不能安安心心写点代码,明明今天还有很多bug需要修改,突然测试工程师跑过来说赶紧给我出一个包,这时候你不得 ...

  3. POJ 2262 Goldbach's Conjecture (打表)

    题目链接: https://cn.vjudge.net/problem/POJ-2262 题目描述: In 1742, Christian Goldbach, a German amateur mat ...

  4. 使用Spring JPA中Page、Pageable接口和Sort类完成分页排序

    显示时,有三个参数,前两个必填,第几页,一页多少个size,第三个参数默认可以不填. 但是发现这个方法已经过时了,通过查看它的源码发现,新方法为静态方法PageRequest of(page,size ...

  5. 使用EF CodeFirst连接MySql数据库

    如何使用EF CodeFirst连接MySql数据库? 我们这篇文章介绍怎么使用EF连接MySql 作者的环境 VS2017.Win10.MySql5.x 前言 一般在EF中,默认是使用SqlServ ...

  6. [转]Build beautiful, responsive sites with Bootstrap and ASP.NET Core

    本文转自:https://docs.microsoft.com/en-us/aspnet/core/client-side/bootstrap?view=aspnetcore-2.1 Bootstra ...

  7. 【MongoDB学习-安装流程】

    MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型. ...

  8. SQL - 循环

    declare @itemnumber int --定义需要循环的次数 declare @tagint int --定义标志字段,用于结束循环 select @itemnumber = count(d ...

  9. JavaScriptDay2-简单网页表单验证

    Html部分 <!-- 注册表单 1-用户名 text 2-密码 password 3-确认密码 password 4-性别 radio 5-爱好 hobby 6-籍贯 select-optio ...

  10. 简单的redis缓存操作(get、put)

    简单的redis缓存操作(get.put) 本文介绍简单的redis缓存操作,包括引入jedisjar包.配置redis.RedisDao需要的一些工具.向redis中放数据(put).从redis中 ...