zoukankan      html  css  js  c++  java
  • 备份文件命令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都须要拜访数据库备份文件 ,寄存备份文件的文件夹一般要设置为"享共"文件夹。

        

    文章结束给大家分享下程序员的一些笑话语录: 手机终究会变成PC,所以ip会比wm更加畅销,但是有一天手机强大到一定程度了就会发现只有wm的支持才能完美享受。就好比树和草,草长得再高也是草,时间到了条件成熟了树就会窜天高了。www.ishuo.cn

  • 相关阅读:
    九九乘法表
    获取1-10 的和,并打印 2.1-100 之间 7 的倍数的个数,并打印
    1-100之间 7 的倍数的个数,并打印
    无限循环的最简单的表现形式
    for 和 while 区别
    do while 和 while 区别
    if 和 switch 比较
    星期和月份
    【运筹优化】求职与工作思考 -求职需要的技能(一)
    python 在线笔试的OJ输入输出总结
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3036526.html
Copyright © 2011-2022 走看看