2010-03-03 129 views
5

我拥有SQL Server 2008的非企业版本。我每晚进行备份,手动压缩文件,然后手动复制到远程服务器。SQL Server 2008 - 如何压缩备份文件并移动到远程服务器

我需要使用批处理文件自动执行此操作。将文件从服务器复制到服务器很容易,但是如何首先自动执行备份的压缩?

的全过程中,我需要的是:

  1. 运行备份每晚
  2. 邮编备份,以减少大小(以独特的zip文件名)
  3. 移动zip文件到这是一个远程服务器设置为数据库服务器上的网络驱动器

我承认压缩部分已经抛弃了我。任何建议将非常受欢迎。

在此先感谢。

回答

2

您可以(也应该!)绝对调查SQL Server maintenance plans

这允许你检查数据库一致性

  • 重建索引需要
  • 做数据库和日志备份(肯定使用SQL Server 2008的备份压缩!)像

    • 自动化的东西

    我不确定他们是否有内置的对压缩和复制到远程服务器的支持,但是您可以通过维护计划自动执行备份部分,用其他的命令文件找到其余的。

  • +0

    感谢marc_s,我建议您在维护计划中自动备份数据库备份。问题是备份是2.4GB,需要一段时间才能复制到第二台服务器。压缩备份文件减少到仅仅300mb。复制速度快得多。我一直在关注如何自动化文件的压缩 – Mark 2010-03-03 22:28:58

    +1

    @Mark:您可以设置一个批处理文件来执行此操作,并在Windows“计划任务”下的某个给定时间自动执行此操作。维护计划运行1小时后。只要确保该文件在任何情况下由于丢失而中止。不要太难....大多数ZIP实用程序提供命令行界面,您可以在批处理/ Windows.cmd文件中使用 – 2010-03-03 22:31:03

    +0

    marc_s感谢您的建议,现在我有一条路要走。干杯 – Mark 2010-03-03 22:33:01

    1

    您不指定您正在使用的zip实用程序。有很多,但我倾向于使用Winzip,因为这是工作中使用的主要压缩工具。 Winzip有一个命令行界面(http://www.winzip.com/prodpagecl.htm),它是一个可以从命令行调用的免费的winzip插件。

    另一种方法是通过命令行使用cygwin和tar.gz。

    1

    你可以从命令行压缩东西,例如RAR。只需将ZIP命令添加到复制的任何位置即可。如果使用T-SQL,则可以使用xp_cmdshell执行ZIP命令。

    对于豪华选项,请查看Red Gate Backup,它使这个过程非常轻松。

    2

    如果你只是停留在如何从一个批处理脚本压缩:

    1. 安装在命令行中的7-Zip
    2. 运行:
      “C:\ Program Files文件\ 7-Zip的\ 7z.exe“a -t7z MyBackups.7z [Files To Zip]

    要获得唯一的文件名,我通常会嵌入日期/时间:yyyymmddhhMMss-backup。7z

    1

    既然你已经有了2008年,你已经安装了Powershell。我建议看一下在成功备份后执行的psh脚本,以便通过电缆进行压缩和复制。这很可能是备份后的第二个工作步骤。

    你也可以去老派写一个批处理文件来做压缩和复制。然后在备份作业/步骤后再次将其作为cmdshell作业步骤调用。

    1

    如果您是程序员,您可以创建一个应用程序,通过SMO获取您的数据库备份并将该文件压缩为.gz文件,并且可用库。

    0

    尝试此链接: [http://www.sqlhub.com/2009/05/copy-files-with-sql-server-from-one.html][1]

    总之

    1 - 你必须启用 “OLE自动化过程”

    2 - 修改&运行此脚本测试:

    DECLARE @FsObjId  INTEGER 
    DECLARE @Source   VARCHAR(4096) 
    DECLARE @Destination VARCHAR(4096) 
    SET @Source = 'C:\ritesh' 
    SET @Destination= 'D:\ritesh' 
    --creare OLE Automation instance 
    EXEC sp_OACreate 'Scripting.FileSystemObject', @FsObjId OUTPUT 
    --call method of OLE Automation 
    EXEC sp_OAMethod @FsObjId, 'CopyFolder', NULL, @Source, @Destination 
    --once you finish copy, destroy object 
    EXEC sp_OADestroy @FsObjId 
    

    3 - 创建维护计划:

    3.1 - 添加“备份数据库任务”并确保选择“设置备份压缩”=压缩备份。 (这将以压缩格式创建备份)

    3.2 - 使用上述脚本添加“执行T-SQL语句任务”,该脚本将移动将在3.1任务后执行的文件:)。

    0

    尝试SQL Backup Master,它可以压缩备份并将它们移动到网络(或本地)文件夹。也可以将压缩的备份文件移至FTP,Dropbox,Amazon S3或Google Drive。基本版是免费的。

    4

    您可以使用SQLBackupAndFTP软件备份数据库。这是一个简单的UI工具,可以执行和调度备份作业(完整,差异和日志备份)。它只是使用嵌入式归档器或7-zip压缩备份并发送到本地文件夹或NAS驱动器或FTP或云(Dropbox,Google Drive,Amazon S3)。还有support forum

    0

    备份后压缩文件需要很长时间。使用SQL Server虚拟设备接口的备份程序可以解决您的任务并缩短总体处理时间。尝试EMS SQL Backup,它还允许将压缩备份发送到网络位置,FTP或云。