查看: 3868|回复: 14

[备份恢复] expdp做单表导出,导出来的数据居然比原始表多?!

[复制链接]
论坛徽章:
22
生肖徽章2007版:猴
日期:2016-05-19 15:26:34生肖徽章2007版:猪
日期:2016-05-19 15:26:34生肖徽章2007版:龙
日期:2016-05-19 15:26:34生肖徽章2007版:兔
日期:2016-05-19 15:26:34ITPUB9周年纪念徽章
日期:2016-05-19 15:26:342010广州亚运会纪念徽章:板球
日期:2016-05-19 15:26:342010广州亚运会纪念徽章:举重
日期:2016-05-19 15:26:342014年新春福章
日期:2014-02-18 16:42:02马上有房
日期:2014-02-18 16:42:02优秀写手
日期:2014-04-09 06:00:22
发表于 2018-3-23 15:20 | 显示全部楼层 |阅读模式

Oracle 10.2.0.5 RAC on AIX 6.1


SQL> select count(*) from comm.apply_sheet;

  COUNT(*)
----------
  55618696



;;;
Export: Release 10.2.0.5.0 - 64bit Production on Friday, 23 March, 2018 15:00: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, OLAP, Data Mining

and Real Application Testing options
Starting "***********"."NODE2FULL":  ************/******** DIRECTORY=dpwin DUMPFILE=full.dmp logfile=expdp_.log JOB_NAME=node2full Tables=COMM.APPLY_SHEET
Estimate in progress using BLOCKS method...
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 14.20 GB
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT
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/STATISTICS/TABLE_STATISTICS
. . exported "COMM"."APPLY_SHEET"                        12.31 GB 57078721 rows
Master table "************"."NODE2FULL" successfully loaded/unloaded
******************************************************************************
Dump file set for *************.NODE2FULL is:
  /mnt/win/dump/full.dmp
Job "********"."NODE2FULL" successfully completed at 15:03:56



命令很简单,没加什么多余的参数
expdp *********/******* DIRECTORY=dpwin DUMPFILE=full.dmp  logfile=expdp_.log JOB_NAME=node2full Tables=COMM.APPLY_SHEET
57078721 - 55618696   导出来的内容居然比原始数据多出146万行!!
求排查思路
论坛徽章:
22
生肖徽章2007版:猴
日期:2016-05-19 15:26:34生肖徽章2007版:猪
日期:2016-05-19 15:26:34生肖徽章2007版:龙
日期:2016-05-19 15:26:34生肖徽章2007版:兔
日期:2016-05-19 15:26:34ITPUB9周年纪念徽章
日期:2016-05-19 15:26:342010广州亚运会纪念徽章:板球
日期:2016-05-19 15:26:342010广州亚运会纪念徽章:举重
日期:2016-05-19 15:26:342014年新春福章
日期:2014-02-18 16:42:02马上有房
日期:2014-02-18 16:42:02优秀写手
日期:2014-04-09 06:00:22
 楼主| 发表于 2018-3-23 15:35 | 显示全部楼层
以为是mount网络nfs存储的问题 ,换成往AIX本地硬盘上dump也是一样多数据

使用道具 举报

回复
论坛徽章:
121
现任管理团队成员
日期:2011-05-07 01:45:08
发表于 2018-3-23 15:39 | 显示全部楼层
你导出用的用户和查询用的用户是一个么?

使用道具 举报

回复
论坛徽章:
22
生肖徽章2007版:猴
日期:2016-05-19 15:26:34生肖徽章2007版:猪
日期:2016-05-19 15:26:34生肖徽章2007版:龙
日期:2016-05-19 15:26:34生肖徽章2007版:兔
日期:2016-05-19 15:26:34ITPUB9周年纪念徽章
日期:2016-05-19 15:26:342010广州亚运会纪念徽章:板球
日期:2016-05-19 15:26:342010广州亚运会纪念徽章:举重
日期:2016-05-19 15:26:342014年新春福章
日期:2014-02-18 16:42:02马上有房
日期:2014-02-18 16:42:02优秀写手
日期:2014-04-09 06:00:22
 楼主| 发表于 2018-3-23 15:44 | 显示全部楼层
是同一用户,DBA权限的

使用道具 举报

回复
论坛徽章:
121
现任管理团队成员
日期:2011-05-07 01:45:08
发表于 2018-3-23 16:01 | 显示全部楼层
export完,再用select count(*)查,依然相差100多万?? 听上去想是bug。 你有没有对这个表和索引做过analyze? 难道表和索引不匹配了?

使用道具 举报

