只要你比别人稍微优秀一点,能再多坚持一会,就赢得更多机会。这种机会叠加就是人生效应的逐级放大,最终造成人与人之间巨大的落差。
【故障解决】ORA-06502: PL/SQL: numeric or value error: character string buffer too small
各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~:
① EXPDP和IMPDP基于scn的导出
② ora-06502的解决方法
4 故障分析及解决过程
4.1 故障环境介绍
项目 |
source db |
db 类型 |
rac |
db version |
10.2.0.5 |
db 存储 |
FS type |
ORACLE_SID |
xxx |
db_name |
xxx |
主机kernel版本 |
AIX 6 |
OS hostname |
ZTGXPADDB1 |
4.2 故障发生现象及报错信息
oracle@ZTGXPADDB1:/gg/ogg/dirrpt$ expdp XXXXX/XXXXX@22.188.131.27:1521/oraXPAD DIRECTORY=DATA_PUMP_DIR DUMPFILE=XXXXX_20160125.dmp LOGFILE=XXXXX_20160125.log FLASHBACK_SCN=12242466617347
Export: Release 10.2.0.5.0 - 64bit Production on Saturday, 02 January, 2021 15:42:47
Copyright (c) 2003, 2007, Oracle. All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, Real Application Clusters, Data Mining and Real Application Testing options
ORA-31626: job does not exist
ORA-31638: cannot attach to job SYS_EXPORT_SCHEMA_01 for user XXXXX
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: at "SYS.KUPV$FT_INT", line 389
ORA-39077: unable to subscribe agent KUPC$A_2_20210102154238 to queue "KUPC$C_2_20210102154237"
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: at "SYS.KUPC$QUE_INT", line 249
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
4.3 故障分析过程
oracle@ZTGXPADDB1:/gg/ogg/dirrpt$ expdp XXXXX/XXXXX@22.188.131.27:1521/oraXPAD DIRECTORY=DATA_PUMP_DIR DUMPFILE=XXXXX_20160125.dmp LOGFILE=XXXXX_20160125.log FLASHBACK_SCN=12242466617347
Export: Release 10.2.0.5.0 - 64bit Production on Saturday, 02 January, 2021 15:42:47
Copyright (c) 2003, 2007, Oracle. All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, Real Application Clusters, Data Mining and Real Application Testing options
ORA-31626: job does not exist
ORA-31638: cannot attach to job SYS_EXPORT_SCHEMA_01 for user XXXXX
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: at "SYS.KUPV$FT_INT", line 389
ORA-39077: unable to subscribe agent KUPC$A_2_20210102154238 to queue "KUPC$C_2_20210102154237"
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: at "SYS.KUPC$QUE_INT", line 249
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
根据资料解决过程如下:
SELECT *
FROM dba_objects d
WHERE d.OBJECT_NAME like '%DATAPUMP%'
AND D.OBJECT_TYPE = 'SEQUENCE';
SELECT *
FROM DBA_SEQUENCES D
WHERE D.sequence_name IN
('AQ$_KUPC$DATAPUMP_QUETAB_N', 'AQ$_KUPC$DATAPUMP_QUETAB_1_N');
oracle@ZTGXPADDB1:/gg/ogg/dirrpt$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.5.0 - Production on Sat Jan 2 16:08:47 2021
Copyright (c) 1982, 2010, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, Real Application Clusters, Data Mining and Real Application Testing options
SQL> SELECT AQ$_KUPC$DATAPUMP_QUETAB_N.CURRVAL FROM DUAL;
SELECT AQ$_KUPC$DATAPUMP_QUETAB_N.CURRVAL FROM DUAL
*
ERROR at line 1:
ORA-08002: sequence AQ$_KUPC$DATAPUMP_QUETAB_N.CURRVAL is not yet defined in
this session
SQL> SELECT AQ$_KUPC$DATAPUMP_QUETAB_N.NEXTVAL FROM DUAL;
NEXTVAL
----------
1194988
SQL> DROP SEQUENCE AQ$_KUPC$DATAPUMP_QUETAB_1_N;
DROP SEQUENCE AQ$_KUPC$DATAPUMP_QUETAB_1_N
*
ERROR at line 1:
ORA-02289: sequence does not exist
SQL> DROP SEQUENCE AQ$_KUPC$DATAPUMP_QUETAB_N;
Sequence dropped.
SQL> CREATE SEQUENCE AQ$_KUPC$DATAPUMP_QUETAB_N MINVALUE 1 MAXVALUE 999999 START WITH 1 INCREMENT BY 1 CACHE 20 CYCLE;
Sequence created.
SQL> SELECT AQ$_KUPC$DATAPUMP_QUETAB_N.NEXTVAL FROM DUAL;
NEXTVAL
----------
1
SQL> EXIT
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, Real Application Clusters, Data Mining and Real Application Testing options
oracle@ZTGXPADDB1:/gg/ogg/dirrpt$
oracle@ZTGXPADDB1:/gg/ogg/dirrpt$ expdp XXXXX/XXXXX DIRECTORY=DATA_PUMP_DIR DUMPFILE=XXXXX_20160125.dmp LOGFILE=XXXXX_20160125.log FLASHBACK_SCN=12242466617347
Export: Release 10.2.0.5.0 - 64bit Production on Saturday, 02 January, 2021 16:11:46
Copyright (c) 2003, 2007, Oracle. All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, Real Application Clusters, Data Mining and Real Application Testing options
ORA-39002: invalid operation
ORA-39070: Unable to open the log file.
ORA-39087: directory name DATA_PUMP_DIR is invalid
oracle@ZTGXPADDB1:/gg/ogg/dirrpt$ cd /oracle/app/oracle/product/10.2.0/db/rdbms/log/
oracle@ZTGXPADDB1:/oracle/app/oracle/product/10.2.0/db/rdbms$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.5.0 - Production on Sat Jan 2 16:17:56 2021
Copyright (c) 1982, 2010, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, Real Application Clusters, Data Mining and Real Application Testing options
SQL> grant read,write on directory DATA_PUMP_DIR to XXXXX;
Grant succeeded.
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, Real Application Clusters, Data Mining and Real Application Testing options
oracle@ZTGXPADDB1:/oracle/app/oracle/product/10.2.0/db/rdbms$ expdp XXXXX/XXXXX DIRECTORY=DATA_PUMP_DIR DUMPFILE=XXXXX_20160125.dmp LOGFILE=XXXXX_20160125.log FLASHBACK_SCN=12242466617347
Export: Release 10.2.0.5.0 - 64bit Production on Saturday, 02 January, 2021 16:18:06
Copyright (c) 2003, 2007, Oracle. All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, Real Application Clusters, Data Mining and Real Application Testing options
FLASHBACK automatically enabled to preserve database integrity.
Starting "XXXXX"."SYS_EXPORT_SCHEMA_01": XXXXX/******** DIRECTORY=DATA_PUMP_DIR DUMPFILE=XXXXX_20160125.dmp LOGFILE=XXXXX_20160125.log FLASHBACK_SCN=12242466617347
Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 11.15 GB
Processing object type SCHEMA_EXPORT/PACKAGE/PACKAGE_SPEC
Processing object type SCHEMA_EXPORT/FUNCTION/FUNCTION
Processing object type SCHEMA_EXPORT/PROCEDURE/PROCEDURE
Processing object type SCHEMA_EXPORT/PACKAGE/COMPILE_PACKAGE/PACKAGE_SPEC/ALTER_PACKAGE_SPEC
. . exported "XXXXX"."RICH_CUSTACCOUNT" 11.33 MB 177757 . . exported "XXXXX"."FINANCIAL_POSITIONHIS" 20.93 MB 413414 rows
. . exported "XXXXX"."BASE_TRANCOURSE" 23.38 KB 157 rows
《《《《篇幅原因,有省略。。。。。。。。。。。。。。。)》》》
UDE-00008: operation generated ORACLE error 31626
ORA-31626: job does not exist
ORA-39086: cannot retrieve job information
ORA-06512: at "SYS.DBMS_DATAPUMP", line 2772
ORA-06512: at "SYS.DBMS_DATAPUMP", line 3886
ORA-06512: at line 1
oracle@ZTGXPADDB1:/softtmp$ expdp XXXXX/XXXXX DIRECTORY=DMP DUMPFILE=XXXXX_20160125.dmp LOGFILE=XXXXX_20160125.log FLASHBACK_SCN=12242466617347
oracle@ZTGXPADDB1:/softtmp$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.5.0 - Production on Sat Jan 2 16:38:32 2021
Copyright (c) 1982, 2010, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, Real Application Clusters, Data Mining and Real Application Testing options
SQL> Select current_scn from v$database;
CURRENT_SCN
-----------
1.2242E+13
SQL> col current_scn format 999999999999999
SQL> Select current_scn from v$database;
CURRENT_SCN
----------------
12242466771468
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, Real Application Clusters, Data Mining and Real Application Testing options
oracle@ZTGXPADDB1:/softtmp$ expdp XXXXX/XXXXX DIRECTORY=DMP DUMPFILE=XXXXX_20160125.dmp LOGFILE=XXXXX_20160125.log FLASHBACK_SCN=12242466771468
Export: Release 10.2.0.5.0 - 64bit Production on Saturday, 02 January, 2021 16:39:06
Copyright (c) 2003, 2007, Oracle. All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, Real Application Clusters, Data Mining and Real Application Testing options
FLASHBACK automatically enabled to preserve database integrity.
Starting "XXXXX"."SYS_EXPORT_SCHEMA_01": XXXXX/******** DIRECTORY=DMP DUMPFILE=XXXXX_20160125.dmp LOGFILE=XXXXX_20160125.log FLASHBACK_SCN=12242466771468
Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 11.15 GB
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Export> status
Job: SYS_EXPORT_SCHEMA_01
Operation: EXPORT
Mode: SCHEMA
State: EXECUTING
Bytes Processed: 0
Current Parallelism: 1
Job Error Count: 0
Dump File: /softtmp/dmp/XXXXX_20160125.dmp
bytes written: 4,096
Worker 1 Status:
State: EXECUTING
Object Schema: XXXXX
Object Name: XPAD_SH
Object Type: SCHEMA_EXPORT/PACKAGE/PACKAGE_SPEC
Completed Objects: 1
Total Objects: 1
Worker Parallelism: 1
Export> kill_job
Are you sure you wish to stop this job ([yes]/no): yes
oracle@ZTGXPADDB1:/softtmp$
oracle@ZTGXPADDB1:/softtmp$
oracle@ZTGXPADDB1:/softtmp$
oracle@ZTGXPADDB1:/softtmp$ expdp XXXXX/XXXXX directory=DMP dumpfile=XXXXX_20160125_01.dmp LOGFILE=XXXXX_20160125.log TABLES=BASE_ACTIONPOWER,BASE_BANK,BASE_BANKMERGE,BASE_BANKTREE,BASE_BRCHBANKCTRL,BASE_CERTIFICATE,BASE_CESS,BASE_COREBANK,BASE_CURRENCY,BASE_DEPARTMENT,BASE_HOLIDAYCALENDAR,BASE_HOLIDAYDATE,BASE_INTEREST,BASE_INTERESTHIS,BASE_MAINAREA,BASE_MENU,BASE_PRODTYPECODE,BASE_RATE,BASE_ROLE,BASE_SYSLOG,BASE_SYSPARAM,BASE_TERMINALTELLER,BASE_USER,FINANCIAL_BANKPROFITLOG,FINANCIAL_DIVIDENDPLAN,FINANCIAL_FUNDPRICE,FINANCIAL_INTERESTRESET,FINANCIAL_ISSUE,FINANCIAL_ISSUEAUDIT,FINANCIAL_ISSUEAUDITHIS,FINANCIAL_ISSUEBRAND,FINANCIAL_ISSUECFL,FINANCIAL_ISSUECONTROL,FINANCIAL_ISSUEDIFFRATE,FINANCIAL_ISSUEDISCOUNT,FINANCIAL_ISSUEEXPD,FINANCIAL_ISSUEEXT,FINANCIAL_ISSUEFEE,FINANCIAL_ISSUEFORCUSTRISKLVL,FINANCIAL_ISSUEFUNDSTRANSFER,FINANCIAL_ISSUEOBSERV,FINANCIAL_ISSUEPAY,FINANCIAL_ISSUEPROFIT,FINANCIAL_ISSUEQTYSPLIT,FINANCIAL_ISSUESELLCTRL,FINANCIAL_ISSUESERIAL,FINANCIAL_ISSUEVARIABLE,FINANCIAL_ISSUEWORKTIME,FINANCIAL_LIQUIDATEACT,FINANCIAL_MESSAGEINFO,FINANCIAL_PERIOD,FINANCIAL_PRICE,FINANCIAL_PRICEHIS,FINANCIAL_REFERINDEX,FINANCIAL_POSITION,RICH_AUTOTRADE,RICH_CUSTACCOUNT,RICH_CUSTAUTOTRADE,RICH_CUSTAUTOTRADEHIS,RICH_CUSTCAPITAL,RICH_CUSTFAVORABLE,RICH_CUSTFREEZEUNIT,RICH_CUSTFUNDPROFIT,RICH_CUSTIMPAWN,RICH_CUSTKEEPBAL,RICH_CUSTOMERINFO,RICH_CUSTOMERINFOHIS,RICH_CUSTORDERTRADE,RICH_CUSTPAYAMOUNTLOG,RICH_CUSTPRODUCTBAL,RICH_CUSTPRODUCTBALQTY,RICH_CUSTPROFITDCCY,RICH_CUSTPROFITLOG,RICH_CUSTPROFITNORMAL,RICH_CUSTPROFITPAYMODE,RICH_CUSTPROFITPAYMODEHIS,RICH_CUSTRISKLVL,RICH_FUNDTRADELOG,RICH_NOPAYAMOUNT,RICH_NORMALPAY,RICH_ORDERTRADE,RICH_SMSCMDSIGN,RICH_SMSCMDTRADE,RICH_STARTBAL,RICH_STARTBALHIS,financial_positionhis,financial_positiontra,financial_positioncst,financial_positionacc,corp_stattemptab,corp_stattemptabacc,corp_stattemptabcst,FINANCIAL_ICCARDCODE,BASE_FINANCIALICCARD,FINANCIAL_ISSUESPECIFICATION,PA_RPT_PARAM,FINANCIAL_SALEBANK_HIS,RICH_TRADELOG_HIS,RICH_CUSTPAYAMOUNTHIS_HIS,RICH_CUSTPRODUCTBALHIS_HIS,RIC
Export: Release 10.2.0.5.0 - 64bit Production on Saturday, 02 January, 2021 16:41:50
Copyright (c) 2003, 2007, Oracle. All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, Real Application Clusters, Data Mining and Real Application Testing options
Starting "XXXXX"."SYS_EXPORT_TABLE_01": XXXXX/******** directory=DMP dumpfile=XXXXX_20160125_01.dmp LOGFILE=XXXXX_20160125.log TABLES=BASE_ACTIONPOWER,BASE_BANK,BASE_BANKMERGE,BASE_BANKTREE,BASE_BRCHBANKCTRL,BASE_CERTIFICATE,BASE_CESS,BASE_COREBANK,BASE_CURRENCY,BASE_DEPARTMENT,BASE_HOLIDAYCALENDAR,BASE_HOLIDAYDATE,BASE_INTEREST,BASE_INTERESTHIS,BASE_MAINAREA,BASE_MENU,BASE_PRODTYPECODE,BASE_RATE,BASE_ROLE,BASE_SYSLOG,BASE_SYSPARAM,BASE_TERMINALTELLER,BASE_USER,FINANCIAL_BANKPROFITLOG,FINANCIAL_DIVIDENDPLAN,FINANCIAL_FUNDPRICE,FINANCIAL_INTERESTRESET,FINANCIAL_ISSUE,FINANCIAL_ISSUEAUDIT,FINANCIAL_ISSUEAUDITHIS,FINANCIAL_ISSUEBRAND,FINANCIAL_ISSUECFL,FINANCIAL_ISSUECONTROL,FINANCIAL_ISSUEDIFFRATE,FINANCIAL_ISSUEDISCOUNT,FINANCIAL_ISSUEEXPD,FINANCIAL_ISSUEEXT,FINANCIAL_ISSUEFEE,FINANCIAL_ISSUEFORCUSTRISKLVL,FINANCIAL_ISSUEFUNDSTRANSFER,FINANCIAL_ISSUEOBSERV,FINANCIAL_ISSUEPAY,FINANCIAL_ISSUEPROFIT,FINANCIAL_ISSUEQTYSPLIT,FINANCIAL_ISSUESELLCTRL,FINANCIAL_ISSUESERIAL,FINANCIAL_ISSUEVARIABLE,FINANCIAL_ISSUEWORKTIME,FINANCIAL_LIQUIDATEACT,FINANCIAL_MESSAGEINFO,FINANCIAL_PERIOD,FINANCIAL_PRICE,FINANCIAL_PRICEHIS,FINANCIAL_REFERINDEX,FINANCIAL_POSITION,RICH_AUTOTRADE,RICH_CUSTACCOUNT,RICH_CUSTAUTOTRADE,RICH_CUSTAUTOTRADEHIS,RICH_CUSTCAPITAL,RICH_CUSTFAVORABLE,RICH_CUSTFREEZEUNIT,RICH_CUSTFUNDPROFIT,RICH_CUSTIMPAWN,RICH_CUSTKEEPBAL,RICH_CUSTOMERINFO,RICH_CUSTOMERINFOHIS,RICH_CUSTORDERTRADE,RICH_CUSTPAYAMOUNTLOG,RICH_CUSTPRODUCTBAL,RICH_CUSTPRODUCTBALQTY,RICH_CUSTPROFITDCCY,RICH_CUSTPROFITLOG,RICH_CUSTPROFITNORMAL,RICH_CUSTPROFITPAYMODE,RICH_CUSTPROFITPAYMODEHIS,RICH_CUSTRISKLVL,RICH_FUNDTRADELOG,RICH_NOPAYAMOUNT,RICH_NORMALPAY,RICH_ORDERTRADE,RICH_SMSCMDSIGN,RICH_SMSCMDTRADE,RICH_STARTBAL,RICH_STARTBALHIS,financial_positionhis,financial_positiontra,financial_positioncst,financial_positionacc,corp_stattemptab,corp_stattemptabacc,corp_stattemptabcst,FINANCIAL_ICCARDCODE,BASE_FINANCIALICCARD,FINANCIAL_ISSUESPECIFICATION,PA_RPT_PARAM,FINANCIAL_SALEBANK_HIS,RICH_TRA
Estimate in progress using BLOCKS method...
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 6.913 GB
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type TABLE_EXPORT/TABLE/COMMENT
Processing object type TABLE_EXPORT/TABLE/TRIGGER
Processing object type TABLE_EXPORT/TABLE/INDEX/FUNCTIONAL_AND_BITMAP/INDEX
Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/FUNCTIONAL_AND_BITMAP/INDEX_STATISTICS
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
. . exported "XXXXX"."RICH_CUSTPRODUCTBAL" 63.64 KB 582
《《《《篇幅原因,有省略。。。。。。。。。。。。。。。)》》》
. . exported "XXXXX"."RICH_TRADELOG_HIS":"P_201411" 0 KB 0 rows
. . exported "XXXXX"."RICH_TRADELOG_HIS":"P_999999" 0 KB 0 rows
ORA-39166: Object RIC was not found.
Master table "XXXXX"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded
******************************************************************************
Dump file set for XXXXX.SYS_EXPORT_TABLE_01 is:
/softtmp/dmp/XXXXX_20160125_01.dmp
Job "XXXXX"."SYS_EXPORT_TABLE_01" completed with 1 error(s) at 16:42:37
5 故障处理总结
删除DATAPUMP序列号,因为该序列号不能超过fixed的了。
SQL> DROP SEQUENCE AQ$_KUPC$DATAPUMP_QUETAB_N;
Sequence dropped.
SQL> CREATE SEQUENCE AQ$_KUPC$DATAPUMP_QUETAB_N MINVALUE 1 MAXVALUE 999999 START WITH 1 INCREMENT BY 1 CACHE 20 CYCLE;
到此所有的处理算是基本完毕,过程很简单,但是不同的场景处理方式有很多种,我们应该学会灵活变通。