And*_*tov 1 oracle export dump
有一个 oracle 11g 模式,数据量约为 700 Gb。只有该模式中有表/索引,没有过程/包。
对该模式执行 expdp
expdp schemas=TheSchema directory=dir dumpfile=dump logfile=log content=metadata_only
Run Code Online (Sandbox Code Playgroud)
,由于metadata_only
. 在 pl/sql developer 中执行 tools/export-user-objects 会得到一个文本大小为半兆字节的 sql 文件。
但是出现了一个20 Gb 的转储文件!
这个 expdp 创建的转储文件中有什么大的东西,比如索引内容?
如果我只想在另一个模式中创建类似于 TheSchema 中的表,可以做些什么来最小化使用 expdp 完成的转储文件?
UP: schema的text-sql-dump中有不少表/索引:
> grep "create table" TheSchema.sql | wc -l
523
> grep "index" TheSchema.sql | wc -l
501
> grep "partition" TheSchema.sql | wc -l
96
Run Code Online (Sandbox Code Playgroud)
小智 5
你运行的是什么版本?我无法在 11.2.0.4 上重现您的结果。这是我的架构:
16:36:09 system@DB> select owner, sum(bytes)/1024/1024/1024 GB from dba_segments where owner = 'USER' group by owner;
OWNER GB
------------------------------ ----------
USER 1156.41901
Run Code Online (Sandbox Code Playgroud)
这是导出语句: expdp system/x schemas=user directory=DATA_PUMP_DIR content=metadata_only logfile=test_meta.log
这是转储文件的大小:
oracle@db01:(db1) ~]$ ls -ltrh /u01/exports/db/expdat.dmp
-rw-r----- 1 oracle oinstall 25M Nov 20 16:40 /u01/exports/db/expdat.dmp
Run Code Online (Sandbox Code Playgroud)
确保您使用 SYSTEM 进行导出,因为不建议使用 sysdba privs 运行数据泵(请参阅调用数据泵导出。我想知道这是否可能是问题所在。