回复
论坛徽章:
22
生肖徽章2007版:猴
日期:2016-05-19 15:26:34生肖徽章2007版:猪
日期:2016-05-19 15:26:34生肖徽章2007版:龙
日期:2016-05-19 15:26:34生肖徽章2007版:兔
日期:2016-05-19 15:26:34ITPUB9周年纪念徽章
日期:2016-05-19 15:26:342010广州亚运会纪念徽章:板球
日期:2016-05-19 15:26:342010广州亚运会纪念徽章:举重
日期:2016-05-19 15:26:342014年新春福章
日期:2014-02-18 16:42:02马上有房
日期:2014-02-18 16:42:02优秀写手
日期:2014-04-09 06:00:22
 楼主| 发表于 2018-3-23 16:05 | 显示全部楼层
access_method=direct_path、external_table都试过了,一样

export之后,select查了,还是想差100多万,那个表一天最多也就几万的增量数据吧,不可能几分钟之内达到百万的级别

那我再收集一下统计信息吧

使用道具 举报

回复
论坛徽章:
188
红宝石
日期:2014-05-09 08:24:37萤石
日期:2014-01-03 10:25:39奥运会纪念徽章:羽毛球
日期:2008-07-01 10:46:06奥运会纪念徽章:马术
日期:2008-07-07 17:43:24奥运会纪念徽章:射箭
日期:2008-07-25 18:07:39奥运会纪念徽章:皮划艇激流回旋
日期:2008-07-30 10:02:57奥运会纪念徽章:花样游泳
日期:2008-09-26 13:02:43奥运会纪念徽章:排球
日期:2008-12-03 11:23:272010新春纪念徽章
日期:2010-01-04 08:33:082010年世界杯参赛球队:澳大利亚
日期:2010-02-26 11:08:44
发表于 2018-3-23 16:07 | 显示全部楼层
select /*+ full(a) */ count(*) from comm.apply_sheet a ;

--//如果一致,就是索引坏了.
另外你导出,有业务操作吗?

使用道具 举报

回复
论坛徽章:
22
生肖徽章2007版:猴
日期:2016-05-19 15:26:34生肖徽章2007版:猪
日期:2016-05-19 15:26:34生肖徽章2007版:龙
日期:2016-05-19 15:26:34生肖徽章2007版:兔
日期:2016-05-19 15:26:34ITPUB9周年纪念徽章
日期:2016-05-19 15:26:342010广州亚运会纪念徽章:板球
日期:2016-05-19 15:26:342010广州亚运会纪念徽章:举重
日期:2016-05-19 15:26:342014年新春福章
日期:2014-02-18 16:42:02马上有房
日期:2014-02-18 16:42:02优秀写手
日期:2014-04-09 06:00:22
 楼主| 发表于 2018-3-23 16:13 | 显示全部楼层
换了一个有null值的字段,执行计划里看到走的是全表扫描,之前的count(*)走的是pk索引
select count(t.priorty_flag) from comm.apply_sheet t

应该是这个原因了

使用道具 举报

回复
论坛徽章:
121
现任管理团队成员
日期:2011-05-07 01:45:08
发表于 2018-3-23 16:16 | 显示全部楼层
本帖最后由 zergduan 于 2018-3-23 16:21 编辑
lfree 发表于 2018-3-23 16:07
select /*+ full(a) */ count(*) from comm.apply_sheet a ;

--//如果一致,就是索引坏了.

ANALYZE TABLE VALIDATE STRUCTURE CASCADE 就可以,这样比较直观是否索引有问题,但是注意,这个语句组织DML,别在线做,当然应该有对应的online子句

使用道具 举报

回复
论坛徽章:
121
现任管理团队成员
日期:2011-05-07 01:45:08
发表于 2018-3-23 16:23 | 显示全部楼层
或者

select /*+ full(t1) parallel */ sum(ora_hash(rowid))
from  <TABLE NAME> t1
minus
select /*+ index_ffs(t <INDEX NAME>) parallel */ sum(ora_hash(rowid))
from <TABLE NAME> t

索引用主键,或者非空列索引(总之应该用select count(*) from comm.apply_sheet a 执行计划中的那个索引)

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

【有奖讨论】解决存储挑战了解一下
奖品:米家车载空气净化器 、米家声波电动牙刷 、小米运动蓝牙耳机

在数字经济时代,井喷式增长的数据,在释放大量商业价值的同时,也随之对企业的IT基础设施带来了不容忽视的挑战!如何存储、管理、使用这些数据呢?这是一条比以往更艰难的路~

活动时间:9月20日-10月11日

参与讨论>>
TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 
京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表