SELECT name, status FROM v$encryption_wallet;
SELECT tablespace_name, encrypted FROM dba_tablespaces;

生产库开了 TDE,备份还原到测试实例时恢复任务失败,错误是 decrypt failed,同一个备份在生产的备机恢复正常。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。

原因不复杂,TDE 的密钥存在数据库外部的密钥库,备份里只有密文。目标实例没有配置同一个密钥库,或者密钥库里的主密钥没导过去。备份脚本只搬了数据文件,没有搬密钥材料。

围绕「TDE 备份还原」排查时,命令行跑一遍比在面板里点十次有用,面板会替你做掉不少隐式操作。改完隔一天再看一次,当场正常不代表能稳住。

测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。

处理上按这个顺序:把目标实例的密钥库指向同一个 KMS 或复制主密钥;恢复前先校验密钥库可访问 再启动还原;把密钥库配置纳入恢复演练清单;在测试实例重跑一次恢复确认表能打开。

改完只确认一件事:测试实例恢复完成 查询加密表返回数据 不再报 decrypt failed。

作者 9823189