在nocdb转pdb的时候遇到小bug

在nocdb转为pdb之后,发现有一个应用账号。从pdb使用expdp导出。导入其他nocdb。报错ORA-01917: user or role 'HUE' does not exist
[oracle@lxtrac06 ~]$ more 1HUE.log 
;;; 
Import: Release 12.2.0.1.0 - Production on Wed May 9 23:20:59 2018
Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved.
;;; 
Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
Master table "SYSTEM"."SYS_IMPORT_FULL_01" successfully loaded/unloaded
import done in AL32UTF8 character set and AL16UTF16 NCHAR character set
export done in UTF8 character set and AL16UTF16 NCHAR character set
Starting "SYSTEM"."SYS_IMPORT_FULL_01": system/******** directory=test DUMPFILE=HUE.dmp logfile=1HUE.log 
Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
ORA-39083: Object type SYSTEM_GRANT failed to create with error:
ORA-01917: user or role 'HUE' does not exist
Failing sql is:
GRANT CREATE SESSION TO "HUE"
ORA-39083: Object type SYSTEM_GRANT failed to create with error:
ORA-01917: user or role 'HUE' does not exist‘。
在pdb上面,使用该账号登陆数据库,报下列错误
Errors in file /u01/app/oracle/diag/rdbms/bigcdb/BIGCDB/trace/BIGCDB_ora_32410.trc (incident=241057) (PDBNAME=CDB$ROOT):
ORA-00600: internal error code, arguments: [kziaVrfyAcctStatInRootCbk: !user], [HUE], [], [], [], [], [], [], [], [], [], []
Incident details in: /u01/app/oracle/diag/rdbms/bigcdb/BIGCDB/incident/incdir_241057/BIGCDB_ora_32410_i241057.trc
处理方法:
alter session set container=MANCO2; 
create table backup_user$ as select * from user$; 
update user$ set spare1=0 where name='APEX_PUBLIC_USER'; 
commit; 
conn / as sysdba 
shutdown abort 
startup

在mos上面查找发现是一个bug。
ORA-00600 When Trying To Connect Through The SQL Plus using the APEX_PUBLIC_USER After Conversion Of A Non-CDB to PDB On 12.2 Database (文档 ID 2309896.1)
In this Document

APPLIES TO:
Oracle Application Express (formerly HTML DB) - Version 4.0.2.00.07 and later
Information in this document applies to any platform.
SYMPTOMS
After conversion from a NON-CDB (12cR2) to a PDB with noncdb_to_pdb.sql, when trying to connect to the new PDB as APEX_PUBLIC_USER using SQL*Plus the following error is raised: 

[oracle@server admin]$ sqlplus 
APEX_PUBLIC_USER/password@ip_adress:1521/manco2 

SQL*Plus: Release 12.2.0.1.0 Production on Fri Apr 28 08:34:05 2017 

Copyright (c) 1982, 2016, Oracle. All rights reserved. 

ERROR: 
ORA-00600: internal error code, arguments: [kziaVrfyAcctStatInRootCbk: 
!user], 
[APEX_PUBLIC_USER], [], [], [], [], [], [], [], [], [], []

CAUSE
The issue has been identified as the product defect and documented over the Bug 25979661 - ORA-00600: [KZIAVRFYACCTSTATINROOTCBK: !USER] [APEX_PUBLIC_USER]
 
SOLUTION
The bug is still being worked by the Development and the workaround is available to override this issue.
As a workaround you can make APEX_PUBLIC_USER local user by updating user$.spare1 column in the PDB.
sqlplus / as sysdba 

alter session set container=MANCO2; 

create table backup_user$ as select * from user$; 

update user$ set spare1=0 where name='APEX_PUBLIC_USER'; 

commit; 

conn / as sysdba 

shutdown abort 

startup
 
REFERENCES
BUG:25979661 - ORA-00600: [KZIAVRFYACCTSTATINROOTCBK: !USER] [APEX_PUBLIC_USER]

posted on 2018-05-10 08:39  erwadba  阅读(223)  评论(0编辑  收藏  举报

导航