【问题标题】:I need to automate SQL Azure database backup in SQL Script files. How can i do so?我需要在 SQL 脚本文件中自动执行 SQL Azure 数据库备份。我该怎么做?
【发布时间】:2013-05-25 04:02:28
【问题描述】:

目前我每天都在生成 SQL 脚本来备份 SQL Azure 数据库。我需要使用一些免费软件来自动化这个过程。我怎样才能做到这一点?

注意:- 我需要以 SQL 脚本的形式备份到一些本地机器。

【问题讨论】:

  • 这个问题你解决了吗?您如何生成 SQL 脚本?

标签: database azure backup azure-sql-database


【解决方案1】:

选项 1:运行一些代码/脚本来备份数据库

您可以使用 SQLCMD 实用程序运行 SQL。

http://msdn.microsoft.com/en-us/library/ms162773.aspx

要安排这个,只需使用 Windows 任务计划程序。

http://msdn.microsoft.com/en-us/library/bb756979.aspx

选项 2:使用 Azure 数据同步

使本地数据库与您的 SQL Azure 数据库保持同步,例如持续备份。

http://msdn.microsoft.com/en-us/library/windowsazure/hh456371.aspx

选项 3:使用 BacPac

Azure 中有一个 API 可用于将您的数据库备份为 BACPAC 格式。

http://msdn.microsoft.com/en-us/library/windowsazure/hh335292.aspx

RedGate 工具可让您恢复到本地 SQL Server。

http://www.red-gate.com/products/dba/sql-azure-backup/

编辑

我已经创建了一个命令行工具,它将创建数据库的副本,并使用 Azure 管理 API 将其备份到 BacPac:

https://github.com/richorama/SQLDatabaseBackup

【讨论】:

  • 感谢您的回复。但是您能否详细说明如何使用 SQLCMD 为数据生成 SQL 脚本?当我们从 SQL Azure 或 SQL Server 中的生成脚本功能中获取数据时。
  • redgate 的命令行实用程序已停止使用。它仍然可用,但包含未解决的问题。
  • 我实际上已经发布了一个命令行工具来帮助你做到这一点。它还没有完全完成,但可以作为如何自动化的示例:github.com/richorama/SQLDatabaseBackup
  • 如果您创建辅助 Azure SQL 服务器,您可以通过在辅助 Azure 服务器上执行以下命令作为 Transact-SQL 执行此操作:CREATE DATABASE YourBackUPDatabaseName AS COPY OF YourProductionServer.ProductionDatabaseName;
【解决方案2】:

你可以试试 RedGate Azure Sql 备份http://www.red-gate.com/products/dba/sql-azure-backup/

这也可以使用任务计划程序来安排。

我已经写了一些关于如何做到这一点的想法: http://anttitech.wordpress.com/2011/11/06/azure-sql-backup-and-restore-scenarios-using-bacpac-exportimport/

【讨论】:

  • 感谢您的回复,我现在正在使用它,它工作正常。我现在面临的唯一问题是,由于在脚本中我们必须提到本地数据库名称,并且它始终是不变的,所以前一天的备份会丢失。有什么方法可以声明数据库名称,例如 [DATABASENAME_CURRENT]。以下是我使用并安排了作业的脚本。 ./RedGate.SQLAzureBackupCommandLine.exe /as:AzureServerNAME/ad:AzureDatabaseName /au:AzureUserName /ap:AzurePassword /cc /s /ls:. /ld:LOCALDATABASENAME /dl /v /ba
【解决方案3】:

SQL Azure 数据库不支持 SQL Server 代理或作业。你可以, 但是,在您的本地 SQL Server 上运行 SQL Server 代理,并且 连接到 SQL Azure 数据库。

来源:http://msdn.microsoft.com/en-us/library/windowsazure/ee336245.aspx

SQL Server 代理是一个 Microsoft Windows 服务,它执行 计划的管理任务,称为作业...例如, 如果您想在之后的每个工作日备份所有公司服务器 小时,您可以自动执行此任务。安排备份在之后运行 周一至周五 22:00

来源:http://msdn.microsoft.com/en-us/library/ms189237.aspx

【讨论】:

    【解决方案4】:

    创建数据库的云端备份(以获得一致的快照),然后使用Data-Tier Application Framework (DACFx) 客户端工具将快照复制到本地计算机,如Automating Windows Azure SQL Database Backup 中所述。

    【讨论】:

      【解决方案5】:

      我遇到了一个免费工具,可以备份您的 SQL Azure 数据库。备份可以存储在本地或 blob 上。您还可以使用其内置调度程序来调度备份操作,或使用 Windows 调度程序和提供的命令行实用程序。

      来源:http://blog.idera.com/sql-server/backup-and-recovery/announcing-new-free-tool-azure-sql-database-backup/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-09-06
        • 2022-01-06
        • 2014-01-23
        • 2019-08-25
        • 1970-01-01
        • 2015-06-07
        • 2012-11-15
        • 1970-01-01
        相关资源
        最近更新 更多