Oracle11G数据库一下子少了不少表
「已注销」 2018-07-14 07:21:46
背景情况
oracle 11G 11.2.0.10 for windows 2008 r2 x64
两个服务器的数据库NLS_lang中的S是相同的
导入某个用户下的所有表另外一个数据库,发现表数量差距特别大,原来数据库700多张表,导入到新的数据表示是400多张
开始查原因,把空表插入数据:
show parameter deferred_segment_creation
alter system set deferred_segment_creation=false;
select table_name from user_tables where NUM_ROWS=0;
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;
然后将查询结果一次修改,发现有些表提示不存在,提示如下信息,很多条都是这样的,
SQL> alter table AQ$_KUPC$DATAPUMP_QUETAB_1_T allocate extent;
alter table AQ$_KUPC$DATAPUMP_QUETAB_1_T allocate extent
*
ERROR at line 1:
ORA-00942: table or view does not exist
SQL> alter table AQ$_KUPC$DATAPUMP_QUETAB_1_H allocate extent;
alter table AQ$_KUPC$DATAPUMP_QUETAB_1_H allocate extent
*
ERROR at line 1:
ORA-00942: table or view does not exist
查询某些提示不存在的表是存在的,但是没看表里是否有信息;
再次导表发现导出问题报错,提示如下信息
. . exporting table
0 rows exported EXP-00091: Exporting questionable statistics.
EXP-00091: Exporting questionable statistics. EXP-00091:
Exporting questionable statistics.
最后查出原因,原来oracle客户端用的字符集和服务器字符集不同
设备变量后不再报错
SET NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
关掉监听,数据库,再次启动数据库(后来记不清楚是否空表再插入一遍)
查询源服务器表数量,由以前的700多表,成了400多张了,和导出到其他的数据库的表数量相同
再次查询源数据库提示不存在的表发现没有了
导出的表的dmp容量没有减少,还增加了100KB多,不知道什么原理
请风哥讲一下原理,可能是什么原因导致的,我应该去哪个方向查,我没有删表,绝对没有删任何表,我对天发誓;