真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

oracle怎么move Oracle怎么刪除用戶

對(duì)于Oracle move表操作移動(dòng)到同一表空間是不是有效的實(shí)驗(yàn)

首先,使用下面的命令移動(dòng):

創(chuàng)新互聯(lián)建站提供高防服務(wù)器、云服務(wù)器、香港服務(wù)器、西云機(jī)房

alter table table_name move tablespace tablespace_name;

然后,如果有索引的話必須重建索引:

alter index index_name rebuild tablespace tablespace_name;

當(dāng)然,可以使用spool來幫助實(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也做同樣的操作.

oracle 中怎么把一個(gè)表中的數(shù)據(jù)完全復(fù)制到另外一個(gè)表

insert into table_A

select * from table_B

table_B 全表復(fù)制到 table_A

下面供參考:

當(dāng)然如果 B表原來沒有數(shù)據(jù) 或者 B表原有數(shù)據(jù)比較少,為了提高效率,可以考慮新建一個(gè)中間表C

先把A表復(fù)制到C表(create table table_C as select * from table_A where 1=1)

再把B表數(shù)據(jù)導(dǎo)入到C表

insert into table_C select * from table_B

最后把B表rename 為B_TEMP,把C表rename 為B

rename table_b to B_TEMP;

rename table_C to table_B;

最后檢查數(shù)據(jù),如果正常 drop掉B_temp表

drop table B_temp;

如何設(shè)置oracle row move

move一個(gè)表到另外一個(gè)表空間時(shí),索引不會(huì)跟著一起move,而且會(huì)失效。(LOB類型例外)表move,我們分為:

*普通表move

*分區(qū)表move

*LONG,LOB大字段類型move來進(jìn)行測(cè)試和說明。

索引的move,我們通過rebuild來實(shí)現(xiàn)

一:move普通表、索引基本語法:

alter table tab_name move tablespace tbs_name;move過的普通表,在不用到失效的索引的操作語句中,語句執(zhí)行正常,但如果操作的語句用到了索引(主鍵當(dāng)做唯一索引),則此時(shí)報(bào)告用到的索引失效,語句執(zhí)行失敗,其他如外鍵,非空約束,缺省值等不會(huì)失效。

我們需要重新創(chuàng)建主鍵或索引,基本語法為:

1

2

alter index index_name rebuild;

alter index pk_name rebuild;

如果我們需要move索引,則使用rebuild語法:

1

2

alter index index_name rebuild tablespace tbs_name;alter index pk_name rebuild tablespace tbs_name;提示:查詢表所具有的索引,可以使用user_indexes視圖(索引和主鍵都在這個(gè)視圖里可找到)。

二:move分區(qū)表及索引和普通表一樣,索引會(huì)失效,區(qū)別的僅僅是語法而已。

分區(qū)基本語法:特別提醒注意,如果是單級(jí)分區(qū),則使用關(guān)鍵字PARTITION,如果是多級(jí)分區(qū),則使用SUBPARTITION替代PARTITION。

如果分區(qū)或分區(qū)索引比較大,可以使用并行move或rebuild,PARALLEL (DEGREE 2);如:

1

2

3

ALTER TABLE PART_ALARMTEXTDATA move SUBPARTITION ALARMTEXTDATA_050910_ATD01 TABLESPACE users PARALLEL (DEGREE 2);ALTER INDEX GLOBAL_ALARMTEXTDATA REBUILD tablespace users PARALLEL (DEGREE 2);ALTER INDEX LOCAL_ALARMTEXTDATA REBUILD SUBPARTITION ALARMTEXTDATA_050910_ATD01 TABLESPACE users PARALLEL (DEGREE 2);移動(dòng)表的某個(gè)分區(qū):

1

ALTER TABLE tab_name move PARTITION partition_name TABLESPACE tbs_name;重建全局索引:

1

2

ALTER INDEX global_index REBUILD;或

ALTER INDEX global_index REBUILD tablespace tbs_name;注: 分區(qū)操作時(shí)可以帶上with update global indexes選項(xiàng)更新全局索引重建局部索引:

1

ALTER TABLE tab_name MODIFY PARTITION partition_name REBUILD UNUSABLE LOCAL INDEXES;1

1

ALTER INDEX local_index_name REBUILD PARTITION partition_name TABLESPACE tbs_name;提示:

USER_PART_TABLES

USER_IND_PARTITIONS

USER_IND_SUBPARTITIONS

USER_LOB_PARTITIONS

USER_LOB_SUBPARTITIONS

USER_PART_INDEXES

USER_PART_LOBS可查詢分區(qū)相關(guān)內(nèi)容,同時(shí),分區(qū)對(duì)象,也是segment,所以也可在dba_segments里查的到。

三:move LONG,LOB類型(據(jù)說DBMS_REDEFINITION包可以提供一些方便,沒用過。)I:LONG類型

LONG類型不能通過MOVE來傳輸特別提示,盡量不要用LONG類型,特難管理。參考:http//不能使用insert into … select …等帶select的模式。如1

2

3

4

5

6

7

8

9

10

11

12

13

14

create table t123 (id int,en long);則

insert into t123(id,en) select * from t123;報(bào)告錯(cuò)誤,可以用pl/sql來幫助解決,如:

declare

cursor cur_t123 is select * from t123;

use_t123 cur_t123%rowtype;

begin

open cur_t123;

loop

fetch cur_t123 into use_t123;

exit when cur_t123%notfound;

insert into t123(id,en) values (use_t123.id,use_t123.en);end loop;

close cur_t123;

end;

對(duì)有LONG類型字段的表的轉(zhuǎn)移,可以使用:

create新表的方法。

* create一個(gè)新的表,存儲(chǔ)在需要轉(zhuǎn)移的表空間。

* 創(chuàng)建新的索引(使用tablespace 子句指定新的表空間)。

* 把數(shù)據(jù)轉(zhuǎn)移過來

方法一:用COPY的方法:

1

copy from bigboar/bigboar@bigboar_sid insert t123(id,en) using select id,en from t123;方法二:PL/SQL(如上)

方法三:直接就把LONG轉(zhuǎn)換成CLOB類型

1

2

create table t321(id int,en clob) tablespace users;insert into t321(id,en) select id,to_lob(en) from t123;方法四:exp/imp

1

2

exp bigboar/bigboar file=a.dat tables=t123imp bigboar/bigboar file=a.dat full=y IGNORE =y* drop掉舊表。

* rename 新表為舊表表名。

II:LOB類型在建立含有l(wèi)ob字段的表時(shí),oracle會(huì)自動(dòng)為lob字段建立兩個(gè)單獨(dú)的segment,一個(gè)用來存放數(shù)據(jù)(segment_type=LOBSEGMENT),另一個(gè)用來存放索引(segment_type=LOBINDEX)。默認(rèn)它們會(huì)存儲(chǔ)在和表一起的表空間。我們對(duì)表MOVE時(shí),LOG類型字段和該字段的索引不會(huì)跟著MOVE,必須要單獨(dú)來進(jìn)行MOVE,語法如下如:

1

2

alter table t321 move tablespace users;

alter table t321 move lob(en) store as (tablespace users);

oracle數(shù)據(jù)庫怎么從一個(gè)磁盤遷移到另一個(gè)磁盤

簡(jiǎn)單步驟:

1、正常關(guān)閉數(shù)據(jù)庫;

2、遷移所有數(shù)據(jù)文件到新的盤;

3、啟動(dòng)實(shí)例到mount階段,修改數(shù)據(jù)文件的路徑;

4、啟動(dòng)實(shí)例到open階段,正常使用數(shù)據(jù)庫。

5、另外,如果想要遷移日志文件,比較好辦,在新盤新目錄下創(chuàng)建新的redo,刪除原來盤上的redo。

6、如果想要遷移控制文件,那么:

6.1、正常關(guān)閉數(shù)據(jù)庫;

6.2、遷移控制文件到新盤新目錄;

6.3、啟動(dòng)實(shí)例到nomount階段;

6.4、修改實(shí)例參數(shù)control_files指向新的目錄;

6.4、alter database mount;

6.5、alter databse open;

如果要遷移數(shù)據(jù)庫軟件,那就另說了,可以先安裝一套DB軟件到新盤新目錄,然后修改環(huán)境變量指向新的環(huán)境,重要的變量包括ORACLE_BASE、ORACLE_HOME、PATH等。

ORACLE如何修改表所在的表空間

可以通過alter方法,將一個(gè)表移動(dòng)到另外一個(gè)表空間中:

sql: alter table spaceOne.tablename move tablespace spaceTwo;

解釋:以上語句就是把tablename表從spaceOne移動(dòng)到spaceTwo中。

備注一:

當(dāng)前的用戶必須對(duì)spaceTwo、spaceOne都有操作權(quán)限才可以。

備注二:

其實(shí)如果對(duì)兩個(gè)表空間都有權(quán)限的話,可以通過

create spaceTwo.tablename as select * from spaceOne.tablename;

之后再刪除spaceOne中tablename表的間接方式也能實(shí)現(xiàn)。


分享名稱:oracle怎么move Oracle怎么刪除用戶
URL分享:http://weahome.cn/article/hgogop.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部