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表空间中,其它表空间中都没有数据。
原文地址:https://blog.csdn.net/su377486/article/details/134656616
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_46704.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!