Oracle DBA 常用命令_第1頁
Oracle DBA 常用命令_第2頁
Oracle DBA 常用命令_第3頁
Oracle DBA 常用命令_第4頁
Oracle DBA 常用命令_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、ORACLE EXPDP IMPDP命令使用詳細(xì)相關(guān)參數(shù)以及導(dǎo)出示例:1. DIRECTORY指定轉(zhuǎn)儲文件和日志文件所在的目錄DIRECTORY=directory_objectDirectory_object用于指定目錄對象名稱.需要注意,目錄對象是使用CREATE DIRECTORY語句建立的對象,而不是OS目錄Expdp scott/tiger DIRECTORY= DMP  DUMPFILE=a.dump create or replace directory dmp  as '

2、d:/dmp' expdp zftang/zftangzftang directory=dmp  dumpfile=test.dmp content=metadata_only 2. CONTENT該選項用于指定要導(dǎo)出的內(nèi)容.默認(rèn)值為ALLCONTENT=ALL | DATA_ONLY | METADATA_ONLY當(dāng)設(shè)置CONTENT為ALL時,將導(dǎo)出對象定義及其所有數(shù)據(jù).為DATA_ONLY時,只導(dǎo)出對象數(shù)據(jù),為METADATA_ONLY時,只導(dǎo)出對象定義 expdp zftang/zftangzftang directory=dm

3、p  dumpfile=test.dmp content=metadata_only-只導(dǎo)出對象定義expdp zftang/zftangzftang directory=dmp  dumpfile=test.dmp content=data_only-導(dǎo)出出所有數(shù)據(jù)3. DUMPFILE用于指定轉(zhuǎn)儲文件的名稱,默認(rèn)名稱為expdat.dmpDUMPFILE=directory_object:file_name ,.Directory_object用于指定目錄對象名,file_name用于指定轉(zhuǎn)儲文件名.需要注意,如果不指定directory_objec

4、t,導(dǎo)出工具會自動使用DIRECTORY選項指定的目錄對象expdp zftang/zftangzftang directory=dmp  dumpfile=test1.dmp數(shù)據(jù)泵工具導(dǎo)出的步驟: 1、創(chuàng)建DIRECTORYcreate directory dir_dp as 'D:/oracle/dir_dp' 2、授權(quán)Grant read,write on directory dir_dp to zftang;-查看目錄及權(quán)限SELECT privilege, directory_name, DIRECTORY_PATH FROM

5、user_tab_privs t, all_directories d WHERE t.table_name(+) = d.directory_name ORDER BY 2, 1;3、執(zhí)行導(dǎo)出expdp zftang/zftangfgisdb schemas=zftang directory=dir_dp dumpfile =expdp_test1.dmp logfile=expdp_test1.log;連接到: Oracle Database 10g Enterprise Edition Release With the Partitioning, OLAP an

6、d Data Mining options啟動 "ZFTANG"."SYS_EXPORT_SCHEMA_01":  zftang/*fgisdb schory=dir_dp dumpfile =expdp_test1.dmp logfile=expdp_test1.log;  */備注:   1、directory=dir_dp必須放在前面,如果將其放置最后,會提示 ORA-39002: 操作無效       

7、60;                                                 

8、60;   ORA-39070: 無法打開日志文件。                                           &

9、#160;                 ORA-39087: 目錄名 DATA_PUMP_DIR; 無效        2、在導(dǎo)出過程中,DATA DUMP 創(chuàng)建并使用了一個名為SYS_EXPORT_SCHEMA_01的對象,此對象就是DATA DUMP導(dǎo)出過程中所用的JOB名字,如果在執(zhí)行這個命令時如果沒有指定導(dǎo)出的JOB名字那么就

10、會產(chǎn)生一個默認(rèn)的JOB名字,如果在導(dǎo)出過程中指定JOB名字就為以指定名字出現(xiàn)     如下改成:     expdp zftang/zftangfgisdb schemas=zftang directory=dir_dp dumpfile =expdp_test1.dmp logfile=expdp_test1.log,job_name=my_job1;   3、導(dǎo)出語句后面不要有分號,否則如上的導(dǎo)出語句中的job表名為my_job1;,而不是my_job1。因此導(dǎo)致expdp zft

11、ang/zftang attach=zftang.my_job1執(zhí)行該命令時一直提示找不到j(luò)ob表數(shù)據(jù)泵導(dǎo)出的各種模式:1、 按表模式導(dǎo)出:expdp zftang/zftangfgisdb  tables=zftang.b$i_exch_info,zftang.b$i_manhole_info dumpfile =expdp_test2.dmp logfile=expdp_test2.log directory=dir_dp job_name=my_job2、按查詢條件導(dǎo)出:expdp zftang/zftangfgisdb  tables=zftang.b$i

12、_exch_info dumpfile =expdp_test3.dmp logfile=expdp_test3.log directory=dir_dp job_name=my_job query='"where rownum<11"'3、按表空間導(dǎo)出:Expdp zftang/zftangfgisdb dumpfile=expdp_tablespace.dmp tablespaces=GCOMM.DBF logfile=expdp_tablespace.log directory=dir_dp job_name=my_job4、導(dǎo)出方案Expdp

13、zftang/zftang DIRECTORY=dir_dp DUMPFILE=schema.dmp SCHEMAS=zftang,gwm5、導(dǎo)出整個數(shù)據(jù)庫:expdp zftang/zftangfgisdb dumpfile =full.dmp full=y logfile=full.log directory=dir_dp job_name=my_jobimpdp導(dǎo)入模式: 1、按表導(dǎo)入p_street_area.dmp文件中的表,此文件是以gwm用戶按schemas=gwm導(dǎo)出的:impdp gwm/gwmfgisdb  dumpfile =p_street_area

14、.dmp logfile=imp_p_street_area.log directory=dir_dp tables=p_street_area job_name=my_job2、按用戶導(dǎo)入(可以將用戶信息直接導(dǎo)入,即如果用戶信息不存在的情況下也可以直接導(dǎo)入)impdp gwm/gwmfgisdb schemas=gwm dumpfile =expdp_test.dmp logfile=expdp_test.log directory=dir_dp job_name=my_job3、不通過expdp的步驟生成dmp文件而直接導(dǎo)入的方法:-從源數(shù)據(jù)庫中向目標(biāo)數(shù)據(jù)庫導(dǎo)入表p_street_area

15、impdp gwm/gwm directory=dir_dp NETWORK_LINK=igisdb tables=p_street_area logfile=p_street_area.log  job_name=my_jobigisdb是目的數(shù)據(jù)庫與源數(shù)據(jù)的鏈接名,dir_dp是目的數(shù)據(jù)庫上的目錄4、更換表空間  采用remap_tablespace參數(shù)   -導(dǎo)出gwm用戶下的所有數(shù)據(jù)expdp system/orcl directory=data_pump_dir dumpfile=gwm.dmp SCHEMAS=gwm注:如果是用sy

16、s用戶導(dǎo)出的用戶數(shù)據(jù),包括用戶創(chuàng)建、授權(quán)部分,用自身用戶導(dǎo)出則不含這些內(nèi)容-以下是將gwm用戶下的數(shù)據(jù)全部導(dǎo)入到表空間gcomm(原來為gmapdata表空間下)下impdp system/orcl directory=data_pump_dir dumpfile=gwm.dmp remap_tablespace=gmapdata:gcommOracle Purge和drop的區(qū)別Purge和drop的區(qū)別:Oracle 10g提供的flashback drop 新特性為了加快用戶錯誤操作的恢復(fù),Oracle10g提供了flashback drop的功能。而在以前的版本中,除了不完全恢復(fù),通常

17、沒有一個好的解決辦法。Oracle 10g的flashback drop功能,允許你從當(dāng)前數(shù)據(jù)庫中恢復(fù)一個被drop了的對象,在執(zhí)行drop操作時,現(xiàn)在Oracle不是真正刪除它,而是將該對象自動將放入回收站。對于一個對象的刪除,其實僅僅就是簡單的重令名操作。所謂的回收站,是一個虛擬的容器,用于存放所有被刪除的對象。在回收站中,被刪除的對象將占用創(chuàng)建時的同樣的空間,你甚至還可以對已經(jīng)刪除的表查詢,也可以利用flashback功能來恢復(fù)它,這個就是flashback drop功能?;厥照緝?nèi)的相關(guān)信息可以從recyclebin/user_recyclebin/dba_recyclebin等視圖中獲

