可以通過(guò)alter方法,將一個(gè)表移動(dòng)到另外一個(gè)表空間中:
成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供汾陽(yáng)網(wǎng)站建設(shè)、汾陽(yáng)做網(wǎng)站、汾陽(yáng)網(wǎng)站設(shè)計(jì)、汾陽(yáng)網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、汾陽(yáng)企業(yè)網(wǎng)站模板建站服務(wù),10多年汾陽(yáng)做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
sql: alter table spaceOne.tablename move tablespace spaceTwo;
解釋:以上語(yǔ)句就是把tablename表從spaceOne移動(dòng)到spaceTwo中。
備注一:
當(dāng)前的用戶必須對(duì)spaceTwo、spaceOne都有操作權(quán)限才可以。
備注二:
其實(shí)如果對(duì)兩個(gè)表空間都有權(quán)限的話,可以通過(guò)
create spaceTwo.tablename as select * from spaceOne.tablename;
之后再刪除spaceOne中tablename表的間接方式也能實(shí)現(xiàn)。
alter table IPMONMEX add PARTITION DATA_2012 --給表IPMONMEX增加一個(gè)DATA_2012分區(qū)
values less than ('2012010100000001') --分區(qū)依據(jù)(這個(gè)地方是不是沒(méi)有寫全?估計(jì)是存儲(chǔ)2012年1月1日前的數(shù)據(jù))
tablespace USERS2011 --在表空間USERS2011上創(chuàng)建此分區(qū)
--以下為分區(qū)控制參數(shù)
pctfree 10 --保留10%作為update用
initrans 1 --指明每個(gè)事物影響的最小數(shù)據(jù)塊數(shù)
maxtrans 255 --指明每個(gè)事物影響的最大數(shù)據(jù)塊數(shù)
--以下為存儲(chǔ)參數(shù)
storage
(
initial 48K --存儲(chǔ)初始大小
minextents 1 --最小擴(kuò)展數(shù)量
maxextents unlimited --最大可擴(kuò)展數(shù)量(無(wú)限)
) ;
1.關(guān)閉運(yùn)行中的數(shù)據(jù)庫(kù)
SQL shutdown immediate
2.啟動(dòng)數(shù)據(jù)庫(kù)到mount狀態(tài)
SQL startup mount
3.移動(dòng)系統(tǒng)表空間(SYSTEM表空間)的數(shù)據(jù)文件
SQL host move D:\ORADATA\ORCL\SYSTEM01.DBF D:\ORACLE\ORADATA\
4.修改該表空間的數(shù)據(jù)文件路徑
SQL alter database rename file 'D:\ORADATA\ORCL\SYSTEM01.DBF' to 'D:\ORACLE\ORA
DATA\SYSTEM01.DBF';
5.啟動(dòng)數(shù)據(jù)庫(kù),打開(kāi)實(shí)例
SQL alter database open;
首先,使用下面的命令移動(dòng):
alter table table_name move tablespace tablespace_name;
然后,如果有索引的話必須重建索引:
alter index index_name rebuild tablespace tablespace_name;
當(dāng)然,可以使用spool來(lái)幫助實(shí)現(xiàn)多個(gè)表的操作.
set header off;
spool /export/home/oracle/alter_tables.sql;
select 'alter table ' || object_name || ' move tablespace users'
from dba_object
where owner = 'XXX' and object_type = 'TABLE';
spool off;
之后執(zhí)行此sql腳本即可.
同樣對(duì)于index也做同樣的操作.
alter table 表名move tablespace 新表空間名稱\x0d\x0a注意:移動(dòng)表的表空間后,該表的索引肯定會(huì)失效的,所以需要把索引重建一下\x0d\x0a索引重建索引語(yǔ)法:\x0d\x0aalter index 索引名稱 rebuild;\x0d\x0a如果你的Oracle是企業(yè)板的話:\x0d\x0aalter index 索引名稱 rebuild online;
一、使用imp/exp。先導(dǎo)出源庫(kù),再創(chuàng)建新庫(kù)把表空間創(chuàng)建好,然后再導(dǎo)入。(據(jù)說(shuō)這樣可以,前提是新的庫(kù)里面不能有與源庫(kù)相同名字的表空間。有待驗(yàn)證!)
二、使用腳本進(jìn)行修改。據(jù)目前所了解,正長(zhǎng)情況下需要修改表的空間和表的索引的空間,如果涉及到BOLB字段的表,修改的方式又不一樣了!