一、故障背景
某次,用户一套Oracle 19C数据库DataGuard主备库发生同步异常。通过检查主备库数据库ALERT告警日志,发现在备库日志中,发现了大量的ORA-28374报错。该报错,显然是数据库透明数据加密特性引起。通常,只需要确保TDE钱夹正常打开就行。但是,用户一直反馈钱夹这块没啥问题。因此,需要做进一步分析。 备库ALERT日志信息,具体如下:

二、故障诊断
由于日志提示在备库钱夹目录不存在master key,因此率先在DG环境上检查密钥文件ewallet.p12、cwallet.sso,经过确认master key文件确实存在。 根据当前反馈信息,那么DG同步问题不应该是TDE透明数据加密引起。谨慎起见,通过sqlplus连到19C 多租户环境,确认其中一个PDB加密钱夹状态确实异常,提示no master key。
由于密钥文件用户已经从主库这端,重新拷贝过,因此尝试关闭再重启钱夹,但是问题依旧。此时,严重怀疑要么密钥文件有问题或者触发透明数据加密BUG。
主备库两端,比较密钥文件 ewallet.p12、cwallet.sso 的md5值,意外发现两边文件果然不一致,严重怀疑用户之前拷贝传输存在问题。

将密钥文件重新拷贝,并进行md5sum校验一致后,重新将异常PDB钱夹关闭和打开,并手动开启MRP进程,数据前滚,同步恢复正常。
三、解决办法和建议
其实,事后回顾该问题,难度不大,但是用户同步的信息,在一定程度上影响了我们对问题的定位,对于业务连续性要求极高的交易系统,时间的拖延意味着更大的损失。因此,处理生产故障时,建议优先对环境做下确认,了解情况后再操作。本次处理具体操作,参考如下: 1、重新同步密钥文件ewallet.p12、cwallet.sso 2、重启DG端备份实例,并手动启动MRP进程,归档日志开始应用