18、取,或者通過SQL*Plus的show recyclebin 命令查看。C:>sqlplus /nologSQL*Plus: Release .0 - Production on 星期三6月1 10:09:32 2005Copyright (c) 1982, 2004, Oracle.  All rights reserved.SQL> conn tiger/tigerxe已連接。SQL> select count(*) from goodsinfo1;  COUNT(*)-     38997SQL

19、> drop table goodsinfo1;表已刪除。SQL> commit;提交完成。SQL> select count(*) from goodsinfo1;select count(*) from goodsinfo1                     *第1 行出現(xiàn)錯誤:ORA-00942: table or view does not exist 啊

20、!天啊!我刪錯了表,怎么辦好呢???!將數(shù)據(jù)庫閃回到剛才刪除表前的時間就可以啦。不行!那其它的操作也會一齊閃回?,F(xiàn)在可以用flashback drop的功能了。 SQL> show recyclebin;ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME- - - -GOODSINFO1 

21、60;     BIN$RFG58GsfRheKlVKnWw8KKQ=$0 TABLE        2005-06-01:10:11:03 SQL> FLASHBACK TABLE goodsinfo1 TO BEFORE DROP; 閃回完成。 SQL> select count(*) from goodsinfo1;  COUNT(*)-     38997 看看已刪除的表回來了

22、。真的謝天謝地??! SQL> show recyclebin; 如果想要徹底清除這些對象,可以使用Purge命令,如:SQL> select count(*) from goodsinfo2;  COUNT(*)-     38997SQL> drop table goodsinfo2;表已刪除。SQL> commit;提交完成。SQL> show recyclebin;ORIGINAL NAME    RECYCLEBIN NAME  

23、0;             OBJECT TYPE  DROP TIME- - - -GOODSINFO2       BIN$BgSuEWMOSLOGZPcIc97O8w=$0 TABLE        2005-06-01:10:13:18SQL> purge table goodsinfo2;表已清除。SQL> sho

24、w recyclebin;SQL>使用purge recyclebin可以清除回收站中的所有對象。類似的我們可以通過purge user_recyclebin或者是purge dba_recyclebin來清除不同的回收站對象。通過PURGE TABLESPACE TSNAME,PURGE TABLESPACE TSNAME USER USERNAME命令來選擇清除回收站。  ps:用戶drop后不進(jìn)recycle bin,所以不用purgeORACLE的Copy命令和create table,insert into的比較在數(shù)據(jù)表間復(fù)制數(shù)據(jù)是Oracle DBA經(jīng)常面

25、對的任務(wù)之一,Oracle為這一任務(wù)提供了多種解決方案,SQL*Plus Copy 命令便是其中之一。SQL*Plus Copy 命令通過SQL*Net在不同的表(同一服務(wù)器或是不同服務(wù)器)之間復(fù)制數(shù)據(jù)或移動數(shù)據(jù)。在實際運行環(huán)境中若能恰當(dāng)?shù)剡x擇使用SQL*Plus Copy 命令可以有效地提高數(shù)據(jù)復(fù)制的性能。下面將簡要介紹SQL*Plus Copy 命令使用,并在性能方面與其他兩種方案進(jìn)行對比,力求能提供一個使用Copy 命令的方案參考。1.語法及使用說明1.1 語法下面我們來看一下SQL*Copy 命令的語法及使用說明。在解釋SQL*Plus Copy 命令的語法之前,我們必須要明確SQL*

26、Plus Copy 命令不是一個方法或是函數(shù),也不是一個SQL語句,它是一個命令(command),當(dāng)然這個命令必須在SQL*Plus里運行。SQL*Plus Copy 命令的語法:COPY FROM database | TO database | FROM database TO database APPEND|CREATE|INSERT|REPLACE destination_table (column, column, column, .)USING query我們分部分來解釋一下:COPY 這個不太需要解釋,主命令,聲明要執(zhí)行COPY操作From Database 源數(shù)據(jù)庫To Da

