常见问题 SQL ServerTDE备份还原
开了 TDE 的库还原失败怎么处理
TDE 加密库还原时证书/密钥缺失导致失败的原因,以及先还原证书再还原数据库的正确顺序。
发布于 2026/11/11
所属频道 SQL Server
简短答案
TDE 加密的库,备份里含加密信息,还原目标端必须能拿到数据库主密钥(DMK)及其保护的证书/密钥。缺证书/密钥时还原失败——先还原证书,再还原库。
处理步骤
- 在源库确认加密信息:
SELECT d.name, ek.encryption_state
FROM sys.databases d
JOIN sys.dm_database_encryption_keys ek ON ek.database_id = d.database_id;
- 先导出并还原证书(源端导出、目标端导入):
BACKUP CERTIFICATE 证书名 TO FILE = N'C:\cert\证书.cer';
-- 目标端
CREATE CERTIFICATE 证书名 FROM FILE = N'C:\cert\证书.cer';
- 证书就位后再
RESTORE DATABASE,成功概率显著提高。 - 主密钥口令缺失时,需先备份并还原数据库主密钥:
BACKUP MASTER KEY TO FILE ... ENCRYPTION BY PASSWORD。 - 在 SSMS 中操作时,证书与主密钥的备份文件要提前备好。
- 各版本 TDE 支持范围以 SQL Server 2022 Developer 条目页核对。
操作小结
- 顺序固定:证书 → 主密钥 → 数据库还原。
- 加密元信息要随备份一起管理,别只存 .bak。
- 还原前先在目标端验证证书可用。