刚开始使用oracle的时候不知道更改表空间,把自己系统的表全部建在SYSTEM表空间下,现在SYSTEM01.DBF已经有2G大小,现在想把SYSTEM下的内容全部转到USERS下,用alter table table_name move tablespace tablespace_name和alter index index_name rebuild tablespace space_name 把所有的表和索引转到users下,但是原来的system表空间却仍然有2G多大小,网上查到的内容多只言片语,想求一个完整的转移表空间的方案,要实现两个操作:
1.将system表空间内的对象转移到users,不能丢失数据
2.压缩system表空间,将system表空间文件缩小为略大于实际用量(system表空间有许多系统对象,已经占用了后部的数据块,resize不能进行)
1.将system表空间内的对象转移到users,不能丢失数据
2.压缩system表空间,将system表空间文件缩小为略大于实际用量(system表空间有许多系统对象,已经占用了后部的数据块,resize不能进行)
解决方案 »
- 一个简单的job
- 用sql能不能查出机构的下两级机构
- scott用户下的表,要求实现如下查询需求,小弟自己写了个。我想问下有无更优的书写方式
- oracle 备份和恢复数据时,怎么样知道是成功还是败?
- ORACEL怎么查数据库的用户占用的进程和相对应的SQL语言?
- 求救!改了机器名,服务起不来了?及怎么改oracle的全局数据库名啊?
- 我现在要重新安装一个WIN2000SERVER,想把整个ORACEL8i导出来,怎么办?请高手指点一下~!
- ORACLE不可用!!!01034 oracle not available
- windows启动时如何屏蔽Orical的启动项
- 那有JAVA,JSP中处理CLOB/BLOB的文档,资料,代码等等???
- 权限 select any dictionary
- 如果获取删除某个表数据的SQL语句?
identified by pwd
default tablespace USERS; -- 建个新user, 写SQL比较麻烦, 建议使用Console之类的工具grant connect, resource to newUserId --给足够的权限.imp newUserID/psw@sid -- 把刚才导出的文件再导回去, 搞定, 什么都不会缺
您好,我们是“2006中国杰出数据库工程师评选”活动组委会。
您的帖子已经被我们转载到本次评选官方网站的“专家在线答疑”区。
http://www.bestdba.cn/match_discussion.aspx在那里,进入本次评选终选的30位数据库工程师将与您展开积极的互动。他们会为您的问题提供满意的答案,此外,您还可以在“专家在线答疑”区提出新的问题并参与讨论。您的帖子位于:
http://www.bestdba.cn/match_discussion3.aspx?pointid=461&pointid2=1&pointid3=5&pcount=stc非常感谢您对本次活动的支持!
--------------------------------------------------------------
你的方法不可能解决问题,因为exp的时候导出的表定义里会包含tabalspace的信息,所以再次导入的时候,表定义里的指定的tablespace的优先级肯定高于user的默认表空间设定,所以不管user的默认表空间是什么,都回保持导出前的表空间。
sozdream()
你的方法不可能解决问题,因为exp的时候导出的表定义里会包含tabalspace的信息,所以再次导入的时候,表定义里的指定的tablespace的优先级肯定高于user的默认表空间设定,所以不管user的默认表空间是什么,都回保持导出前的表空间。
--------------
用fromuser,touser导入到一个不同的schema下,会进入新的schema的default tablespace其实这种情况,如果库不是很大,而且可以接受一两个小时停机的话,建议重建库比较简单。
这个毕竟没什么好办法,至少我的知识不够……
alter index test_indx rebuild tablespace new_indx online;
ALTER TABLE test MOVE LOB (test_lob) STORE AS (TABLESPACE new_lob);