27、tabase 目標(biāo)數(shù)據(jù)庫此處注意花括號中有三種可選的寫法(以”|”隔開),如果源數(shù)據(jù)表和目標(biāo)數(shù)據(jù)表在同一個Schema中,則可以只寫From Database,也可以只寫To Database,當(dāng)然還可以是第三種寫法,把From Database和To Database寫全。但如果源數(shù)據(jù)表和目標(biāo)數(shù)據(jù)表不在同一個Schema中,則必須用第三種寫法,即把From Database和To Database都寫全From Database和To Database的格式是一樣的:USERID/PASSWORDSID,這個大家都應(yīng)該很熟悉了。 網(wǎng)管網(wǎng)www_bitscn_comAPPEND|CREATE|

28、INSERT|REPLACE 聲明操作數(shù)據(jù)的方式,下面分別解釋一下:Append 向已有的目標(biāo)表中追加記錄,如果目標(biāo)表不存在,自動創(chuàng)建,這種情況下和Create等效。Create 創(chuàng)建目標(biāo)表并且向其中追加記錄,如果目標(biāo)表已經(jīng)存在,則會返回錯誤。Insert 向已有的目標(biāo)表中插入記錄,與Append不同的是,如果目標(biāo)表不存在,不自動創(chuàng)建而是返回錯誤。Replace 用查詢出來的數(shù)據(jù)覆蓋已有的目標(biāo)表中的數(shù)據(jù),如果目標(biāo)表不存在,自動創(chuàng)建。destination_table 目標(biāo)表的名字(column, column, column, .) 可以指定目標(biāo)表中列的名字,如果不指定,則自動使用Query中

29、的列名。USING query 查詢語句,交流的數(shù)據(jù)來自這兒。1.2 使用范例下面我們通過幾個例子來看一下SQL*Plus Copy 命令的使用:1.2.1 在同一個服務(wù)器的同一個Schema中復(fù)制數(shù)據(jù):同時指定From database和To databaseSQL> copy from scott/tigerlsj to scott/tigerlsj create dept1 using select * from dept;只指定From Database SQL> copy from scott/tigerlsj&

30、#160;create dept2 using select * from dept; 中國網(wǎng)管聯(lián)盟bitsCN.com 只指定To Database SQL> copy to scott/tigerlsj create dept3 using select * from dept;1.2.2 在同一個服務(wù)器的不同Schema中復(fù)制數(shù)據(jù):這種情況下必須同時指定From Database和To DatabaseSQL> copy from scott/tigerlsj to lsjdemo/lsjdemolsj&#

31、160;create dept using select * from dept;注意這種情況下,using select * from dept 中并不需要使用scott.demp的形式。1.2.3 在不同的服務(wù)器間復(fù)制數(shù)據(jù):SQL> conn lsj/lsjsunserve已連接。SQL> copy from scott/tigerlsj to lsj/lsjsunserve create dept using select * from dept;2.4 性能實驗結(jié)果實驗數(shù)據(jù):記錄數(shù):5,082,500數(shù)據(jù)量:504M實驗結(jié)果

32、方案-執(zhí)行時間(秒) -Undo(M) -Redo(M)Copy command -520.51-0 - 592Insert intoselect - 631.64 -345 -1720Create Table- 244.79 -0 -5152.總結(jié)Create Tableas select是最快的,而且生成的Undo和Redo信息最少,所以只要可能,請盡量使用這種方案。但這種方案有一定的限制,即目標(biāo)表必須是不存在的,不能用它向已有的目標(biāo)表中追加記錄。Insert into select 是最慢的,而且生成最多的Undo和Redo信息,對I/O的壓力最大,優(yōu)勢在于大家對它比較熟悉,使用起來比較

33、簡單,適合于處理少量的數(shù)據(jù),若要處理大量的數(shù)據(jù),不推薦使用這種方案。Copy Command可以處理Create Table不能處理的情況,即向已有的數(shù)據(jù)表中追加記錄,相對于insert來說,效率更高一些,生成更少的Redo信息,不生成Undo信息,所以在執(zhí)行大量的數(shù)據(jù)追加時,推薦使用Copy Command命令。基于PL/SQL的數(shù)據(jù)庫備份方法PL/SQL Developer是Oracle數(shù)據(jù)庫中用于導(dǎo)入或?qū)С鰯?shù)據(jù)庫的主要工具,本文主要介紹了利用PL/SQL Developer導(dǎo)入和導(dǎo)出數(shù)據(jù)庫的過程,并對導(dǎo)入或?qū)С鰰r的一些注意事項進(jìn)行了說明,接下來我們就一一介紹。導(dǎo)出步驟:1 tools -

