今天打算將一個數(shù)據(jù)庫的索引在另一個測試庫上重新創(chuàng)建一遍,研究了一下。\x0d\x0aset pagesize 0\x0d\x0aset long 90000\x0d\x0aset feedback off\x0d\x0aset echo off\x0d\x0aspool all_index.sql\x0d\x0aSELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name)\x0d\x0aFROM USER_INDEXES u;spool off;最后找個編輯器替換一下表空間名,在表空間名后面加上個;\x0d\x0a然后讓ORACLE慢慢執(zhí)行吧\x0d\x0a其實是調用DBMS_METADATA.GET_DDL這個外部過程來獲得創(chuàng)建DLL語句,還能獲得很多東西\x0d\x0a這個是所有用戶的創(chuàng)建DLL\x0d\x0aSELECT DBMS_METADATA.GET_DDL('USER',U.username)\x0d\x0aFROM DBA_USERS U;\x0d\x0a這個是所有表的DLL\x0d\x0aSELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name)\x0d\x0aFROM USER_TABLES u;\x0d\x0a所有表空間的DLL\x0d\x0aSELECT DBMS_METADATA.GET_DDL('TABLESPACE', TS.tablespace_name)\x0d\x0aFROM DBA_TABLESPACES TS;\x0d\x0a組合一下,所有表,索引存儲過程\x0d\x0aSELECT DBMS_METADATA.GET_DDL(U.OBJECT_TYPE, u.object_name)\x0d\x0aFROM USER_OBJECTS u\x0d\x0awhere U.OBJECT_TYPE IN ('TABLE','INDEX','PROCEDURE');另外一個相關的語句生成刪除某個用戶全部索引的語句
為中陽等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及中陽網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為成都網(wǎng)站建設、網(wǎng)站設計、中陽網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
BEGIN
dbms_output.enable(1000000);
FOR TN IN (SELECT INDEX_NAME,table_name FROM DBA_INDEXES WHERE TABLESPACE_NAME='1') LOOP
begin
DBMS_OUTPUT.put_line(dbms_metadata.get_ddl(object_type='INDEX',name=TN.INDEX_NAME));
exception
when others then dbms_output.put_line('exception:'|| tn.table_name||' '||tn.index_name);
end;
END LOOP;
dbms_output.disable;
END;
導出
將數(shù)據(jù)庫(test)完全導出,用戶名sys 密碼manager 導出到D:\daochu.dmp中 exp sys/manager@test file=d:\daochu.dmp full=y
導入
將D:\daochu.dmp 中的數(shù)據(jù)導入 test數(shù)據(jù)庫中。 imp sys/manager@test file=d:\daochu.dmp?
Oracle公司是全球最大的信息管理軟件及服務供應商,成立于1977年,總部位于美國加州 Redwood shore。2000財年(99年6月到2000年5月)營業(yè)額達101億美元,再創(chuàng)Oracle公司銷售額歷史新高,比去年增長了13億美元,盈利增長61%,達到21億美元。Oracle公司現(xiàn)有員工超過三萬六千人,服務遍及全球145個國家。Oracle公司擁有世界上唯一一個全面集成的電子商務套件Oracle Applications R11i,它能夠自動化企業(yè)經(jīng)營管理過程中的各個方面,深受用戶的青睞,促使Oracle應用軟件在2000財年第四季度的銷售額達4.47億美元,與SAP公司的同期應用軟件銷售額3.52億美元相比,多出近1億美元,這一事實表明,Oracle已經(jīng)是世界最大的應用軟件供應商。
Oracle電子商務套件涵蓋了企業(yè)經(jīng)營管理過程中的方方面面,雖然它在不同的方面分別面對不同的競爭對手,而Oracle電子商務解決方案的核心優(yōu)勢就在于它的集成性和完整性,用戶完全可以從Oracle公司獲得任何所需要的應用功能,更重要的是,它們具有一致的基于Internet技術的應用體系結構,而如果用戶想從其它廠商處獲得Oracle電子商務所提供的完整功能,不僅需要從多家廠商分別購買不同的應用,而且需要另請咨詢公司把這些不同的應用裝配起來,還必須確先進的產(chǎn)品和高效率的企業(yè)運作,是Oracle公司利潤得以繼續(xù)增長的重要原因,一年前,Oracle公司確定了通過采用自身的Internet電子商務解決方案,實現(xiàn)每年節(jié)省10億美元企業(yè)日常運作費用的目標,這一數(shù)據(jù)相當于將年度利潤率提高10%。保它們能夠協(xié)同地工作。
先進的產(chǎn)品和高效率的企業(yè)運作,是Oracle公司利潤得以繼續(xù)增長的重要原因,一年前,Oracle公司確定了通過采用自身的Internet電子商務解決方案,實現(xiàn)每年節(jié)省10億美元企業(yè)日常運作費用的目標,這一數(shù)據(jù)相當于將年度利潤率提高10%。
這個百度上一搜一大把,都說的很詳細,樓主沒搜過,
數(shù)據(jù)導出:
1 將數(shù)據(jù)庫TEST完全導出,用戶名system 密碼manager 導出到D:daochu.dmp中
exp system/manager@TEST file=d:daochu.dmp full=y
2 將數(shù)據(jù)庫中system用戶與sys用戶的表導出
exp system/manager@TEST file=d:daochu.dmp owner=(system,sys)
3 將數(shù)據(jù)庫中的表inner_notify、notify_staff_relat導出
exp aichannel/aichannel@TESTDB2 file= d:datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat)
4 將數(shù)據(jù)庫中的表table1中的字段filed1以"00"打頭的數(shù)據(jù)導出
exp system/manager@TEST file=d:daochu.dmp tables=(table1) query=" where filed1 like '00%'"
上面是常用的導出,對于壓縮,既用winzip把dmp文件可以很好的壓縮。
也可以在上面命令后面 加上 compress=y 來實現(xiàn)。
數(shù)據(jù)的導入
1 將D:daochu.dmp 中的數(shù)據(jù)導入 TEST數(shù)據(jù)庫中。
imp system/manager@TEST file=d:daochu.dmp
imp aichannel/aichannel@HUST full=y file=d:datanewsmgnt.dmp ignore=y
上面可能有點問題,因為有的表已經(jīng)存在,然后它就報錯,對該表就不進行導入。
在后面加上 ignore=y 就可以了。
2 將d:daochu.dmp中的表table1 導入
imp system/manager@TEST file=d:daochu.dmp tables=(table1)
基本上上面的導入導出夠用了。不少情況要先是將表徹底刪除,然后導入。
注意:
操作者要有足夠的權限,權限不夠它會提示。
數(shù)據(jù)庫時可以連上的??梢杂胻nsping TEST 來獲得數(shù)據(jù)庫TEST能否連上。
當然,上面的方法在導出數(shù)據(jù)時可能會導出很大的包,那是因為你的用戶可能在授權的時候授予了DBA的權限,所以可以采用下面方法來進行數(shù)據(jù)庫備份:
數(shù)據(jù)庫備份
建議系統(tǒng)過渡后,每周進行一次備份。或者在數(shù)據(jù)表發(fā)生重大改變前,對要改變的數(shù)據(jù)表進行備份。
執(zhí)行以下步驟,進行備份。
在命令行里,敲入“cmd”,回車,進入命令行窗口。
在窗口中,輸入:
exp mas/123456@mas
系統(tǒng)提示:輸入數(shù)組提取緩沖區(qū)大小: 4096
可以直接回車;
系統(tǒng)提示:導出文件: EXPDAT.DMP
此處輸入導出文件的位置,其路徑必須存在,Oracle在這里不會自動建立路徑,但可以建立文件名。備份文件以dmp作為后綴。
輸入內容如:e:\work\mas_db_090925v1.dmp 回車
系統(tǒng)提示: (1)E(完整的數(shù)據(jù)庫),(2)U(用戶) 或 (3)T(表): (2)U u
此處可以輸入u,也可以直接回車,因為系統(tǒng)此時默認的是U
系統(tǒng)提示:導出權限(yes/no):yes回車
系統(tǒng)提示:導出表數(shù)據(jù)(yes/no):yes回車
系統(tǒng)提示:壓縮區(qū)(yes/no):yes回車
系統(tǒng)提示:要導出的用戶: (RETURN 以退出) mas
系統(tǒng)提示:要導出的用戶: (RETURN 以退出) 回車
此時系統(tǒng)會自動進行備份
本文對Oracle數(shù)據(jù)的導入導出 imp ,exp 兩個命令進行了介紹, 并對其相應的參數(shù)進行了說明,然后通過一些示例進行演練,加深理解.
文章最后對運用這兩個命令可能出現(xiàn)的問題(如權限不夠,不同oracle版本)進行了探討,并提出了相應的解決方案;
本文部分內容摘錄自網(wǎng)絡,感謝網(wǎng)友的經(jīng)驗總結;
一.說明
oracle 的exp/imp命令用于實現(xiàn)對數(shù)據(jù)庫的導出/導入操作;
exp命令用于把數(shù)據(jù)從遠程數(shù)據(jù)庫服務器導出至本地,生成dmp文件;
imp命令用于把本地的數(shù)據(jù)庫dmp文件從本地導入到遠程的Oracle數(shù)據(jù)庫中。
二.語法
可以通過在命令行輸入 imp help=y 獲取imp的語法信息:
=============================================================================
C:\Documents and Settings\auduserimp help=y
Import: Release 9.0.1.1.1 - Production on 星期二 5月 20 18:21:57 2008
(c) Copyright 2001 Oracle Corporation. All rights reserved.
可以通過輸入 IMP 命令和您的用戶名/口令
后接用戶名/口令的命令:
例程: IMP SCOTT/TIGER
或者, 可以通過輸入 IMP 命令和各種參數(shù)來控制“導入”
按照不同參數(shù)。要指定參數(shù),您可以使用關鍵字:
格式: IMP KEYWORD=value 或 KEYWORD=(value1,value2,...,vlaueN)
例程: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N
或 TABLES=(T1: P1,T1: P2),如果 T1 是分區(qū)表
USERID 必須是命令行中的第一個參數(shù)。
關鍵字 說明(默認) 關鍵字 說明(默認)
--------------------------------------------------------------------------
USERID 用戶名/口令 FULL 導入整個文件 (N)
BUFFER 數(shù)據(jù)緩沖區(qū)大小 FROMUSER 所有人用戶名列表
FILE 輸入文件 (EXPDAT.DMP) TOUSER 用戶名列表
SHOW 只列出文件內容 (N) TABLES 表名列表
IGNORE 忽略創(chuàng)建錯誤 (N) RECORDLENGTH IO 記錄的長度
GRANTS 導入權限 (Y) INCTYPE 增量導入類型
INDEXES 導入索引 (Y) COMMIT 提交數(shù)組插入 (N)
ROWS 導入數(shù)據(jù)行 (Y) PARFILE 參數(shù)文件名
LOG 屏幕輸出的日志文件 CONSTRAINTS 導入限制 (Y)
DESTROY 覆蓋表空間數(shù)據(jù)文件 (N)
INDEXFILE 將表/索引信息寫入指定的文件
SKIP_UNUSABLE_INDEXES 跳過不可用索引的維護 (N)
FEEDBACK 每 x 行顯示進度 (0)
TOID_NOVALIDATE 跳過指定類型 ID 的驗證
FILESIZE 每個轉儲文件的最大大小
STATISTICS 始終導入預計算的統(tǒng)計信息
RESUMABLE 遇到與空格有關的錯誤時掛起 (N)
RESUMABLE_NAME 用來標識可恢復語句的文本字符串
RESUMABLE_TIMEOUT RESUMABLE 的等待時間
COMPILE 編譯過程, 程序包和函數(shù) (Y)
下列關鍵字僅用于可傳輸?shù)谋砜臻g
TRANSPORT_TABLESPACE 導入可傳輸?shù)谋砜臻g元數(shù)據(jù) (N)
TABLESPACES 將要傳輸?shù)綌?shù)據(jù)庫的表空間
DATAFILES 將要傳輸?shù)綌?shù)據(jù)庫的數(shù)據(jù)文件
TTS_OWNERS 擁有可傳輸表空間集中數(shù)據(jù)的用戶
==============================================
同樣可以通過輸入 exp help=y 獲取exp的語法信息
Microsoft Windows XP [版本 5.1.2600]
(C) 版權所有 1985-2001 Microsoft Corp.
C:\Documents and Settings\auduserexp help=y
Export: Release 9.0.1.1.1 - Production on 星期二 5月 20 18:26:34 2008
(c) Copyright 2001 Oracle Corporation. All rights reserved.
通過輸入 EXP 命令和用戶名/口令,您可以
后接用戶名/口令的命令:
例程: EXP SCOTT/TIGER
或者,您也可以通過輸入跟有各種參數(shù)的 EXP 命令來控制“導出”
按照不同參數(shù)。要指定參數(shù),您可以使用關鍵字:
格式: EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
例程: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)
或 TABLES=(T1: P1,T1: P2),如果 T1 是分區(qū)表
USERID 必須是命令行中的第一個參數(shù)。
關鍵字 說明(默認) 關鍵字 說明(默認)
--------------------------------------------------------------------------
USERID 用戶名/口令 FULL 導出整個文件 (N)
BUFFER 數(shù)據(jù)緩沖區(qū)大小 OWNER 所有者用戶名列表
FILE 輸出文件 (EXPDAT.DMP) TABLES 表名稱列表
COMPRESS 導入到一個區(qū) (Y) RECORDLENGTH IO 記錄的長度
GRANTS 導出權限 (Y) INCTYPE 增量導出類型
INDEXES 導出索引 (Y) RECORD 跟蹤增量導出 (Y)
DIRECT 直接路徑 (N) TRIGGERS 導出觸發(fā)器 (Y)
LOG 屏幕輸出的日志文件 STATISTICS 分析對象 (ESTIMATE)
ROWS 導出數(shù)據(jù)行 (Y) PARFILE 參數(shù)文件名
CONSISTENT 交叉表一致性 CONSTRAINTS 導出約束條件 (Y)
FEEDBACK 每 x 行顯示進度 (0)
FILESIZE 每個轉儲文件的最大大小
FLASHBACK_SCN 用于回調會話快照的 SCN
FLASHBACK_TIME 用來獲得最接近于指定時間的 SCN 的時間
QUERY 用來導出表的子集的選擇子句
RESUMABLE 遇到與空格有關的錯誤時掛起 (N)
RESUMABLE_NAME 用來標識可恢復語句的文本字符串
RESUMABLE_TIMEOUT RESUMABLE 的等待時間
TTS_FULL_CHECK 對 TTS 執(zhí)行完全或部分相關性檢查
TABLESPACES 要導出的表空間列表
TRANSPORT_TABLESPACE 導出可傳輸?shù)谋砜臻g元數(shù)據(jù) (N)
TEMPLATE 調用 iAS 模式導出的模板名稱
三.使用示例
3.1 數(shù)據(jù)導出:
1 將數(shù)據(jù)庫SampleDB完全導出,用戶名system 密碼manager 導出到E:\SampleDB.dmp中
exp system/manager@TestDB file=E:\sampleDB.dmp full=y
2 將數(shù)據(jù)庫中system用戶與sys用戶的表導出
exp system/manager@TestDB file=E:\sampleDB.dmp owner=(system,sys)
3 將數(shù)據(jù)庫中的表 TableA,TableB 導出
exp system/manager@TestDB file=E:\sampleDB.dmp tables=(TableA,TableB)
4 將數(shù)據(jù)庫中的表tableA中的字段filed1 值為 "王五" 的數(shù)據(jù)導出
exp system/manager@TestDB file=E:\sampleDB.dmp tables=(tableA) query=' where filed1='王五'
如果想對dmp文件進行壓縮,可以在上面命令后面 加上 compress=y 來實現(xiàn)。
3.2 數(shù)據(jù)的導入
1 將備份數(shù)據(jù)庫文件中的數(shù)據(jù)導入指定的數(shù)據(jù)庫SampleDB 中,如果 SampleDB 已存在該表,則不再導入;
imp system/manager@TEST file=E:\sampleDB.dmp full=y ignore=y
2 將d:\daochu.dmp中的表table1 導入
imp system/manager@TEST file=E:\sampleDB.dmp tables=(table1)
3. 導入一個完整數(shù)據(jù)庫
imp system/manager file=bible_db log=dible_db full=y ignore=y
4. 導入一個或一組指定用戶所屬的全部表、索引和其他對象
imp system/manager file=seapark log=seapark fromuser=seapark imp
system/manager file=seapark log=seapark fromuser=(seapark,amy,amyc,harold)
5. 將一個用戶所屬的數(shù)據(jù)導入另一個用戶
imp system/manager file=tank log=tank fromuser=seapark touser=seapark_copy
imp system/manager file=tank log=tank fromuser=(seapark,amy)
touser=(seapark1, amy1)
6. 導入一個表
imp system/manager file=tank log=tank fromuser=seapark TABLES=(a,b)
7. 從多個文件導入
imp system/manager file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)
log=paycheck, filesize=1G full=y
8. 使用參數(shù)文件
imp system/manager parfile=bible_tables.par
bible_tables.par參數(shù)文件:
#Import the sample tables used for the Oracle8i Database Administrator's
Bible. fromuser=seapark touser=seapark_copy file=seapark log=seapark_import
參數(shù)文件示例見附錄
9. 增量導入
imp system./manager inctype= RECTORE FULL=Y FILE=A
不少情況下要先將表徹底刪除,然后導入。
四.參數(shù)說明
4.1、8i EXP常用選項
1、FULL,這個用于導出整個數(shù)據(jù)庫,在ROWS=N一起使用時,可以導出整個數(shù)據(jù)庫的結構。例如:
exp sys file=./db_str.dmp log=./db_str.log full=y rows=n compress=y direct=y
2、BUFFER和FEEDBACK,在導出比較多的數(shù)據(jù)時,我會考慮設置這兩個參數(shù)。例如:
exp new file=yw97_2003.dmp log=yw97_2003_3.log feedback=10000 buffer=100000000 tables=WO4,OK_YT
3、FILL和LOG,這兩個參數(shù)分別指定備份的DMP名稱和LOG名稱,包括文件名和目錄,例子見上面。
需要說明的是,EXP可以直接備份到磁帶中,即使用FILE=/dev/rmt0(磁帶設備名),但是一般我們都不這么做,原因有二:一、這樣做的速度會慢很多,二、現(xiàn)在一般都是使用磁帶庫的,不建議直接對磁帶進行操作。至于沒有使用磁帶庫的朋友可以考慮和UNIX的TAR結合使用。
如果你真想使用EXP直接到磁帶,你可以參考Metalink文章“EXPORTING TO TAPE ON UNIX SYSTEMS”(文檔號:30428.1),該文中有詳細解釋。
4、COMPRESS參數(shù)將在導出的同時合并碎塊,盡量把數(shù)據(jù)壓縮到initial的EXTENT里,默認是N,一般建議使用。DIRECT參數(shù)將告訴EXP直接讀取數(shù)據(jù),而不像傳統(tǒng)的EXP那樣,使用SELECT來讀取表中的數(shù)據(jù),這樣就減少了SQL語句處理過程。一般也建議使用。不過有些情況下DIRECT參數(shù)是無法使用的。
5、如何使用SYSDBA執(zhí)行EXP/IMP?
這是一個很現(xiàn)實的問題,有時候我們需要使用SYSDBA來執(zhí)行EXP/IMP,如進行傳輸表空間的EXP/IMP,以及在9i下用SYS用戶來執(zhí)行EXP/IMP時,都需要使用SYSDBA才可。我們可以使用下面方式連入EXP/IMP:
exp "'sys/sys as sysdba'" file=1.dmp tables=gototop.t rows=n
6、QUERY參數(shù)后面跟的是where條件,值得注意的是,整個where子句需要使用""括起來,where子句的寫法和SELECT中相同,如果是UNIX平臺所有"和'都需要使用\u26469屏蔽它們的特殊含義:
exp gototop/gototop file=1.dmp log=1.log tables=cyx.t query="where c1=20 and c2=gototop"
如果是windows平臺,則使用下面的格式:
exp c/c@ncn file=c.dmp log=c.log tables=t query="""where id=1 and name='gototop'"""
4.2、8i IMP常用選項
1、FROMUSER和TOUSER,使用它們實現(xiàn)將數(shù)據(jù)從一個SCHEMA中導入到另外一個SCHEMA中。
2、IGNORE、GRANTS和INDEXES,其中IGNORE參數(shù)將忽略表的存在,繼續(xù)導入,這個對于需要調整表的存儲參數(shù)時很有用,我們可以先根據(jù)實際情況用合理的存儲參數(shù)建好表,然后直接導入數(shù)據(jù)。而GRANTS和INDEXES則表示是否導入授權和索引,如果想使用新的存儲參數(shù)重建索引,或者為了加快到入速度,我們可以考慮將INDEXES設為N,而GRANTS一般都是Y。
另外一個EXP/IMP都有的參數(shù)是PARFILE,它是用來定義EXP/IMP的參數(shù)文件,也就是說,上面的參數(shù)都可以寫在一個參數(shù)文件中,但我們一般很少使用。
4.4、Oracle9i EXP功能描述
Oracle9i EXP在原有的基礎上新增了部分新的參數(shù),按功能主要分為以下幾個部分:
1、OBJECT_CONSISTENT - 用于設置EXP對象為只讀以保持對象的一致性。默認是N。
2、FLASHBACK_SCN和FLASHBACK_TIME - 用于支持FLASHBACK功能而新增。
3、RESUMABLE、RESUMABLE_NAME和RESUMABLE_TIMEOUT - 用于支持RESUMABLE空間分配而新增。
4、TTS_FULL_CHECK - 用于在傳輸表空間時使用依賴性檢查。
5、TEMPLATE - 用于支持iAS。
6、TABLESPACES - 設置表空間導出模式。個人覺得對于一般用戶而言,這個才是新增參數(shù)中最實用的一個,可以讓用戶在原來的FULL、OWNER、TABLES的基礎上多了一種選擇,使得EXP更加靈活。
五、不同版本的EXP/IMP問題?
一般來說,從低版本導入到高版本問題不大,麻煩的是將高版本的數(shù)據(jù)導入到低版本中,在Oracle9i之前,不同版本Oracle之間的EXP/IMP可以通過下面的方法來解決:
1、在高版本數(shù)據(jù)庫上運行底版本的catexp.sql;
2、使用低版本的EXP來導出高版本的數(shù)據(jù);
3、使用低版本的IMP將數(shù)據(jù)庫導入到底版本數(shù)據(jù)庫中;
4、在高版本數(shù)據(jù)庫上重新運行高版本的catexp.sql腳本。
但在9i中,上面的方法并不能解決問題。如果直接使用底版本EXP/IMP會出現(xiàn)如下錯誤:
EXP-00008: ORACLE error %lu encountered
ORA-00904: invalid column name
這已經(jīng)是一個公布的BUG,需要等到Oracle10.0才能解決,BUG號為2261,你可以到METALINK上去查看有關此BUG的詳細信息。
BUG歸BUG,我們的工作還是要做,在沒有Oracle的支持之前,我們就自己解決。在Oracle9i中執(zhí)行下面的SQL重建exu81rls視圖即可。
CREATE OR REPLACE view exu81rls
(objown,objnam,policy,polown,polsch,polfun,stmts,chkopt,enabled,spolicy)
AS select u.name, o.name, r.pname, r.pfschma, r.ppname, r.pfname,
decode(bitand(r.stmt_type,1), 0,'', 'SELECT,')
|| decode(bitand(r.stmt_type,2), 0,'', 'INSERT,')
|| decode(bitand(r.stmt_type,4), 0,'', 'UPDATE,')
|| decode(bitand(r.stmt_type,8), 0,'', 'DELETE,'),
r.check_opt, r.enable_flag,
DECODE(BITAND(r.stmt_type, 16), 0, 0, 1)
from user$ u, obj$ o, rls$ r
where u.user# = o.owner#
and r.obj# = o.obj#
and (uid = 0 or
uid = o.owner# or
exists ( select * from session_roles where role='SELECT_CATALOG_ROLE')
)
/
grant select on sys.exu81rls to public;
/
六、其他問題
本文只討論了Oracle8i和9i中的EXP/IMP的一些情況,對于之前的版本,在8.0.X中,除了QUERY參數(shù)不能用外,其它差別不大。針對沒有QUERY的情況,我們可以先在數(shù)據(jù)庫中使用查詢條件建立臨時中間表,然后使用EXP導出這個中間表即可。至于Oracle7因為目前使用的人較少,gototop不打算在此做詳細解釋了,如果讀者朋友有需求,你可以參考Metalink文檔:“Overview of Export and Import in Oracle7”(文檔號:61949.1)。關于EXP/IMP的詳細參數(shù)信息你可以通過EXP/IMP HELP=Y來獲得。
另外關于傳輸表空間的更多信息可以參考下面的Metelink文檔,本文不再詳述。
[NOTE:77523.1] Transportable Tablespaces -- An Example to setup and use.
[NOTE:100698.1] Perform tablespace point-in-time recovery using Transportable Tablespace.
在進行并行EXP/IMP的時候,如果IMP過程建索引的話不建議同時運行5個以上的IMP,如果你想加快速度,可以在IMP的時候不建索引,這樣只要內存允許,可以多跑幾個,然后是SQL腳本創(chuàng)建需要的索引。
注意:
操作者要有足夠的權限,權限不夠它會提示。
數(shù)據(jù)庫是否可以連上, 可以用tnsping TestDB 來獲得數(shù)據(jù)庫 TestDB 能否連上。
附錄一:
給用戶增加導入數(shù)據(jù)權限的操作
第一, 啟動sql*puls
第二,以system/manager登陸
第三,create user 用戶名 IDENTIFIED BY 密碼(如果已經(jīng)創(chuàng)建過用戶,這步可以省略)
第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
DBA,CONNECT,RESOURCE,CREATE SESSION TO 用戶名字
第五, 運行-cmd-進入dmp文件所在的目錄,
imp userid=system/manager full=y file=*.dmp
或者 imp userid=system/manager full=y file=filename.dmp
附錄二:
Oracle 不允許直接改變表的擁有者, 利用Export/Import可以達到這一目的.
先建立import9.par,
然后,使用時命令如下:imp parfile=/filepath/import9.par
例 import9.par 內容如下:
FROMUSER=TGPMS
TOUSER=TGPMS2 (注:把表的擁有者由FROMUSER改為TOUSER,F(xiàn)ROMUSER和TOUSER的用戶可以不同)
ROWS=Y
INDEXES=Y
GRANTS=Y
CONSTRAINTS=Y
BUFFER=409600
file==/backup/ctgpc_20030623.dmp
log==/backup/import_20030623.log