一、背景
公司、客户的Oracle数据库,每次导出的dmp数据文件只有几十兆,还原备份后,往往会出现表空间不够的错误,需要巨大的表空间才能进行完整还原。
二、原因
Oracle 数据库的 dba_segments这张表中分配的段过大。导致在还原的时候,会先根据这张表中每个数据表所占用的段的大小,相应的进行增加数据文件大小,所以造成表空间数据文件无线扩大。
1、关于dba_segments 详解
SEGMENT_TYPE:段的类型,可能是table,index,logindex,lobsegment等。
header_file:表示这个段的头在哪个数据文件里,因为段可以跨数据文件。
header_block:表示这个段的头在数据文件的第几个block里。
bytes:段的大小(目前占用的大小?)
blocks:段占用了多少个block
extents:分配了多少个extent。
initial_extent:初始分配的extent大小(以byte计)。
next_extent:下一个分配的extent大小(以byte计)。如果为空表示是自动分配。(每个extent可以有不同大小,如果设置为uniform的话,每个extent就一样大小了)
min_extents:最少分配多少个extent(以个数计)。
max_extents:最多分配多少个extent(以个数计)。
pct_increase:percent
increase表示第三个或后续的extent的大小比前一个增加的百分比,如第一个ext