博客统计信息

用户名:hapyydagui_min
文章数:18
评论数:24
访问量:70604
无忧币:20
博客积分:266
博客等级:2
注册日期:2009-02-19

我的技术圈(2)

更多>>
利用EXP/IMP进行数据迁移,如何转换表空间操作(完整版)
2009-02-25 20:34:19
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://happydagui.blog.51cto.com/669150/133097
网上搜索相关主题,90%都不可实际操作,通过实验,终于找到了可行的办法,发布在这里和大家分享。
注意:适用与oracle 10g+以上的版本。
如果目标表空间为TS-D,源表空间为TS-S,使用imp命令导入源表空间导出的dmp文件,会出现以下提示:
IMP-00003: 遇到 ORACLE 错误 959
ORA-00959: 表空间 'TS-S' 不存在
如果不知道源表空间名,可以通过上面的导入日志发现。
 
下面是处理过程。
1、在目标数据库,以system登录后,执行
ALTER TABLESPACE TS-D RENAME TO TS-S;
2、再执行imp命令;
3、执行完成后,执行
ALTER TABLESPACE TS-S RENAME TO TS-D;

 

附1:单个移动表或索引到新的表空间

另附,把表或索引从一个表空间移动到另一个表空间的脚本,前提是以该表或索引的owner用户登录。

ALTER INDEX SYS_C007673 REBUILD TABLESPACE zjkfq;
ALTER TABLE website MOVE TABLESPACE zjkfq;

 

附2:批量移动表或索引到新的表空间,对于大表,速度较慢

将表批量移动到另一个表空间

1)表
执行以下sql生成批量的sql语句,控制台结果输出为sql语句
select 'alter table '||table_name||' MOVE TABLESPACE ZJMZ;' from user_tables;
2)复制上一步生成的输出(sql格式),执行即可。

将索引批量移动到另一个表空间
1)执行以下sql生成批量的sql语句,
select 'ALTER INDEX ' ||index_name || ' REBUILD TABLESPACE ZJMZ;' from user_indexes;
2)复制上一步生成的输出(sql格式),执行即可。

本文出自 “做最好的自己” 博客,请务必保留此出处http://happydagui.blog.51cto.com/669150/133097

分享至
更多
一键收藏,随时查看,分享好友!
0人
了这篇文章
类别:数据库技术圈()┆阅读()┆评论() ┆ 推送到技术圈返回首页

文章评论

 
2009-02-26 12:16:38
自己推荐加为精华!呵呵!

谢谢小松这么几十的关注新的博文。

2009-02-26 14:23:19
哈哈,也谢谢博主这么及时的看到我的出现(*^__^*)

2009-02-26 14:29:33
多谢领导赏识才成为精华文章,呵呵!

 

发表评论            

【技术门诊】专家解析:软考重点难点及应试技巧
昵  称:
登录  快速注册
验证码:

请点击后输入验证码博客过2级,无需填写验证码

内  容: