2

我需要备份 Azure 托管实例中存在的 SQL 数据库并将其还原到本地服务器上以进行根本原因分析。每当我们在数据库上遇到某个错误时,都需要执行此操作。由于自动备份启用了 TDE,有哪些可用选项可以在本地计算机上恢复数据库?

浏览时,我遇到了两个选项,但需要一些指导。

一种选择是禁用数据库上的 TDE,备份数据库,然后启用 TDE。但是在这个选项中,备份文件不会是加密格式,而且由于我们有机密数据,这似乎不是一个安全的解决方案。我们是否有任何选项可以使用我们自己的加密来备份数据库并使用它们在本地机器上进行恢复?

获取数据的第二个选项是使用 BACPAC 文件。但他们也同样遭受同样的安全问题。我们可以在创建 bacpac 文件时加密它们,在加载到本地服务器时解密它们吗?

如果还有其他选择,请告知。

4

1 回答 1

1

最大的考虑是您将无法使用二进制备份(BACKUP DATABASE 命令)将数据库从任何 SQL Azure 产品(包括托管实例)传输到本地。原因是 Azure SQL DB 中的软件不断更新,因此 Azure SQL DB(或托管实例)中运行的版本将始终领先于本地运行的版本。

因此,虽然您可以在托管实例中物理创建备份文件,并将其还原到同一个或另一个托管实例,但如果将其转移到本地,您将无法在本地版本之前还原它SQL 赶上了用于创建备份的软件。因此,除了 TDE 问题之外,还有更多障碍。

毕竟上面说了你最好的选择是改用bacpac。您可以创建 Azure SQL 数据库的 bacpac 并将其存储在本地计算机上。默认情况下,Azure 内部或外部的所有信息都经过加密。

SqlPackage /Action:Export /SourceServerName:SampleSQLServer.sample.net,1433 /SourceDatabaseName:SampleDatabase /TargetFile:"F:\Temp\SampleDatabase.bacpac"
于 2019-12-21T03:41:54.447 回答