嫌长不看版
本文介绍了通过复制和导出两个操作,将 Azure SQL 数据库中的内容转移至其他位置(例如本地环境)的具体做法。借此可以帮助用户在 Azure 中运行数据库的同时,在本地或指定的其他位置额外保留一个副本,满足制度或业务等各方面的要求。
操作细节版
很多用户向小编提出了这样一个问题:已经在使用 Azure SQL 数据库服务,虽然该服务有非常完善的数据备份和灾备机制,但出于公司制度或其他方面的要求,需要定期将数据库的完整内容下载到本地保存,哪怕手工操作也可以。
这当然是可以的,不过首先小编想再次向大家强调一下 Azure SQL 服务提供的各种数据保护机制:
Azure SQL 可在(基本、标准、高级三个服务级别的)数据库层面提供 99.99% 的服务级别协议。
通过自助式还原可更好地对“不利条件下的恢复”加以控制,客户可以从可用数据备份副本控制数据还原的全过程。
在高级版中,SQL 数据库最多可将备份副本保存 35 天,供您随时进行恢复。
好了,明确这些问题后,看看到底该如何将 Azure SQL 中的数据保存到本地吧。
方法一:对 Azure SQL 数据库进行复制
对于 Azure SQL 数据库,我们可以用多种方式在相同或不同服务器上创建现有 Azure SQL 数据库的事务一致性副本。数据库副本是源数据库截至复制请求发出时的快照,我们可以选择相同或不同服务器、其服务层和性能级别、相同服务层中的不同性能级别(版本)。在完成复制后,副本将成为能够完全行使功能的独立数据库。此时,可以将其升级或降级为任何版本。
我们可以根据具体需要,通过 Azure 门户、PowerShell,或者 Transact-SQL 将 Azure SQL 数据库复制到本地(或者其他位置)。
以 Azure 门户下的操作为例,只需登录 Azure 管理门户,打开要复制的数据库相应的配置界面,然后点击工具栏上的「复制」,并选择要复制到的目标服务器,这就可以了。
当然也可以通过 PowerShell,使用 New-AzureRmSqlDatabaseCopy 这个 cmdlet 进行复制:
这个方法的进一步介绍,以及更多操作方式的具体做法,可以参阅:复制 Azure SQL 数据库。
方法二:将 Azure SQL 数据库导出为 BACPAC 文件
除了进行复制,也可以执行导出操作,获得 Azure SQL 数据库对应的 BACPAC 文件。这种方式更适合数据存档或转移至其他平台等用途。
BACPAC 文件是一个扩展名为 BACPAC 的 ZIP 文件,它包含来自 SQL Server 数据库的元数据和数据。我们可将 BACPAC 文件存储在 Azure Blob 存储或本地存储中,之后可以导入回 Azure SQL 数据库或 SQL Server 本地安装。
使用该方法前有几个问题需要注意:
为保证导出的事务处理方式一致,必须确保导出期间未发生写入活动,或者正在从 Azure SQL 数据库的事务处理方式一致性副本中导出。
如果是导出到 Blob 存储,则 BACPAC 文件最大大小为 200GB。若要存档更大的 BACPAC 文件,请导出到本地存储。
不支持使用这个方法将 BACPAC 文件导出到 Azure 高级存储。
如果从 Azure SQL 数据库进行的导出操作超过 20 个小时,系统可能会取消该操作。
我们可以通过 Azure 门户、SQL Package 实用程序、SQL Server Management Studio,以及 PowerShell将 Azure SQL 数据库导出为 BACPAC 文件。
以 Azure 门户下的操作为例,只需登录 Azure 管理门户,打开要导出的数据库相应的配置界面,然后点击工具栏上的「导出」,并选择要导出到的存储位置和其他选项即可。
此外也可以通过 PowerShell,使用 New-AzureRmSqlDatabaseEmport 这个 cmdlet 向 Azure SQL 数据库服务提交导出数据库请求。
这个方法的进一步介绍,以及更多操作方式的具体做法,可以参阅:将 Azure SQL 数据库导出到 BACPAC文件。
立即访问http://market.azure.cn