同一数据库下有两个用户A和B,
要求两者的schema完全一样,现在A中也有数据,而B用户刚刚建立,里面什么都没有
我的做法是将A的所有对象全导出来,但不导数据和索引
然后再导出来的文件导入B用户下,这样两者的schema就保持一样具体如下:1、导出A的所有对象,参数文件如下:userid=aa/aa@aaoa3
owner=A
rows=n
indexes=n
constraints=y
grants=n
log= D:\aaOA\导出\oa_exp.log
file=D:\aaOA\导出\oa_exp.dmp
direct=y
compress=n 生成的oa_exp.dmp文件有1.08M
2、导入到B对象,参数文件如下:userid=aa/aa@aaoa3
fromuser=A
touser=B
rows=y
indexes=y
constraints=y
grants=y
log= D:\aaOA\导入\oa_imp.log
file=D:\aaOA\导出\oa_exp.dmp
ignore=y
RECALCULATE_STATISTICS=y导入成功,但发现表空间增长了一倍,后来仔细发现1M多的文件,到数据库后成了825M,和A用户所有对象所耗的表空间相当,不知道为什么,请高手指点,谢谢!
要求两者的schema完全一样,现在A中也有数据,而B用户刚刚建立,里面什么都没有
我的做法是将A的所有对象全导出来,但不导数据和索引
然后再导出来的文件导入B用户下,这样两者的schema就保持一样具体如下:1、导出A的所有对象,参数文件如下:userid=aa/aa@aaoa3
owner=A
rows=n
indexes=n
constraints=y
grants=n
log= D:\aaOA\导出\oa_exp.log
file=D:\aaOA\导出\oa_exp.dmp
direct=y
compress=n 生成的oa_exp.dmp文件有1.08M
2、导入到B对象,参数文件如下:userid=aa/aa@aaoa3
fromuser=A
touser=B
rows=y
indexes=y
constraints=y
grants=y
log= D:\aaOA\导入\oa_imp.log
file=D:\aaOA\导出\oa_exp.dmp
ignore=y
RECALCULATE_STATISTICS=y导入成功,但发现表空间增长了一倍,后来仔细发现1M多的文件,到数据库后成了825M,和A用户所有对象所耗的表空间相当,不知道为什么,请高手指点,谢谢!
解决方案 »
- PL/SQL 中,如何把2个字符串直接起来?
- linux下如何将写好的存储过程(txt格式的文件)导入oracle?
- 存储过程报错,请高手解决
- 在存储过程中怎么实现暂停
- pengdali(大力 V3.0)--请进,有急事
- 批量更新的问题
- 我想创建保存图象的字段,是什么类型?
- PRO*C/C++如何同时连接多个数据库进行操作?
- long类型的内容怎么查询啊?
- oracle startup启动 __streams_pool_size 问题
- 各位大虾请帮忙,在线等待。oracle8.0函数中用动态sql总出错,提示:ORA-06571: 函数MYIF不能保证不更新数据库
- 十万火急 ORACLE数据文件损坏无法正常启动,请高手慷慨解囊
首先谢谢你答复,不过我还是有些不明白。 表空间的创建是由系统完成的,它不属于某个用户,导出用户的对象,会将创建表空间的语句也导出来么?
“你可以尝试compress=y”,压缩有什么好处?
的数额是A用户表的数额,所有,在导进B用户时候,建立表的时候ORACLE会分别这么大的空间
来建立表。你用记事本打开备份 .dmp文件就可以清楚的知道了
STORAGE的大小。方法也是要修改STORAGE的大小,或是从新用脚本建立表。
我的方法就是修改。DMP文件的STORAGE参数。
create table BBS_LB
(
BIANH CHAR(14) not null,
KANWLBM CHAR(50),
SHUOM CHAR(200)
)
tablespace TS_DATA
pctfree 10
pctused 40
initrans 1
maxtrans 255
storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
pctincrease 0
);
-- Create/Recreate primary, unique and foreign key constraints
alter table BBS_LB
add constraint PK_BBS_LB primary key (BIANH)
using index
tablespace TS_INDEX
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
pctincrease 0
);这是B用户的建表语句,这个语句是A用户导入后形成的,由PL/SQL Developer工具拉出来
其中storage参数分配也不是很多呀,怎么会一下子耗掉了那么多空间?是不是还有些参数,上面的语句中没有写出来。请再解释一下,谢谢!
先预分配空间,也就initial参数所指定的大小,也就是64K
接着根据minextents和next值来,分配随后的空间消耗,也就是1x1M,
也就是说一开始建表时,分配的空间也就是1M+64K不知对不对?