34、>export user object 選擇選項,導(dǎo)出.sql文件。2 tools ->export tables-> Oracle Export 選擇選項導(dǎo)出.dmp文件。導(dǎo)入步驟:注:導(dǎo)入之前最好把以前的表刪除,當(dāng)然導(dǎo)入另外數(shù)據(jù)庫除外。1 tools->import tables->SQL Inserts 導(dǎo)入.sql文件。2 tools->import talbes->Oracle Import然后再導(dǎo)入dmp文件。一些說明:Tools->Export User Objects導(dǎo)出的是建表語句(包括存儲結(jié)構(gòu))。PS:這種方式只能導(dǎo)

35、出屬于這個用戶的表,其他用戶的表不能導(dǎo)出,建議用命令行(exp,imp)導(dǎo)出。Tools->Export Tables里面包含三種導(dǎo)出方式,三種方式都能導(dǎo)出表結(jié)構(gòu)以及數(shù)據(jù),如下:· Oracle Export· Sql Insert· pl/sql developer第一種是導(dǎo)出為.dmp的文件格式,.dmp文件是二進(jìn)制的,可以跨平臺,還能包含權(quán)限,效率也很不錯,用得最廣 。第二種是導(dǎo)出為.sql文件的,可用文本編輯器查看,通用性比較好,但效率不如第一種,適合小數(shù)據(jù)量導(dǎo)入導(dǎo)出。尤其注意的是表中不能有大字段 (blob,clob,long),如果有,會提示不能

36、導(dǎo)出(提示如下: table contains one or more LONG columns cannot export in sql format,user Pl/sql developer format instead)。第三種是導(dǎo)出為.pde格式的,.pde為Pl/sql developer自有的文件格式,只能用Pl/sql developer自己導(dǎo)入導(dǎo)出,不能用編輯器查看。PS:只有"Oracle Export"方式導(dǎo)出再導(dǎo)入后,表結(jié)構(gòu)和索引結(jié)構(gòu)沒有發(fā)生變化,另兩種方式都改變了索引類型。oracle 用戶 從一個表空間 另一個表空間-重要- selec

37、t count(*) from user_tables; select * from user_lobs; select 'alter table ' |t.table_name|' move lob('|t.column_name| ') store as (tablespace ilearn);' from user_lobs t;-下面這個是形式的寫法?、 select 'ALTER TABLE ' |t.table_name| ' MOVE TABLESPACE ilearn 

38、; LOB ('|t.column_name|') store as (tablespace ilearn);' from user_lobs t; select 'alter index '|index_name |' rebuild;'from user_indexes t where t.status ='UNUSABLE' select index_name from user_indexes t where t.status ='UNUSABLE' -alter in

39、dex index_name rebuild; Select 'alter table '| table_name | ' move tablespace ilearn;' from user_tables; select 'alter index '| index_name |' rebuild tablespace ilearn;' from user_indexes; select table_name,tablespace_name from user_tables; select&

40、#160;  segment_name,bytes/(1024*1024),t.segment_type   from   user_segments t   where   tablespace_name='USERS'  select   segment_name,bytes/(1024*1024),t.segment_type   from   user_segments t   wh

41、ere   tablespace_name='ILEARN'   and t.segment_name='SYS_IL0000030462C00010$'   ; select count(*)  from user_all_tables; select * from PORTAL_PREFERENCE; select * from  PLAN_TABLE; drop table PORTAL_PREFERENCE; drop tab

42、le PLAN_TABLE; select * from user_indexes t where t.index_name='SYS_IL0000030402C00010$' Move表、索引、LOB/Long move一個表到另外一個表空間時,索引不會跟著一起move,而且會失效。(LOB類型例外) 表move,我們分為: *普通表move *分區(qū)表move *LONG,LOB大字段類型move來進(jìn)行測試和說明。 索引的move,我們通過rebuild來實現(xiàn) 一:move普通表、索引基

43、本語法: alter table tab_name move tablespace tbs_name; move過的普通表,在不用到失效的索引的操作語句中,語句執(zhí)行正常,但如果操作的語句用到了索引(主鍵當(dāng)做唯一索引),則此時報告用到的索引失效,語句執(zhí)行失敗,其他如外鍵,非空約束,缺省值等不會失效。 我們需要重新創(chuàng)建主鍵或索引,基本語法為: alter index index_name rebuild; alter index pk_name rebuild; 如果我們需要move索引,則使用rebuild語法: alter

