Oracle RAC集群各节点Kerberos KVNO不一致问题求助
解决Oracle AD认证中KVNO不一致的问题
问题原因
当前AD服务器中所有ORACLE/NODE*@xxxxxx主体的KVNO已统一为15,但NODE1-3的keytab文件是在KVNO更新前生成的,因此保留了旧值(12、13、14);仅NODE4的keytab是KVNO更新后生成的,所以与AD端匹配。
解决方案
要让所有节点的keytab文件KVNO与AD端保持一致,按以下步骤操作:
1. 重新生成每个节点的keytab文件
在AD服务器上,针对每个节点的主体重新执行ktpass命令生成keytab,确保使用当前AD中的KVNO(15)。命令格式如下(替换对应节点的主体名和输出路径):
ktpass -princ ORACLE/NODE1@xxxxxx -mapUser username -pass [你的密码] -crypto ALL -ptype KRB5_NT_PRINCIPAL -out c:\NODE1.keytab ktpass -princ ORACLE/NODE2@xxxxxx -mapUser username -pass [你的密码] -crypto ALL -ptype KRB5_NT_PRINCIPAL -out c:\NODE2.keytab ktpass -princ ORACLE/NODE3@xxxxxx -mapUser username -pass [你的密码] -crypto ALL -ptype KRB5_NT_PRINCIPAL -out c:\NODE3.keytab ktpass -princ ORACLE/NODE4@xxxxxx -mapUser username -pass [你的密码] -crypto ALL -ptype KRB5_NT_PRINCIPAL -out c:\NODE4.keytab
注意:若不想明文输入密码,可去掉
-pass参数,执行时会交互式提示输入。
2. 替换集群节点上的旧keytab文件
将新生成的对应节点keytab文件替换到每个Oracle节点的指定路径(例如/etc/security/keytabs/或Oracle配置的路径),并设置正确权限:
chown oracle:oinstall /path/to/NODE1.keytab chmod 600 /path/to/NODE1.keytab
(NODE2-4执行对应权限配置)
3. 验证KVNO一致性
在每个节点上执行命令,验证keytab中的KVNO与AD端是否一致:
kvno -k /path/to/NODE1.keytab ORACLE/NODE1@xxxxxx
输出显示kvno = 15即为验证通过。
额外注意事项
- 后续若AD端主体的密码或KVNO更新,需同步重新生成所有节点的keytab文件,避免再次出现不匹配问题。
- 确保所有节点的Kerberos配置文件(
krb5.conf)中AD域设置正确,可正常解析AD服务器。
内容的提问来源于stack exchange,提问作者yorda9
相关产品推荐
相关产品推荐

