有没有人知道备份压缩如何在 SQL Server(2016+ 版本)上与 TDE 一起工作?
一般来说,我希望压缩加密数据的好处微乎其微,但我们注意到,使用 TDE,当我们使用压缩进行完整备份时,我们仍然看到备份文件大小显着减少。这让我们想知道备份过程是否解密数据、压缩数据、加密结果,然后将其备份到磁盘。显然,由于需要解密和重新加密数据,这将增加备份过程的 CPU 消耗。
细节
select @@version
Microsoft SQL Server 2017 (RTM) - 14.0.1000.169 (X64) 2017 年 8 月 22 日 17:04:49 版权所有 (C) 2017 Microsoft Corporation Developer Edition(64 位)在 Windows 10 Enterprise 10.0(内部版本 17763:)(管理程序)上
TSQL脚本
备份数据库 TestTDE 到磁盘 = 'c:\Test\TestTDE_Compressed.bak' WITH COMPRESSION, MAXTRANSFERSIZE = 65537
或者是否以不同的方式实现了空间节省?
这正是实现空间节省的方式。当备份过程运行时,页面被解密并加载到内存中,然后压缩,然后加密并保存到磁盘上。Backup TSQL Doc中提到了该过程
我在这里假设,由于您在 TDE 数据库上通过备份压缩获得了不错的成绩,因此您必须使用修补到最新 SP 和 CU 的 SQL Server 2016。我强烈建议您阅读Backup Compression for TDE Enabled Database
由于您正在使用
SQL Server 2017
并且您的 TSQL 脚本也在使用,因此MAXTRANSFERSIZE> 65536
您将受益于支持 TDE 的数据库的备份压缩。但我强烈建议您将SQL Server 2017 修补到最新的 CU