博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SqlServer一键复制数据库脚本
阅读量:6070 次
发布时间:2019-06-20

本文共 1960 字,大约阅读时间需要 6 分钟。

hot3.png

假定有两个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 offset source_server=192.168.0.1set source_server_user=saset source_server_password=saset target_server=192.168.0.2set target_server_user=saset target_server_password=saset database=TestDBset source_database_backup_file_dir=\\Systemname\ShareName\Pathset target_database_file_dir=\\Systemname\ShareName\Pathecho 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都需要访问数据库备份文件 ,存放备份文件的文件夹一般要设置为"共享"文件夹。

转载于:https://my.oschina.net/pangzhuzhu/blog/327100

你可能感兴趣的文章
纯手工打造漂亮的垂直时间轴,使用最简单的HTML+CSS+JQUERY完成100个版本更新记录......
查看>>
css/js在线压缩工具
查看>>
docker
查看>>
使用 Spring 2.5 注释驱动的 IoC 功能
查看>>
2:基本操作:全局显示/操作为漫游/选择/刷新
查看>>
在iOS下使用字体时关于字体名字的问题
查看>>
android获取软件列表
查看>>
原来fastboot boot custom.img可以无需刷机就以启动定制系统(以root)
查看>>
Android 处理调用系统相机生成的被旋转图片
查看>>
修改系统tabbar的高度
查看>>
Git 使用指南
查看>>
背景透明,文字不透明
查看>>
如何删除MYSQL表中的重复数据
查看>>
js中的replace用法
查看>>
Java基础学习总结——Java对象的序列化和反序列化
查看>>
Hadoop集群安装配置教程
查看>>
Android面试题目及其答案
查看>>
node上server与client通讯
查看>>
java源码分析 arraylist 增长机制
查看>>
PLSQL Developer使用技巧
查看>>