我已经使用 Ola Hallengren 的脚本几年了,最近升级到 MSSQL2017 允许我开始测试加密备份。在有人问之前:是的,主密钥和加密证书已备份并存储在我们的密码管理器中。
我遇到了以下参数组合的问题:
EXECUTE [OlaHallengren].[DatabaseBackup]
@Databases = 'SYSTEM_DATABASES'
,@Directory = N'\\<SHARE>\SQLBackup\Daily'
,@BackupType = 'FULL'
,@Verify = 'Y'
,@CheckSum = 'Y'
,@Encrypt = 'Y'
,@EncryptionAlgorithm = 'AES_256'
,@ServerCertificate = 'DBBackupEncryptCert<SERVERNAME>'
,@LogToTable = 'Y'
Run Code Online (Sandbox Code Playgroud)
备份运行良好,但验证没有:
Command: RESTORE VERIFYONLY FROM DISK = N'\\<SHARE>\SQLBackup\Daily\<SERVER>\master\FULL\...
Process Exit Code 1.
The step failed.
Run Code Online (Sandbox Code Playgroud)
Ola Hallengren 的脚本无法打开主密钥似乎是一个问题,因为这不起作用:
RESTORE VERIFYONLY FROM DISK = N'\\<SHARE>\SQLBackup\Daily\<SERVER>\master\FULL\<SERVER>_master_FULL_<DATE>_<TIME>.bak'
Run Code Online (Sandbox Code Playgroud)
但这确实:
use master;
OPEN MASTER KEY DECRYPTION BY PASSWORD = '<PASSWORD>';
RESTORE VERIFYONLY FROM DISK = N'\\<SHARE>\SQLBackup\Daily\<SERVER>\master\FULL\<SERVER>_master_FULL_<DATE>_<TIME>.bak'
CLOSE MASTER KEY …
Run Code Online (Sandbox Code Playgroud)