数据文件如何转移到另一个表空间中

shenlele088 2013-12-07 03:09:22
建库者犯了错误,将一张大表的所有分区都放入一个表空间。按道理应分布在4个表空间上的。现在造成一个表空间过大,其他表空间数据几乎没有。
因为此表特别大800g,执行move分区表空间,数据进行转移时,几个小时没有动静。实在不知道何时完事,而且是否会失败。
现在想到两种方式:
1、将其他无用的表空间里的已经建立起来的20g大小的文件直接转移到目前这个表空间上,应该是可以吧,就是不知道怎么写。
2、是否可以move分区后以后的表空间时,指定其不进行动态转移,而是让这个表以后只往新的表空间里入呢?

此两种方式都比较冷僻,在网上没有找到。哪位大侠帮帮忙啊
...全文
544 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
shenlele088 2014-01-03
  • 打赏
  • 举报
回复
没解决呢,前面不急了,我也不急了
会飞的-蜗牛 2013-12-30
  • 打赏
  • 举报
回复
我也是初学者!一起学习吧!
wwwqjpcom 2013-12-27
  • 打赏
  • 举报
回复
问下,楼主最后是怎么解决的?
luoyoumou 2013-12-26
  • 打赏
  • 举报
回复
CREATE TABLE t( tid int, cname varchar2(20) ) PARTITION BY RANGE (tid) INTERVAL (1000000) STORE IN (part01,part02,part03,part04,part05,part06,part07,part08) (partition bef_0 VALUES LESS THAN (0) TABLESPACE part02) PARALLEL COMPRESS;
luoyoumou 2013-12-26
  • 打赏
  • 举报
回复
引用 10 楼 luoyoumou 的回复:
[quote=引用 9 楼 shenlele088 的回复:] 但是,我这里只是个数字的id,无法使用间隔分区
谁说数据ID,就不能用间隔分区啊?[/quote] 间隔分区是11G的新特性。 但没听说:数据ID,就不能用间隔分区!
luoyoumou 2013-12-26
  • 打赏
  • 举报
回复
引用 9 楼 shenlele088 的回复:
但是,我这里只是个数字的id,无法使用间隔分区
谁说数据ID,就不能用间隔分区啊?
shenlele088 2013-12-26
  • 打赏
  • 举报
回复
引用 11 楼 luoyoumou 的回复:
[quote=引用 10 楼 luoyoumou 的回复:] [quote=引用 9 楼 shenlele088 的回复:] 但是,我这里只是个数字的id,无法使用间隔分区
谁说数据ID,就不能用间隔分区啊?[/quote] 间隔分区是11G的新特性。 但没听说:数据ID,就不能用间隔分区![/quote] 我说的意思是我这种使用sequence的pk,如果使用间隔分区,则很有可能造成某个分区过大,某个分区过小。
shenlele088 2013-12-24
  • 打赏
  • 举报
回复
但是,我这里只是个数字的id,无法使用间隔分区
luoyoumou 2013-12-24
  • 打赏
  • 举报
回复
需要均衡表空间的话,最好的方法是用间隔分区,且在创建表时,指定一组表空间(多个表空间),这样会给你省去很多麻烦(当然:这只适用于11G)。例如: create table fubi_user_product.F_PRODUCT_VIDEO_USER_NUM ( DATE_TIME DATE GENERATED ALWAYS AS (TO_DATE(TO_CHAR("DATE_ID"),'YYYYMMDD')) VIRTUAL VISIBLE, DATE_ID NUMBER(8,0) not null, PC_ACTIVE_USER_NUM NUMBER(20,0), WEB_ACTIVE_USER_NUM NUMBER(20,0), WEB_UNIQUE_ACTIVE_USER_NUM NUMBER(20,0), MOBILE_ACTIVE_USER_NUM NUMBER(20,0) ) PARTITION BY RANGE (date_time) INTERVAL(NUMTOYMINTERVAL(2,'year')) STORE IN (part01,part02,part03,part04,part05,part06,part07,part08) (PARTITION P20130101_LS VALUES LESS THAN (TO_DATE('20130101','YYYYMMDD')) TABLESPACE part08) COMPRESS parallel 4;
shenlele088 2013-12-24
  • 打赏
  • 举报
回复
回楼上,我是要把文件移到别的表空间上,不只是换个路径。 当然最好是我说的第二种方式
lmy901125 2013-12-23
  • 打赏
  • 举报
回复
移动ORACLE数据文件 使用Alter Tablespace 移动数据文件: 如果希望移动的数据文件是某个表空间的一部分,而该表空间不是SYSTEM,SYSAUX,活动的撤消表空间或临时表空间,则可使用ALTER TABLESPACE方法移动表空间,其主要原因在于:除了将移动其数据文件的表空间外,所有用户在整个操作期间都可以使用数据库的剩余部分。 使用ALTER TABLESPACE移动一个或多个数据文件的步骤如下: (1)使用具有ALTER TABLESPACE权限的账户,对表空间进行脱机处理。 (2)使用操作系统命令移动数据文件。 (3)使用ALTER TABLESPACE改变对数据库中数据文件的引用。 (4)将表空间返回到联机状态。 示例,将数据文件从一个错误的路径'/u02'移入正确的文件路径'/u02/oradata': SQL> alter tablespace HS_USER_DATA offline; Tablespace altered. SQL> ! mv /u02/HS_USR_DAT.ORA /u02/oradata/HS_USR_DAT.ORA 或者 SQL> ! cp /u02/HS_USR_DAT.ORA /u02/oradata/HS_USR_DAT.ORA SQL> alter tablespace HS_USER_DATA rename datafile '/u02/HS_USR_DAT.ORA' to '/u02/oradata/HS_USR_DAT.ORA'; Tablespace altered. SQL> alter tablespace HS_USER_DATA online; Tablespace altered. 此种方法好处是不用重启数据库,同时在移动数据文件的过程中还不影响数据其它部分的使用。 移动数据文件方法
shenlele088 2013-12-14
  • 打赏
  • 举报
回复
引用 4 楼 gioh0022 的回复:
你这个应该就是move的了 ALTER TABLE tab_name move PARTITION partition_name TABLESPACE tbs_name parallel 10; 数据量大的话耐心等等
但是move几个小时没有动静,而停止时,几十秒返回停止。感觉没有真正在改,前期就是在扩扩表空间。
  • 打赏
  • 举报
回复
你这个应该就是move的了 ALTER TABLE tab_name move PARTITION partition_name TABLESPACE tbs_name parallel 10; 数据量大的话耐心等等
shenlele088 2013-12-11
  • 打赏
  • 举报
回复
查oracle帮助,也不对,按照他说的写出来还是报错呀 alter table feature_test /*partition PART_FEATURE_12*/ modify feature lob (feature) store as (TABLESPACE TS_BLOB2); ALTER table feature_test MODIFY PARTITION PART_FEATURE_12 LOB (fea) store as (TABLESPACE TS_BLOB2); 只能move吗
shenlele088 2013-12-10
  • 打赏
  • 举报
回复
补充一点,这个表是hash分区
  • 打赏
  • 举报
回复
与楼主一起等待,我也想学习一下

17,377

社区成员

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

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