44、index index_name rebuild tablespace tbs_name; alter index pk_name rebuild tablespace tbs_name; 提示:查詢表所具有的索引,可以使用user_indexes視圖(索引和主鍵都在這個視圖里可找到)。 二:move分區(qū)表及索引和普通表一樣,索引會失效,區(qū)別的僅僅是語法而已。 分區(qū)基本語法:特別提醒注意,如果是單級分區(qū),則使用關(guān)鍵字PARTITION,如果是多級分區(qū),則使用SUBPARTITION替代PARTITION。 如果分區(qū)或分區(qū)索引比較大,可以使用并行

45、move或rebuild,PARALLEL (DEGREE 2);如: 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 ALA

46、RMTEXTDATA_050910_ATD01 TABLESPACE users PARALLEL (DEGREE 2); 移動表的某個分區(qū): = ALTER TABLE tab_name move PARTITION partition_name TABLESPACE tbs_name; 重建全局索引: = ALTER INDEX global_index REBUILD;或 ALTER INDEX global_index REBUILD tablespace tbs_name; xsb注: 分區(qū)操作時可以帶上

47、with update global indexes選項更新全局索引。 重建局部索引: = ALTER TABLE tab_name MODIFY PARTITION partition_name REBUILD UNUSABLE LOCAL INDEXES;或 ALTER INDEX local_index_name REBUILD PARTITION partition_name TABLESPACE tbs_name; 提示: USER_PART_TABLES USER_IND_PARTITIONS USER

48、_IND_SUBPARTITIONS USER_LOB_PARTITIONS USER_LOB_SUBPARTITIONS USER_PART_INDEXES USER_PART_LOBS可查詢分區(qū)相關(guān)內(nèi)容,同時,分區(qū)對象,也是segment,所以也可在dba_segments里查的到。 三:move LONG,LOB類型(據(jù)說DBMS_REDEFINITION包可以提供一些方便,沒用過。) I:LONG類型 long類型不能通過MOVE來傳輸特別提示,盡量不要用LONG類型,特難管理。參考:1,LONG不能使用insert

49、 into . select .等帶select的模式。如 create table t123 (id int,en long);則 insert into t123(id,en) select * from t123;報告錯誤,可以用pl/sql來幫助解決,如: declare cursor cur_t123 is select * from t123; use_t123 cur_t123%rowtype; begin open cur_t123; loop fetch cur_t123 into us

50、e_t123; exit when cur_t123%notfound; insert into t123(id,en) values (use_t123.id,use_t123.en); end loop; close cur_t123; end; / 對有LONG類型字段的表的轉(zhuǎn)移,可以使用: create新表的方法。 * create一個新的表,存儲在需要轉(zhuǎn)移的表空間。 * 創(chuàng)建新的索引(使用tablespace 子句指定新的表空間)。 * 把數(shù)據(jù)轉(zhuǎn)移過來 方法一:用C

51、OPY的方法: copy from bigboar/bigboarbigboar_sid insert t123(id,en) using select id,en from t123; 方法二:PL/SQL(如上) 方法三:直接就把LONG轉(zhuǎn)換成CLOB類型 create table t321(id int,en clob) tablespace users; insert into t321(id,en) select id,to_lob(en) from t123; 方法四:exp/imp exp bigboar/bi

52、gboar file=a.dat tables=t123 imp bigboar/bigboar file=a.dat full=y IGNORE =y * drop掉舊表。 * rename 新表為舊表表名。 II: LOB類型在建立含有l(wèi)ob字段的表時,oracle會自動為lob字段建立兩個單獨的segment,一個用來存放數(shù)據(jù)(segment_type= LOBSEGMENT),另一個用來存放索引(segment_type=LOBINDEX)。默認(rèn)它們會存儲在和表一起的表空間。我們對表MOVE時, LOG類型字段和該字段的索引不會跟著MOVE,必須

