Windows Server - 目录和数据库备份

时间:2011-12-01 17:25:47

标签: windows sql-server-2008 backup windows-server-2008

我们上周在工作中遇到了一个问题,如果我们有一个计划任务正在运行,它将被排序。

基本上我想要知道的是,我需要创建一个批处理文件,在Windows服务器上执行以下任务。

  • 备份网站(基本上是一个文件夹及其所有子目录) 每天早上8:30到特定文件夹,格式为websitename_year_month_day

  • 备份网站(基本上是一个文件夹及其所有子目录)
    每晚5:30到特定文件夹,格式为websitename_year_month_day

  • 将相应的数据库同时备份到网站备份所在的同一文件夹位置。

因此,例如,如果该网站名为swade1987

该文件夹将在附件中显示此文件结构。

http://imageshack.us/photo/my-images/254/screenclip1.png/

但是,理想情况下,我希望它只保存过去7天的备份。

期待您的答复,了解如何做到最好。

如果您需要更多说明,请告诉我

史蒂芬

1 个答案:

答案 0 :(得分:0)

以下是您需要的部分:

  1. 获取7za.exe - 一个免费的独立Windows压缩实用程序(google for 7z命令行,您将找到它)。

  2. 使用microsoft的sqlcmd.exe从批处理文件(mssql附带的命令行sql执行程序)备份数据库

  3. 以下是如何为文件命名: 因为你只想保留最近7天,不要把日期放在名字中,把周日的缩写放在文件名中。例如website_mon.zip

    这是一个执行此操作的示例批处理文件。 自行承担使用风险。它尚未经过测试。我刚从头顶想出来。遵循代码和注释,并根据需要进行修改。如果没有错字或三个,我会感到震惊。还要观察你添加/修改的dos命令......如果它们包含长文件名,你可能需要添加一些周围的引号。

    @echo off
    set SHORTDATE=%DATE:~0,3%
    
    set DB_ZIP_FILE=c:\backups\sitedb_%SHORTDATE%.zip
    set WWW_ZIP_FILE=c:\backups\siterot_%SHORTDATE%.zip
    set WEBSITE_DIR=c:\mysite\wwwroot
    
    set SQL_FILE=c:\temp\backup.sql
    
    rem * get rid of our old backups
    rem * this is for our protection ... if there
    rem * was a problem with a zip (corruption) 
    rem * our backups will fail if we don't get rid
    rem * of the old zips.
    rem *
    if exist %DB_ZIP_FILE% del %DB_ZIP_FILE%
    if exist %DB_ZIP_FILE% del %WWW_ZIP_FILE%
    
    rem * create a temp file containing the sql script
    echo BACKUP DATABASE YOUR_DB_NAME> %SQL_FILE%
    echo TO DISK='c:\temp\sitedb-%SHORTDATE%.bak'>>%SQL_FILE%
    echo WITH FORMAT, Name='Daily sitedb %SHORTDATE%' >> %SQL_FILE%
    
    echo %DATE% %TIME% backing up SITEDB
    call sqlcmd -U YOURUSER -P YOURPASSWORD -i %SQL_FILE% > NUL
    
    rem ** zip the files - we remove the old one before starting
    call 7za a -tzip %ZIP_FILE% c:\temp\sitedb-%SHORTDATE%.bak
    
    rem ** delete the bak file
    del c:\temp\sitedb-%SHORTDATE%.bak
    
    rem ** now zip up our web site directory
    7za a -tzip -r %WEBSITE_DIR% %WWW_ZIP_FILE%