当前位置: 首页 > article >正文

oracle impdp 导入元数据表空间异常增大的解决办法

expdp导出的时候指定了contents=metadata_only只导出元数据,但是在impdp导入到新库的时候,发现新库的表空间增长非常大,其实这个直接就可以想到,应该是大表的initial segment过大导致的

正常impdp,在执行创建表和索引的sql的时候,会带上存储参数,存储参数中就指定了初始化段大小,如果原表非常大或者表分区特别多,那么这个默认的初始化段也会变的非常大,因此会导致你建表的时候占用的空间非常大

expdp/impdp提供了transform参数,可以指定在导出和导入的时候去除哪些属性:

TRANSFORM
Metadata transform to apply to applicable objects.
Valid keywords are: OID, PCTSPACE, SEGMENT_ATTRIBUTES and STORAGE.

内部可能是调用的DBMS_METADATA.SET_TRANSFORM_PARAM函数,关于此函数可以参考:

DBMS_METADATA中使用SESSION_TRANSFORM过滤不想获取的DDL-CSDN博客

此外,建表的时候创不创建初始段还和参数:

deferred_segment_creation         boolean     TRUE

有关,如果设置为true,那么默认建表的时候如果不加任何存储参数,是不会创建段的,如果设置为n,那么就会创建段,如果不显式的指定initial extentd,其实这个初始段一般是非常小的,但是如果要加快创建速度,是可以把他设置为true,这么就是只会建表,而不会创建段

最后修改导入语句如下:

impdp \'/ as sysdba\' directory=expdir dumpfile=str.dmp full=y exclude=statistics TRANSFORM=SEGMENT_ATTRIBUTES:N

 导入完成检查表空间使用:

发现只有system表空间占用,因为元数据保存在system表空间中,其它表空间中都没有数据。


http://www.kler.cn/a/152465.html

相关文章:

  • 党建引领·和谐共建——赤岗街首届微型社区养老服务公益博览会开幕
  • (2)(2.2) Lightware SF45/B(350度)
  • 2的幂运算
  • IC修真院 | 芯片嵌入式课程重磅上线!
  • 中伟视界:AI盒子中的报警预录像功能能解决什么问题?实现原理是怎样的?
  • 关于微信小程序中如何实现数据可视化-echarts动态渲染
  • java21虚拟线程
  • Windows平台下的oracle 11G-11.2.0.4补丁升级操作指南
  • java对xml压缩
  • GPLT(有空就写)
  • Java之Stream的实用语法
  • 掌握区块链技术将推进2024年市场发展脚步
  • 在Rust中编写自动化测试
  • Go语言与Java:一场编程语言之争
  • 用element ui上传带参数的文件,并用flask接收
  • 算法通关村第五关—队栈和Hash的经典问题(白银)
  • 人才缺口达150万!云计算凭什么这么火?
  • 计算机网络(二)
  • Spring Security 6.x 系列(7)—— 源码分析之Builder设计模式
  • 【办公软件】电脑开机密码忘记了如何重置?