问题描述:exp导数据时报错ORA-01578 ORA-01110,如下所示:
数据库:oracle 19.12 多租户
1、异常重现
[oracle@dbserver ~]$ exp ora1/ora1@orclpdb file=emp.dmp tables=emp log=exp.log
Export: Release 19.0.0.0.0 - Production on Sat Jan 14 20:30:57 2023
Version 19.12.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.12.0.0.0
Export done in US7ASCII character set and AL16UTF16 NCHAR character set
server uses AL32UTF8 character set (possible charset conversion)
About to export specified tables via Conventional Path ...
. . exporting table EMP
EXP-00056: ORACLE error 1578 encountered
ORA-01578: ORACLE data block corrupted (file # 12, block # 659)
ORA-01110: data file 12: '+DATA/ORCLCDB/CBB47E352F7AAEA7E0537885A8C03007/DATAFILE/users.279.1082994667'
Export terminated successfully with warnings.
2、解决过程
SQL> conn sys/oracle_4U@orclpdb as sysdba
Connected.
SQL> alter system set events='10231 trace name context forever,level 10';
Session altered.
SQL> select count(*) from ora1.emp;
COUNT(*)
----------
140
[oracle@dbserver ~]$ export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
[oracle@dbserver ~]$ echo $NLS_LANG
AMERICAN_AMERICA.AL32UTF8
[oracle@dbserver ~]$ exp ora1/ora1@orclpdb file=emp.dmp tables=emp log=exp.log
Export: Release 19.0.0.0.0 - Production on Sat Jan 14 20:41:11 2023
Version 19.12.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.12.0.0.0
Export done in AL32UTF8 character set and AL16UTF16 NCHAR character set
About to export specified tables via Conventional Path ...
. . exporting table EMP 140 rows exported
Export terminated successfully without warnings.
说明:如上成功导出emp表.
补充知识:
--关闭10231内部事件.
alter system set events='10231 trace name context off';