范围和应用:
那些尝试克隆Portal实例但是遇到问题的管理员使用这篇说明。
从生产环境中分出一个测试环境来排除故障。
1. 导入的日志有一些错误
A EXP-00091 -Exporting questionable statistics
你可以忽略这些错误。
B IMP-00017 - WWSRC_PREFERENCE$
在导入的时候,会有一个导入错误:
> IMP-00017: following statement failed with ORACLE error 921:
> "ALTER TABLE "WWSRC_PREFERENCE$" ADD "
> IMP-00003: ORACLE error 921 encountered
> ORA-00921: unexpected end of SQL command
主键没有创建,你可以在SQL*Plus和user portal使用这个命令创建,然后重新添加VPD策略。
alter table "WWSRC_PREFERENCE$" add constraint wwsrc_preference_pk
primary key (subscriber_id, id)
using index wwsrc_preference_idx1
/
Begin
DBMS_RLS.ADD_POLICY ('', 'WWSRC_PREFERENCE$', 'WEBDB_VPD_POLICY',
'', 'webdb_vpd_sec', 'select, insert, update, delete', TRUE,
static_policy=>true);
end ;
/
C IMP-00017 - WWDAV$ASL
> . importing table "WWDAV$ASL"
> Note: table contains ROWID column, values may be obsolete 113 rows imported
这个错误是正常的,表确实包含ROWID列。
D IMP-00041 - Warning: 创建对象带有编译错误。
这个错误也是正常的,这些错误的出现是因为还没有导入这些包。
导入包后重新编译。
E ldapadd error 'cannot add add entries containing authpasswords'
# ldap_add: DSA is unwilling to perform
# ldap_add: additional info: You cannot add entries containing authpasswords.
authpasswords自动生成的值来自于从用户存储在userpassword中的真正密码。这些值不从LDAP输出。你可以通过编程移除authpasswords,有三部分:
移除authpasswords的属性
输出安全:用户和组(可选)
在下面的说明:
Note 276688.1:如何把IAS 9.0.4模式的Portal数据库拷贝(输出/导入)到另外一个数据库
F IMP-00017: WWSTO_SESSION$
IMP-00017: following statement failed with ORACLE error 2298:
"ALTER TABLE "WWSTO_SESSION$" ENABLE CONSTRAINT "WWSTO_SESS_FK1""
IMP-00003: ORACLE error 2298 encountered
ORA-02298: cannot validate (PORTAL.WWSTO_SESS_FK1) - parent keys not found
看来它只会在“在运行的Portal中完成输出”时发生,当Portal重新连接时会导致一个问题,但这有这个问题的应急措施。
SQL> delete from WWSTO_SESSION_DATA$
7690行被删除。
SQL> delete from WWSTO_SESSION$;
1037行被删除。
SQL> commit;
提交完成。
SQL> ALTER TABLE "WWSTO_SESSION$" ENABLE CONSTRAINT "WWSTO_SESS_FK1";
表被修改。
G IMP-00017 - ORACLE error 1 - DBMS_JOB.ISUBMIT
导入的数据库不是空的而且由于某种原因它已经被定制了,在导入时可能会出现错误。例如,你导出一个infrastructure和你把使用job的其他大量程序导入到数据库。遗憾的是job的id相同。
由于job的导入/导出已经完成,在导入完成后,这些job会保持它们的ID。它们可能会发生冲突
IMP-00017: following statement failed with ORACLE error 1: "BEGIN
DBMS_JOB.ISUBMIT(JOB=>42,WHAT=>'begin execute immediate " "''begin
wwutl_cache_sys.process_background_inval; end;'' ; exc" "eption when others then wwlog_api.log(p_domain=> ''utl'', " " p_subdomain=>''cache'', p_name=>''background'', " " p_action=>''process_background_inval'', p_information => ''E" "rror in process_background_inval ''|| sqlerrm);end;', NEXT_DATE=" ">TO_DATE('2004-08-19:17:32:16','YYYY-MM-DD:HH24:MI:SS'),INTERVAL=>'SYSDATE " "+ 60/(24*60)',NO_PARSE=>TRUE); END;"
IMP-00003: ORACLE error 1 encountered ORA-00001: unique constraint (SYS.I_JOB_JOB) violated
ORA-06512: at "SYS.DBMS_JOB", line 97 ORA-06512: at line 1
解决方案:
由于这些有冲突的job是不同的,因为它只会发生在自定义安装,没有明确的规则,但是你可以:
l 在导入other_ids后,重新创建缺失的job。
l 在导入之前要改变其它程序的iob id,这种类型的命令可以帮助你(你需要以SYS的身份来操作)
select * from dba_jobs;
update dba_jobs set job=99 where job=52;
commit
2. 在RAC环境中导入
在portal数据库受RAC管理的时候,意识到了还未发布的bug 2479882
Unpublished Bug 2479882 - NEEDED TO BOUNCE DB NODES AFTER INSTALLING PORTAL 9.0.2 IN RAC NODE
3. 中间物
在导入一个环境之后,中间物索引失去作用。为了纠正这个错误,你需要使用Portal运行SQL*Plus
start $MIDTIER_ORACLE_HOME/portal/admin/plsql/wws/inctxgrn.sql
start $MIDTIER_ORACLE_HOME/portal/admin/plsql/wws/ctxcrind.sq
没有脚本,你不能WA问题,单独运行ctxcrind.sql不起作用
你将会遇到这个错误:
ORA-06510: PL/SQL: unhandled user-defined exception
ORA-06512: at "PORTAL.WWERR_API_EXCEPTION", line 164
ORA-06512: at "PORTAL.WWV_CONTEXT", line 1035
ORA-06510: PL/SQL: unhandled user-defined exception
ORA-06512: at "PORTAL.WWERR_API_EXCEPTION", line 164
ORA-06512: at "PORTAL.WWV_CONTEXT", line 476
ORA-06510: PL/SQL: unhandled user-defined exception
ORA-20000: Oracle Text error:
DRG-12603: CTXSYS does not own user datastore procedure: WWSBR_THING_CTX_69
ORA-06512: at line 13
4. ptlconfig
在导入一个数据库之后,你尝试者运行ptlconfig,你会出错:
问题处理Portal实例,配置HTTP服务器的设置:安装缓存中的数据:SQL exception:error:
ORA-23421:job number32 不是job队列中的job
这是因为由SYS用户完成的导入已经把Portal jobs导入到SYS模式代替portal。
这个解决方案要运行:
update dba_jobs set LOG_USER='PORTAL', PRIV_USER='PORTAL' where
schema_user='PORTAL';
在这个主题中请参阅以下的说明:
Note 729913.1 - Error ORA-23421 When Running Ptlconfig -Dad Portal As Part Of Chapter 11 Of The Application Server Administration Guide
Note 444838.1 - ORA-23421 Running Ptlconfig
5. WWC-41417 - invalid credentials
当你尝试登陆时,你会得到:
>你会遇到一个不可预知的错误wwsec_app_priv.process_signon(用户自定义异常)(WWC-41417)
>当访问Oracle Internet Directory时一个异常抛出:49:无效证书
>细节
> Error:Operation: dbms_ldap.simple_bind_s
> OID host: machine.domain.com
> OID port number: 4032
> Entry DN: orclApplicationCommonName=PORTAL,cn=Portal,cn=Products,cn=OracleContext. (WWC-41743)
解决方案:
-运行secupoid.sql
-重新运行ptlconfig
在使用ptlasst 代替ptlconfig后,这个问题就有了。
6. EXP-003 with a database 9.2.0.5 or 10.1.0.2
在9.2.0.5或者10.1.0.2版本中imp/exp的DB格式已经改变了。用一个较低版本的导出实体,如9.2.0.4.0来完成9.2.0.5.0或者10.1.0.2.0数据库的导出仅仅只会造成The EXP-3错误。
由于本说明是书面的方式,imp/exp使用的是midtier中的一个
如果你的portal在一个9.2.0.5版本的数据库,它将不会工作,为了解决这个问题,这里有两个解决方案:
1. 按照以下几点正确的导出和导入客户端:
Note 132904.1 - Compatibility Matrix for Export And Import Between Different Oracle Versions
2. 对9.2.0.5或者10.1.0.2版本的数据库做些改变使之和以前的版本兼容。这些改变是在导出和导入数据之前修改数据库的内部视图。
这种解决方案存在以下的bug:
Bug 3784697 - EXPORT OF LOB FROM 9205 WITH PRE-9205 EXP GIVES EXP-3 (NO STORAGE DEF FOUND)
1.从$OH/rdbms/admin/catexp.sql 记住exu9tne的导出定义
2.备份这个文件,在定义的最后一行添加UNION ALL select * from sys.exu9tneb
3.以sys的身份进入数据库
4.导出需要的
5.还原exu9tne原来的定义
例如:
对9204的解决方案的视图可能是:
CREATE OR REPLACE VIEW exu9tne (
tsno, fileno, blockno, length) AS
SELECT ts#, segfile#, segblock#, length
FROM sys.uet$
WHERE ext# = 1
UNION ALL
select * from sys.exu9tneb
/
7. EXP-00006: 内部一致性错误
这被记录在以下的bug中
Bug 2906613 - DURING DB EXPORT, CUSTOMER RECEIVES 'EXP-6: INTERNAL INCONSISTENCY ERROR'
这个bug的解决方案是:
以sys的身份连接数据库,在运行export之前,创建下面的视图。
CREATE OR REPLACE VIEW exu8con (
objid, owner, ownerid, tname, type, cname,
cno, condition, condlength, enabled, defer,
sqlver, iname) AS
SELECT o.obj#, u.name, c.owner#, o.name,
decode(cd.type#, 11, 7, cd.type#),
c.name, c.con#, cd.condition, cd.condlength,
NVL(cd.enabled, 0), NVL(cd.defer, 0),
sv.sql_version, NVL(oi.name, '')
FROM sys.obj$ o, sys.user$ u, sys.con$ c,
sys.cdef$ cd, sys.exu816sqv sv, sys.obj$ oi
WHERE u.user# = c.owner# AND
o.obj# = cd.obj# AND
cd.con# = c.con# AND
cd.spare1 = sv.version# (+) AND
cd.enabled = oi.obj# (+) AND
NOT EXISTS (
SELECT owner, name
FROM sys.noexp$ ne
WHERE ne.owner = u.name AND
ne.name = o.name AND
ne.obj_type = 2)
exu8con的修改仅仅增加了对约束类型的支持,约束类型以前是不被这个视图的支持的。没有负面影响。
8. WWSBR_DOC_CTX_54是无效的
当包重新编译后,任然无效(在sys_post_changes.log日志文件中)
INVALID_OBJECT_AFTER
select owner, object_name from all_objects where status='INVALID'
CTXSYS WWSBR_DOC_CTX_54
CREATE OR REPLACE procedure WWSBR_DOC_CTX_54
(rid in rowid, bilob in out NOCOPY blob)
is begin PORTAL.WWSBR_CTX_PROCS.DOC_CTX(rid,bilob);end;
/
这个对象不再被portal使用,错误可以忽略。过程也可以移除。
9.你没有权限执行操作(WWC-44131)
有关生产机器的组的OID发生改变
和组创建和搜索的base都被改变了,这会产生问题。
在此之后,克隆的repository工作没用问题。
似乎ptlconfig -dad portal不会正确的重置组的GUID 和 DN
解决方案是使用以下给出的脚本:
Note 228516.1:在IAS 9.0.2模式下怎么把Portal数据库复制(导出/导入)到另外一个数据库和在拷贝的实例中运行group_sec.sql来重置所有的DN 和GUID
10.从9.x版本中的数据库导出后导入到10g版本的数据库会使java对象失效。
如果你从一个9.x版本中的数据库导出后导入到一个10g版本的的数据库,在运行utlrp.sql后,18个java对象将会失效。
select object_name, object_type from user_objects where status='INVALID'
SQL> /
OBJECT_NAME OBJECT_TYPE
----------------------------------- -------------------
/556ab159_Handler JAVA CLASS
/41bf3951_HttpsURLConnection JAVA CLASS
/ce2fa28e_ProviderManagerClien JAVA CLASS
/c5b98d35_ServiceManagerClient JAVA CLASS
/d77cf2ab_SOAPServlet JAVA CLASS
/649bf254_JavaProvider JAVA CLASS
/a9164b8b_SpProvider JAVA CLASS
/2ee43ac9_StatefulEJBProvider JAVA CLASS
/ad45acec_StatelessEJBProvider JAVA CLASS
/da1c4a59_EntityEJBProvider JAVA CLASS
/66fdac3e_OracleSOAPHTTPConnec JAVA CLASS
/939c36f5_OracleSOAPHTTPConnec JAVA CLASS
org/apache/soap/rpc/Call JAVA CLASS
org/apache/soap/rpc/RPCMessage JAVA CLASS
org/apache/soap/rpc/Response JAVA CLASS
/198a7089_Message JAVA CLASS
/2cffd799_ProviderGroupUtils JAVA CLASS
/32ebb779_ProviderGroupMgrProx JAVA CLASS
18行被选择
这是一个已知的问题,可以通过安装下面的补丁来解决:
Patch 4543413 - PORTAL 10.1.2.0.0, 10.1.2.0.1, 10.1.2.0.2, 10.1.4 PATCH FOR 10G DB UPGRADE (FROM 9.0.X AND 9.2.X)
11. IMP-00003: 遇到ORACLE error 30510
在导入Portal的时候,数据库的导入可能会产生下面的错误:
. importing PORTAL's objects into PORTAL
IMP-00017: following statement failed with ORACLE error 30510:
"CREATE TRIGGER "PORTAL".logoff_trigger"
"before logoff on schema"
""
"begin"
" -- Call wwsec_oid.unbind to close open OID connections if any."
" wwsec_oid.unbind;"
"exception"
" when others then"
" -- Ignore all the errors encountered while unbinding."
" null;"
"end logoff_trigger;"
IMP-00003: ORACLE error 30510 encountered
ORA-30510: system triggers cannot be defined on the schema of SYS user
使用下面的说明来解决:
Note 340478.1 - Getting IMP-00017: Following Statement Failed with Oracle Error 30510 when Importing the Portal Schema
12. 运行 PTLCONFIG 返回 ORA-6502
当在运行ptlconfig -dad portal的时候,有时候会出现这个错误:
./ptlconfig -dad portal
Portal Dependency Settings Tool
Processing Portal instance '/pls/portal' (cn=asdb10,cn=oraclecontext)
Problem processing Portal instance: Configuring OID settings : Populating OID
data : SQL exception: Error message: ORA-06502: PL/SQL
: error : error de conversi??n de car??cter a n??me
解决方案:
-在运行脚本之前复位NLS_LANG 环境变量
-或者设置为NLS_LANG=american_america.UTF8
在启动时perl脚本和bash脚本复位NLS_LANG环境变量
13.升级到10.1.2.1.0失败: ORA-39705:注册表中不存在组件'PORTAL'
你可以参考这篇说明的先前版本和portal升级失败错误:
# ERROR: WWU-01012: Upgrade completed with the following errors
>># 2890 : ERROR at line 1:
>># 2891 : ORA-20000:
>># 2892 : ORA-06512: at "PORTAL.WWPOF", line 440
>># 2893 : ORA-06512: at line 26
>># 2894 : ORA-39705: component 'PORTAL' not found in registry
>># 2899 : # ERROR: Failed to update product version in application registry.
>># 2900 : # ERROR: ORA-39705: component 'PORTAL' not found in registry
>>>>>>>>>>>>>>
解决方案:
以SYS身份为portal重新添加IAS_REGISTRY
sqlplus sys as sysdba
declare
l_version varchar2(128);
begin
select version into l_version from portal.wwc_version$;
DBMS_IAS_VERSION.SET_COMPONENT_LOADING('PORTAL','Oracle Application Server Portal','PORTAL');
DBMS_IAS_VERSION.SET_COMPONENT_LOADED('PORTAL',l_version);
DBMS_IAS_VERSION.SET_COMPONENT_VALID('PORTAL');
end;
14. 数据库的转储文件导入挂起
因为跨媒介的文本索引损坏,导入挂起可能会发生。在那种情况下,这个错误会使导入终止。
IMP-00017: following statement failed with ORACLE error 30510:
"CREATE TRIGGER "PORTAL".logoff_trigger"
"before logoff on schema"
"begin"
" -- Call wwsec_oid.unbind to close open OID connections if any."
" wwsec_oid.unbind;"
"exception"
" when others then"
" -- Ignore all the errors encountered while unbinding."
" null;"
"end logoff_trigger;"
IMP-00003: ORACLE error 30510 encountered
ORA-30510: system triggers cannot be defined on the schema of SYS user
解决方案:
在没有跨媒介的文本索引时重新创建它们,然后导入转储文件。
15. PTLCONFIG ends with ORA-01400:不能把NULL值插入到
("PORTAL"."WWSEC_PERSON$"."GUID")中
当原和目的地目标的SID不同时(但是我从来都没有遇到),ptlconfig有错误出现。
添加应用程序的entry到OracleDASUserPriv的权限组。
Error code : -1400
Error message: ORA-01400: cannot insert NULL into
("PORTAL"."WWSEC_PERSON$"."GUID")
ERROR: creating local profiles for seeded users
Added Portal application to DAS privilege group OracleDASConfiguration.
Error code : -1407
Error message: ORA-01407: cannot update ("PORTAL"."WWSEC_PERSON$"."GUID") to NULL
ERROR: initializing user DNs and GUIDs
(...)
No errors.
INSTALL_ERROR: sqlExecuter() : Raised Exception oracle.webdb.config.PortalWiringException: Generated errors of type ORA-, PLS-, SP2-, ERROR: or IMP-. Refer to the log file for details.
INSTALL_ERROR : Populating Portal seed in OID Raised Exception for secoidd.sql SQL exception: Generated errors of type ORA-, PLS-, SP2-, ERROR: or IMP-. Refer to the log file for details.
解决方案:
更新在wwsec_group$中的2组的DN列。
cn=super_users,cn=old_service_name.domain.com,cn=database instances,cn=ultrasearch,cn=portal,cn=products,cn=oraclecontext,dc=domain.com
cn=inst_admins,cn=wk_inst,cn=old_serveice_name.domain.com,cn=database instances,cn=ultrasearch,cn=portal,cn=products,cn=oraclecontext,dc=domain.com
修改它们来匹配copied machine的new_service_name。然后重启ptlconfig -dad portal
(如果你遇到这个问题,我有兴趣了解这个这个错误,这刚刚发生)
Errors
WWC-44131; WWC-41743; WWU-1012; WWC-41417; DRG-12603; EXP-3; EXP-6; EXP-91; IMP-3; IMP-41; IMP-17; ORA-1407; ORA-23421; ORA-6502; ORA-6510; ORA-2298; ORA-20000; ORA-6512; ORA-39705; ORA-1400; ORA-921; ORA-1; ORA-30510