对一个DBA或需使用exp,imp的普通用户来说,在我们做exp的过程中可能经常会遇到EXP-00091 Exporting questionable statistics.这样的EXP信息,其实它就是exp的error message。
它产生的原因是因为我们exp工具所在的环境变量中的NLS_LANG与DB中的NLS_CHARACTERSET不一致。
但需说明的是,exp-91这个error message对所生成的dump档没有影响,生成的dump档还可以正常的imp(个人体会,不知道有没有错),虽然它对我们的dump档没有影响,我个人还是不想它出现,大家也有同感吧……
下面我们就让它消失吧……
step 01 查看DB中的NLS_CHARACTERSET的值(提供两种方法):
select * from nls_database_parameters t where t.parameter='NLS_CHARACTERSET'orselect * from v$nls_parameters where parameter='NLS_CHARACTERSET';SQL> select * from v$nls_parameters where parameter='NLS_CHARACTERSET';PARAMETER VALUE----------------------- ----------------------------------------------NLS_CHARACTERSET ZHT16BIG5
step 02 根據step 01查出的NLS_CHARACTERSET(ZHT16BIG5)來設定exp的環境變量:
WINNT> set NLS_LANG=AMERICAN_AMERICA.ZHT16BIG5LINUX> export NLS_LANG=AMERICAN_AMERICA.ZHT16BIG5
附上exp-91的oracle error message 解決方案說明:
oerr exp 9100091, 00000, "Exporting questionable statistics."// *Cause: Export was able export statistics, but the statistics may not be// usuable. The statistics are questionable because one or more of// the following happened during export: a row error occurred, client// character set or NCHARSET does not match with the server, a query// clause was specified on export, only certain partitions or// subpartitions were exported, or a fatal error occurred while// processing a table.// *Action: To export non-questionable statistics, change the client character// set or NCHARSET to match the server, export with no query clause,// export complete tables. If desired, import parameters can be// supplied so that only non-questionable statistics will be imported,// and all questionable statistics will be recalculated.
但由于系统是英文的,对于这个设置不是很明白,暂时还是不要修改了!
但还是忍不住试了一下,出现新的错误……
SQL> select * from v$nls_parameters where parameter='NLS_CHARACTERSET';PARAMETER----------------------------------------------------------------VALUE----------------------------------------------------------------NLS_CHARACTERSETZHS16GBK--退出,在win下设置环境变量C:>set NLS_LANG=AMERICAN_AMERICA.ZHS16BK--开始导出数据C:>exp endba/xxx@hs01 tables=enshpms file=e:enshpms.dmpExport: Release 10.2.0.1.0 - Production on Mon Dec 27 18:46:19 2010Copyright (c) 1982, 2005, Oracle. All rights reserved.EXP-00056: ORACLE error 12705 encounteredORA-12705: Cannot access NLS data files or invalid environment specifiedUsername:Password:EXP-00056: ORACLE error 12705 encounteredORA-12705: Cannot access NLS data files or invalid environment specifiedUsername:Password:EXP-00056: ORACLE error 12705 encounteredORA-12705: Cannot access NLS data files or invalid environment specifiedEXP-00005: all allowable logon attempts failedEXP-00000: Export terminated unsuccessfully
出现了新的错误,可能是英文系统中没有相应的字符集,暂时不搞了……
PS:详细记录一下
正式服务器是英文系统win2003 server
客户端是中文XP
测试服务器是中文系统win2003 server
服务器端导出:
C:>exp endba/xxx@hs01 tables=enshpms file=e:enshpms.dmpExport: Release 10.2.0.1.0 - Production on Mon Dec 27 19:01:11 2010Copyright (c) 1982, 2005, Oracle. All rights reserved.Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bitProductionWith the Partitioning, OLAP and Data Mining optionsExport done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character setserver uses ZHS16GBK character set (possible charset conversion)About to export specified tables via Conventional Path .... . exporting table ENSHPMS 20077 rows exportedEXP-00091: Exporting questionable statistics.EXP-00091: Exporting questionable statistics.EXP-00091: Exporting questionable statistics.Export terminated successfully with warnings.
设置环境变量后导出,没有报错:
C:>SET NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBKC:>exp endba/xxx@hs01 tables=enshpms file=e:enshpms_20101227.dmpExport: Release 10.2.0.1.0 - Production on ╨╟╞┌╥╗ 12╘┬ 27 19:07:27 2010Copyright (c) 1982, 2005, Oracle. All rights reserved.Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bitProductionWith the Partitioning, OLAP and Data Mining optionsExport done in ZHS16GBK character set and AL16UTF16 NCHAR character setAbout to export specified tables via Conventional Path .... . exporting table ENSHPMS 20077 rows exportedExport terminated successfully without warnings.C:>
客户端导入文件到测试系统(中文Win2003 server)
C:>imp endba/xxx@hs01-60 file=d:enshpms_20101227.dmpImport: Release 8.1.6.0.0 - Production on 星期一 12月 27 19:04:01 2010(c) Copyright 1999 Oracle Corporation. All rights reserved.连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining optionsIMP-00010: 不是有效的导出文件,标题检验失败IMP-00000: 未成功终止导入
奇怪啊!
但在客户端导出后,总是没有响应,不能正常结束。
C:>exp endba/xxx@hs01 tables=enshpms file=d:enshpms.dmpExport: Release 8.1.6.0.0 - Production on 星期一 12月 27 19:09:47 2010(c) Copyright 1999 Oracle Corporation. All rights reserved.连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit ProductionWith the Partitioning, OLAP and Data Mining options已导出ZHS16GBK字符集和UTF8 NCHAR 字符集即将导出指定的表通过常规路径 .... . 正在导出表 ENSHPMS 20077 行被导出
此时查看导出文件为450kb
强制结束后,导出文件变为2486KB
而服务器端导出的文件大小都是:2526kb
在客户端将客户端导出的文件导入到测试系统(中文Win2003 server)
C:>imp endba/xxx@hs01-60 file=d:enshpms.dmpImport: Release 8.1.6.0.0 - Production on 星期一 12月 27 19:21:53 2010(c) Copyright 1999 Oracle Corporation. All rights reserved.连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining options经由常规路径导出由EXPORT:V08.01.06创建的文件已经完成ZHS16GBK字符集和UTF8 NCHAR 字符集中的导入. 正在将ENDBA的对象导入到 ENDBA. . 正在导入表 "ENSHPMS" 20077行被导入IMP-00009: 导出文件异常结束成功终止导入,但出现警告。
查看导入的表记录数正确!
还有待进一步分析。
Tag: Oracle Oracle备份与恢复 TTTBLOG