`

SqlServer一键复制数据库脚本

 
阅读更多

假定有两个Server:192.168.0.1和192.168.0.2,需要复制的数据库名为TestDB,现将该库由192.168.0.1复制到192.168.0.2,其中%source_database_backup_file_dir%为存放192.168.0.1上TestDB库备份文件的文件夹,%target_database_file_dir%为192.168.0.2上TestDB数据库文件所在的文件夹,BAT脚本如下:

@echo off

set source_server=192.168.0.1
set source_server_user=sa
set source_server_password=sa

set target_server=192.168.0.2
set target_server_user=sa
set target_server_password=sa

set database=TestDB

set source_database_backup_file_dir=\\Systemname\ShareName\Path
set target_database_file_dir=\\Systemname\ShareName\Path

echo Start to backup source database...
osql -S"%source_server%"  -U"%source_server_user%" -P"%source_server_password%" -n -h-1 -d"%database%" -Q"BACKUP DATABASE %database% TO DISK = '%source_database_backup_file_dir%\%database%.bak' WITH INIT;"

echo Disconnect all existing connections of target database.
osql -S"%target_server%"  -U"%target_server_user%" -P"%target_server_password%" -Q"declare @i int declare cur cursor for select spid from sysprocesses where db_name(dbid)= '%database%' 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"

echo Start to resotre target database from source database backup file...
osql -S"%target_server%"  -U"%target_server_user%" -P"%target_server_password%" -n -h-1 -d"Master" -Q"RESTORE DATABASE %database% FROM DISK = '%source_database_backup_file_dir%\%database%.bak' WITH REPLACE,MOVE '%database%' TO '%source_database_backup_file_dir%\%database%.mdf',MOVE '%database%_Log' TO '%source_database_backup_file_dir%\%database%_log.ldf';"

echo DONE!!

pause

本脚本主要使用BACKUP命令为原库生成一个备份文件,然后使用RESTORE命令将备份文件恢复到目标库,从而实现数据库复制。关于BACKUP命令请参考:http://msdn.microsoft.com/zh-cn/library/ms186865.aspx,关于RESTORE命令请参考:http://msdn.microsoft.com/zh-cn/library/ms186858.aspx

有两个细节说明一下:

1. BACKUP语句中的WITH INIT用于每次备份时覆盖原备份文件中的数据。

2. 由于两个Server都需要访问数据库备份文件 ,存放备份文件的文件夹一般要设置为"共享"文件夹。


分享到:
评论

相关推荐

    备份SQLserver数据库脚本

    备份sqlserver数据库时候,虽然有自动备份的工具,但是并不保险,我们一般还会在进行物理备份,但这时候需要暂停SQLSERVER的服务,然后拷贝,最后在开启服务,这样是非常麻烦的,该脚本可以实现一键备份

    SQL Server 查询表内容

    一键在数据库中所有的表查询所需要的数据,不需要知道表名,字段名,查询出内容所在的数据库表,字段。

    C# 备份,还原sqlserver,SQL server还原,附加,分离一键操作 数据备份 数据还原

    实现对sqlserver数据库的备份还原,附加分离的操作 方便快捷,全部一键操作。

    (LebiShop)SQLSERVER数据库同步工具

    1,比较两个数据库的结构或数据差异并生成SQL脚本,一键同步 2,生成整个数据库的建库SQL脚本代码 3,在目标数据执行SQL代码 4,SQLSERVER转ACCESS,自动建表同步字段并导入数据 环境要求: 1,微软.NET Framework4.0...

    excel生成数据库建表脚本(支持mysql,SqlServer)

    excel生成数据库建表脚本(支持mysql,SqlServer) 使用多年,很好用,按照格式编写数据库文档,可以一键生成数据库建表脚本

    Oracle和SQLServer相关服务一键开启和关闭脚本

    下好以后,改一下脚本里面oracle数据库名,(SELECT NAME FROM V$DATABASE) SQLServer的有点小问题 不过问题应该不大

    Centos7.6使用docker-compose一键部署sqlserver2017工具

    6、手动备份:一键脚本备份数据库数据 7、手动恢复:一键脚本恢复数据库数据 8、定时备份:通过定时任务定时备份数据库 9、异机备份:将数据库备份文件实时同步其它主机 10、支持停止、启动、检查、部署、移除服务及...

    bat启动mysql和oracle

    一键启动数据库,方便快捷,bat文件,让不用再去每次都找到服务再点启动

    二级等保安全性一键设置

    随着国家对网络安全监管不断严格,产品上线互联网需要等保过级已经成为基本要求。等保的安全性是多方面的,如:网络、操作系统、数据库、程序等, ...2.SQLServer数据库 5项 设置文件:数据库一键设置.vbe

    EMS DB Extract for SQL Server试用版:一款SQL Server数据库数据备份工具

    EMS DB Extract for SQL Server 是一款优秀且易用的工具,它用SQL脚本的形式来创建数据库备份。您可以保存所有的数据库对象及表数据的元数据。可灵活的定制提取过程,使您可选择对象以及提取数据表并调整其它许多的...

    数据库原理及应用的初始数据库

    此脚本文件是数据库原理及应用前期的一个数据库,可以一键安装,只需要提前建立一个名为sampleDB的数据库。对学习数据库原理有很大的帮助。

    SQLIndexManager:用于在SQL Server和Azure上进行索引维护的免费GUI工具

    SQL索引管理器 该工具使您可以快速找出索引的状态,并发现需要维护的数据库。...支持任何版本SQL Server 2008+和Azure 还有很多其他改进:) 最新版本 您可以从下载具有master分支的最新版本的.zip文件。 屏幕截图

    2020版全国省市区县数据大全----SQL脚本

    自己以前的数据库发现部分很多区县被划分其他省去了,所以今天特别更新了我以前的全国省市区县数据,自带数据模型,新增中国地理七大区域划分,可执行SQL一键导入,可执行SQL语句导入,方法任选总有一种适合你。

    数据库审计系统需求说明.docx

    3 协议支持 支持主流数据库: Oracle、SQLServer、Mysql、DB2 infomix、Sybase、CACH、 达梦、人大金仓、神舟 Oscar、南大通用 GBASE数据仓库teradata。 支持主流业务协议: TeInet、SMTP POP3 DCOM 4 审计内容 ...

    动软.Net代码生成器

    类似SQLServer2005的管理界面,方便平常在代码编辑的时候想查看数据库的信息,并且可以很直观的查看字段类型,长度,主键,默认值等详细信息,省去了在代码和数据库管理器之间的来回切换,方便快捷。 •可支持SQL ...

    asp.net三层架构生成器(含教程)中文版

    具有类似SQLServer2008的查询分析器。 便捷工具:搜索表和字段的功能。 便捷工具:自动生成数据库结构文档。 便捷工具:Web项目发布,方便网站日常的升级和更新。 便捷工具:C#到VB.NET代码转换器。

    AntMgr:netcore + vue mvc角色管理快速开发系统(菜单,角色,权限[精确到按钮])

    蚂蚁经理 基于netcore2.0 mvc开发的快速构建具有如下特色的后台管理系统最新版本已升级到aspnetcore3.1 特色: 用户管理 菜单管理 角色管理 权限管理[精确到按钮]) ...sqlserver数据库的初始化脚本(我测试用的是

    易维清源代码生成软件

    软件使用Microsoft SQL Server数据库(SQL Server 2005、2008、2008R2和2012)。 可通过生成源代码按钮一键生成C#、Javascript代码,节约编写代码时间。生成的工程文件为Microsoft Visual Studio 2010 格式。 ...

    UniDac 8.0.1〖D7,2007,10.1,10.2,10.3〗一键安装版已XX版

    unidac是一个完整的标准数据库连接解决方案,可以支持 Oracle, SQL Server, MySQL, InterBase, 和 Firebird。 unidac的技术亮点 支持最流行的数据库 全力支持最新的服务器版本 支持最新的IDE版本 的VCL和vcl. net两...

Global site tag (gtag.js) - Google Analytics