zoukankan      html  css  js  c++  java
  • 利用批處理自動在異地備份數據庫

    利用批處理自動在異地備份數據庫
     
    在日常數據庫管理中,我們通常採用各種方法將數據庫數據進行備份,目的是保證數據的安
    全,而各種備份方法都有自己的優缺點,這裡向大家推薦一種:假設有機器PC-A和PC-B,P
    C-A安裝了DB(SQLSERVER2005),並且設置每日定時維護,一般備份到本機磁盤上,而且一
    般都要保存幾天,有時為了安全,我們需要把當天的數據備份到PC-B,手工複製太麻煩,用
    批處理能解決問題,還可壓縮.
    操作如下,首先進入PC-B中從Pc-A映射一個網絡盤,假設PC-A維護計劃是3:00,5:00完
    成,那麼PC-B可以制定一個計劃在5:30執行,通過自動壓縮(安裝WinRar即可),只要磁
    盤空間大,可以存放1個月的數據都沒有問題,我的DB一天備份要生成20G,通過壓縮
    後只有4G,而且自動生成當日日期的壓縮文件;源代碼如下,保存成A.bat即可使用,大家
    可根據具體情況,進行相應改動


    @Echo OFF
    echo 進D盤
    D:
    cd d:\
    IF NOT EXIST COREDBBAK\nul mkdir COREDBBAK
    CD COREDBBAK
    Echo 獲得當前日期
    SET myDate=%date:~0,4%%date:~5,2%%date:~8,2%
    Echo 生成某日期目錄
    IF NOT EXIST "%myDate%\nul" mkdir "%myDate%"
    CD %myDate%
    Echo 生成要備份的列表
    Echo 先刪除已有的文件
    IF EXIST A.txt Del A.txt
    Echo 生成列表
    dir /s/b/a z:\ | find "%myDate%" >a.txt

    Echo 獲個複製文件
    for /F %%i in (a.txt) do (xcopy %%i )

    Echo 回到上一級
    cd ..

    Echo 執行壓縮命名
    "C:\Program Files\WinRAR\winrar" a %myDate% %myDate%

    RmDir %myDate% /S/Q

    Echo 完成

    Echo on




    另外一種:
    ---磁盤映射

    exec   master..xp_cmdshell   'net   use   z:   \\xz\c$   "密碼 "   /user:xz\administrator '

    /*--說明:
    z:是映射網絡路徑對應本機的盤符,與下面的備份對應
    \\xz\c$是要映射的網絡路徑
    xz\administratorxz是遠程的計算機名,administrator是登陸的用戶名
    密碼                                                 上面指定的administrator用戶的密碼
    --*/


    --2.進行數據庫備份
    declare   @dbname   varchar(256)
    declare   @sql   varchar(8000)
    declare   cur   cursor   local   for
    select   name   from   master..sysdatabases   where   dbid> 4
    open   cur
    fetch   next   from   cur   into   @dbname
    while   @@fetch_status=0
    begin
    set   @sql= 'backup   database   '+@dbname
    + '   to   disk= ' 'z:\ '+@dbname
    + '.bak ' '   with   password= ' '111 ' ' '
    exec(@sql)
    fetch   next   from   cur   into   @dbname
    end
    close   cur
    deallocate   cur

    --3.備份完成後刪除映射
    exec   master..xp_cmdshell   'net   use   z:   /delete '

  • 相关阅读:
    SqlConnectionStringBuilder
    什么时候使用“静态方法”(转)
    Dos命令下多文件中查找某字符串
    StructLayout(LayoutKind.Sequential)(转)
    DOS批处理高级教程:第四章 批处理中的变量(转)
    DOS批处理高级教程:第一章 批处理基础(转)
    C#各种进制之间数据转换二进制、八进制、十进制、十六进制
    DOS批处理高级教程:第六章 if命令讲解(转)
    ModbusRTU模式和结束符(转)
    DOS批处理高级教程:第七章 DOS批处理编程高级技巧(转)
  • 原文地址:https://www.cnblogs.com/godwar/p/1228313.html
Copyright © 2011-2022 走看看