关于exp和imp的问题

gz_shf 2008-10-18 01:53:43
现在本人需要把A服务器的表结构和存储过程同步到B服务器上。
先exp导出所有的表结构,和存储过程:exp username/password@server1 file=db.dmp log=expdb.log rows=n
然后imp到B服务器,imp username/password@server2 fromuser=XXX touser=XXX file=dbr.dmp log=impdb.log

发现一个问题,空的数据库db.dmp本来很小,但还原到server2后,占用了很大的表空间,相当于源数据库server1所占用的表空间大小。

现在server1的另外一个用户的数据很多,Server2的空间有限,没有足够的空间imp,请问有什么方法可以解决吗?
...全文
107 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
butchroller 2008-10-20
  • 打赏
  • 举报
回复
补4L:db.sql中有非sql命令要一并删除。
butchroller 2008-10-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 gz_shf 的回复:]
引用 1 楼 butchroller 的回复:
导入时不用imp,编辑db.dmp,修改存储参数,然后到server2手动执行。

请问能详细一点吗?如何修改存储参数?手动执行是什么做?非常感谢!!!
[/Quote]

# strings db.dmp > db.sql
# vi db.sql
(删除 CREATE TABLE 命令后面的 STORAGE (INITIAL xxx...))
# sqlplus username/passwd @db.sql
gz_shf 2008-10-20
  • 打赏
  • 举报
回复
好的,非常感谢完全明白了。
gz_shf 2008-10-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 butchroller 的回复:]
导入时不用imp,编辑db.dmp,修改存储参数,然后到server2手动执行。
[/Quote]
请问能详细一点吗?如何修改存储参数?手动执行是什么做?非常感谢!!!
BlueskyWide 2008-10-18
  • 打赏
  • 举报
回复
1.从最小的用户开始导入,一个一个来;
2.在Oracle存贮管理工具中把Server2先导入的用户的存贮空间改小点(试一下);
3.等移出较大的空间时,才导入server1的另外一个数据很多的用户。



[Quote=引用楼主 gz_shf 的帖子:]
现在本人需要把A服务器的表结构和存储过程同步到B服务器上。
先exp导出所有的表结构,和存储过程:exp username/password@server1 file=db.dmp log=expdb.log rows=n
然后imp到B服务器,imp username/password@server2 fromuser=XXX touser=XXX file=dbr.dmp log=impdb.log

发现一个问题,空的数据库db.dmp本来很小,但还原到server2后,占用了很大的表空间,相当于源数据库server1所占用的表空间大小。

现在server1…
[/Quote]
butchroller 2008-10-18
  • 打赏
  • 举报
回复
导入时不用imp,编辑db.dmp,修改存储参数,然后到server2手动执行。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