53、要單獨來進(jìn)行MOVE,語法如下如: alter table t321 move tablespace users; alter table t321 move lob(en) store as (tablespace users); ref: 移動LOB字段至新表空間 xsb 發(fā)表于:2006.06.13 15:03 :分類: ( Oracle ) :閱讀:(1939次) : Permanent link : 引用 (0) 把現(xiàn)有用戶的數(shù)據(jù)都轉(zhuǎn)到一個新建的表空間中方法一1.建立新的表空間 2.建立新用戶,默認(rèn)表空間為剛建立的新的表空間 

54、;3.設(shè)定用戶權(quán)限,quota還是要設(shè)定一下。 4.從原用戶導(dǎo)出數(shù)據(jù):exp username/password file=filename owner=username rows=y grants=y 5.從原用戶那里,用PLSQL Developer(其他的工具也可以)導(dǎo)出原用戶的所有object,生成sql文件。 6.編輯sql文件,替換所有的舊表空間為新表空間。 7.用新用戶登錄,并執(zhí)行sql文件,生成表結(jié)構(gòu) 8.執(zhí)行Imp導(dǎo)入數(shù)據(jù):imp newusername/password file=filename log=logfile f

55、romuser=olduser touser=newuser ignore=y 9.查看新用戶下的表的存儲情況,確定完全存放在新的表空間下面: select table_name,tablespace_name from user_tables; 如果沒有l(wèi)ob字段的表,不用執(zhí)行5、6、7三步。 方法二缺省情況下,導(dǎo)入試圖在與導(dǎo)出相同的表空間中創(chuàng)建對象。如果用戶不具有那個表空間的權(quán)限,或者那個表空間不存在時,Oracle在用戶帳戶的缺省表空間中創(chuàng)建數(shù)據(jù)庫對象。這些特性可以用于使用導(dǎo)出與導(dǎo)入在表空間之間移動數(shù)據(jù)庫對象。要為USER_A將TABLESPACE

56、_A的所有對象移動到TABLESPACE_B,應(yīng)遵循以下步驟:         1   為USER_A導(dǎo)出TABLESPACE_A中的所有對象。    2   執(zhí)行REVOKE   UNLIMITED   TABLESPACE   ON   TABLESPACE_A   FROM   USER_A;以收回任何授予用戶帳

57、戶的無限制表空間權(quán)限。         3   執(zhí)行ALTER   USER   USER_A   QUOTA   0   ON   TABLESPACE_A;以使USER_A帳戶不能在TABLESPACE_A上創(chuàng)建任何對象。         4   刪除TABLESPACE_A

58、中USER_A擁有的所有對象。         5   執(zhí)行ALTER   USER   USER_A   DEFAULT   TABLESPACE   TABLESPACE_B;以使TABLESPACE_B成為USER_A用戶帳戶的缺省表空間。Oracle試圖將對象導(dǎo)入TABLESPACE_A,因為這些對象是從TABLESPACE_A導(dǎo)出的。注意用戶不具有TABLESPACE_A上的配額。然后將

59、查看用戶的缺省表空間。在Oracle可以將數(shù)據(jù)導(dǎo)入TABLESPACE_B之前,必須給予USER_A用戶該表空間上足夠大的配額,如下步驟所示。         6   執(zhí)行ALTER   USER   USER_A   QUOTA   UNLIMITED   ON   TABLESPACE_B;       

60、  7   導(dǎo)入被導(dǎo)出的數(shù)據(jù)庫對象。缺省情況下,導(dǎo)入工具試圖將它們導(dǎo)入到TABLESPACE_A中,然而,因為用戶不具有這個表空間的配額,所以所有的對象將被創(chuàng)建在USER_A的缺省表空間TABLESPACE_B中。Top REVOKE   UNLIMITED   TABLESPACE   ON   itmpspace  FROM  itmp  ; ALTER   USER    

61、;  itmp    QUOTA   0   ON   itmpspace ; ALTER   USER  itmp       DEFAULT   TABLESPACE   idmp; ALTER   USER   itmp     DEFAULT 

62、0; TABLESPACE    idmp; ALTER   USER   itmp      QUOTA   UNLIMITED   ON    idmp;    alter table t move lob(c2) store as (tablespace users); alter table test move tablespace users lob(c2) store as (tablespace users); ref: Move表、索引、LOB/Long (導(dǎo)出、導(dǎo)入時同分區(qū)表一樣,必須預(yù)創(chuàng)建此表空間) 

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論