[英]How to Move backup files from one server to another in Sql Server
[英]SQL Server 2008 - how to zip backup files and move to remote server
我有非企业版的SQL Server 2008.我每晚进行备份,手动压缩文件然后手动复制到远程服务器。
我需要使用批处理文件自动执行此操作。 将文件从服务器复制到服务器很简单,但如何首先自动完成备份的压缩?
我需要的全部流程是:
我承认压缩部分让我失望了。 任何建议都会受到欢迎。
提前致谢。
您可以使用SQLBackupAndFTP软件备份数据库。 它是一个简单的UI工具,能够执行和安排备份作业(完整备份,差异备份和日志备份)。 它只是使用嵌入式归档程序或7-zip压缩备份,并发送到本地文件夹或NAS驱动器或FTP或云(Dropbox,Google Drive,Amazon S3)。 还有支持论坛 。
您可以(并且应该!)最明确地调查SQL Server 维护计划 。
这些允许您自动执行类似的操作
我不确定他们是否内置支持压缩和复制到远程服务器,但你绝对可以使用维护计划自动化备份部分,其余部分使用某种命令文件。
如果您只是坚持如何从批处理脚本压缩:
要获得唯一的文件名,我通常会嵌入日期/时间:yyyymmddhhMMss-backup.7z
您没有指定您正在使用的zip实用程序。 有很多,但我倾向于使用Winzip,因为这是工作中使用的主要zip工具。 Winzip有一个命令行界面( http://www.winzip.com/prodpagecl.htm ),它是winzip的免费插件,可以从命令行调用。
另一种方法是通过命令行使用cygwin和tar.gz。
您可以从命令行压缩填充内容,例如使用RAR 。 只需将ZIP命令添加到复制的任何位置即可。 如果是在T-SQL中,则可以使用xp_cmdshell执行ZIP命令。
对于豪华选项,请查看红门备份 ,它使这个过程相当轻松。
自从你有2008年以来,你已经安装了Powershell。 我建议查看成功备份后执行的psh脚本,以压缩和复制电线。 这很可能是备份后的第二个工作步骤。
您也可以去老派并编写批处理文件来进行压缩和复制。 然后在备份作业/步骤之后再次将其作为cmdshell作业步骤调用。
如果您是程序员,则可以创建一个通过SMO获取数据库备份的应用程序,并通过可用库将此文件压缩为.gz文件。
试试这个链接:[http://www.sqlhub.com/2009/05/copy-files-with-sql-server-from-one.html][1]
简而言之:
1 - 您必须启用“Ole Automation Procedures”
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任务之后执行的文件:)。
试试SQL Backup Master ,它可以压缩备份并将它们移动到网络(或本地)文件夹。 还可以将压缩的备份文件移动到FTP,Dropbox,Amazon S3或Google Drive。 基础版是免费的。
备份后压缩文件需要很长时间。 使用SQL Server虚拟设备接口的备份程序可以解决您的任务并减少整个处理时间。 尝试EMS SQL备份 ,它还允许将压缩备份发送到网络位置,FTP或云。
您可以使用备份助手 。 这将是一个解决方案。
您需要为此程序设置计划。 (像每小时一样)。 然后,您需要在Appsettings.json中配置备份文件路径和ftp凭据
{ "AppSettings": {
"BackupPaths": [
{
"LocalPath": "C:\\Users\\Sinan\\Desktop\\FtpBackup\\TestDb",
"RemotePath": "TestDb"
},
{
"LocalPath": "C:\\Users\\Sinan\\Desktop\\FtpBackup\\TestHangFireDb",
"RemotePath": "TestHangFireDb"
},
{
"LocalPath": "C:\\Users\\Sinan\\Desktop\\FtpBackup\\TestLogDb",
"RemotePath": "TestLogDb"
}
],
"BackupFileExtensions": [ ".bak" ],
"DeleteFilesAfterSend": true,
"ZipFilesBeforeSend": true,
"DeleteZipFilesAfterSend": false,
"WriteLog": true,
"Providers": {
"FtpServer": {
"Enabled": true,
"Host": "ftphost",
"Port": "21",
"Username": "ftpusername",
"Password": "ftppassword"
}
} } }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.