Oracle 12.1的删除和创建公共用户问题
Oracle版本12.1 ,cdb-rac模式
一个集群,4个节点,一个cdb,下面有12个pdb.
os:linux 64
---
删除用户
drop user c##test
atler.log提示
ORA-00600: internal error code, arguments: [ktpJPTSR-noCurTxn], [], [], [], [], [], [], [], [], [], [], []
Incident details in: /u01/app/oracle/diag/rdbms/wgdb/wgdb1/incident/incdir_735958/wgdb1_ora_27222_i735958.trc
问题在哪里? 看这个提示不明白,也没有oracle服务号。
瞎猜! 应该是因为pdb被关闭的缘故(为了减少不必要的网络消耗和资源竞争,关闭了某些实例上的某个pdb,例如pdb_test在实例1上被关闭)
解决方式:
在实例1上打开pdb_test
alter pluggable pdb_test open instances=('cdb1')
结果:ok
添加用户
create user c##xtjk identified by "123456"
执行半天,发现语句卡在实例1的pdb_sa上。
只好kill掉有关进程(否则会提示有事务)
猜想: 应该是因为数据字典所导致的锁,为什么这些字典会上锁,可能是因为没有告诉服务器用户的配置,这样系统需要到每个pdb中去查询系统字段,刚好
在pdb_sa中,由于某些原因被卡住(猜测,应该是因为缺乏条件,所以查询这些字段耗费大量时间)
解决方式: 提供完整的语句
create user c##xtjk identified by "123456"
default tablespace users temporary tablespace temp
profile default
quota 100m on users container=ALL
结果:立刻创建
在cdb模式的rac中,对系统字段的操作的成本尤其高!
结语!
这个集群总体上有些问题,所以会有一些莫名其妙的问题!