- 相關推薦
2025最新Oracle數據庫導入導出命令總結
總結是對某一特定時間段內的學習和工作生活等表現情況加以回顧和分析的一種書面材料,它可以幫助我們總結以往思想,發揚成績,讓我們好好寫一份總結吧。我們該怎么寫總結呢?下面是小編收集整理的2025最新Oracle數據庫導入導出命令總結,歡迎閱讀與收藏。

2025最新Oracle數據庫導入導出命令
Oracle數據導入導出imp/exp就相當于oracle數據還原與備份。exp命令可以把數據從遠程數據庫服務器導出到本地的dmp文件,imp命令可以把dmp文件從本地導入到遠處的數據庫服務器中。利用這個功能我們可以從生產庫中導出數據庫,再導入數據庫到測試庫中。
執行環境:可以在SQLPLUS.EXE或者DOS(命令行)中執行,DOS中可以執行是由于在oracle中,安裝目錄\ora9i\bin被設置為全局路徑(也可直接在系統環境變量中設置),該目錄下有EXP.EXE與IMP.EXE文件被用來執行導入導出。
下面是導入導出的實例。
數據導出:
1 將數據庫zxcc完全導出,用戶名kf 密碼zx 導出到D:\zxcc.dmp中
exp kf/zx@zxcc file=d:\zxcc.dmp full=y
full=y 表示全庫導出。full總共有2個可選項yes(y)/no(n),缺省情況下full=no,這時只會將該用戶下的對象導出。
2 將數據庫zxcc中kf用戶與cc用戶的表導出
exp kf/zx@zxcc file=d:\zxcc_ur.dmp owner=(kf,cc)
full方式可以備份所有用戶的數據庫對象,包括表空間、用戶信息等,owner=XX只能備份指定用戶的對象,其他用戶下的就不備份了,EXP中full=y和owner=XX是不能同時使用的。
3 將數據庫zxcc中的表kf_operator、kf_role導出
exp kf/zx@zxcc file= d:\zxcc_tb.dmp tables=(kf_operator,kf_role)
tables=xx 表示備份相關表,不能同時和owner、full使用。
4 將數據庫中的表kf_operator中的字段oper_id以"00"打頭的數據導出
exp kf/zx@zxcc file=d:\zxcc_t.dmp tables=(kf_operator) query=\" where oper_id like 00%\"
query主要是導出合適條件的數據。使用該參數時,需要注意對所有操作系統保留字符都要使用轉義符號。若有括號()也需要轉義:
query=\"where dt=to_date\(\2007-09-22\,\yyyy-mm-dd\\)\" 。
如果遇到條件比較繁瑣的語句,頻繁的轉義操作不僅費時,還很容易出錯。我們可以使用exp或expdp的PARFILE參數避免query內容的繁瑣轉義問題。
例:
oracle DBALNP01 > cat > zxcc.par
tables=kf_operator
file=zxcc.dmp
query="where dt_time=to_date(2010-06-25,yyyy-mm-dd)"
這時就可以盡情的再雙引號中寫條件語句了。
上面是常用的導出,對于比較大的數據庫,我們可以對導出文件進行壓縮處理,可用winzip把dmp文件進行壓縮。
也可以在上面命令后面加上 compress=y 來實現。
數據的導入:
1、將D:\zxcc.dmp 中的數據導入 zxcc數據庫中。
imp kf/zx@zxcc file=D:\zxcc.dmp
導數據得時候,有可能報錯。為什么?有以下主要的原因:
A. 導入的對象(表,視圖,方法等)原本不屬于當前連接的用戶的
B. 導入的對象在該數據庫的指定用戶下已經存在
C. 導入的對象的原本用戶不在這個數據庫里
對于這三個問題的處理方法如下:
a/c、所有對象全部導入到指定的賬戶下:
imp kf_new/zx@zxcc_new file=d:\zxcc.dmp fromuser=kf touser=kf_new
其中fromuser=kf為.dmp文件里的對象的原先的owner, touser=kf_new 為作為導入的對象的新的Owner.
b、忽略/插入數據:
imp kf_new/zx@zxcc_new file= d:\zxcc.dmp ignore=y
其中ignore=y告訴imp.exe把數據直接插入到相應對象(并且如果導入的對象里面有其他的對象,如約束,索引等,會在數據插入后被創建)。
2、將d:\zxcc_tb.dmp中的表tb_operator 導入
imp kf/zx@zxcc file=d:\zxcc_tb.dmp tables=(tb_operator)
忽略加載約束
有時候導數據進來的時候,我們不需要把它的約束,比如一些外鍵約束等都導進來,可以加上參數constraints=N
不加載索引(比如唯一性的索引),可以加上參數indexs=N
只加載結構,不加載數據,如果只要表的結構等定義(約束,觸發器),而不要里面的數據,可以加上參數rows=N
對于上述操作登陸操作的用戶需是管理員,如果不是管理員,而是普通用戶,那么這個用戶必須有創建刪除對象的權利,對象可能包括表,視圖,方法,存儲過程等等常見的對象。為什么“可能”包括?因為這個視導入導出的時候是否涉及相關類型的對象而定。
Imp kf/zx@zxcc_new file=d:\zxcc.dmp fromuser=kf touser=kf_new ignore=y
基本上面的導入導出夠用了。不少情況要先是將表徹底刪除,然后導入。
注意:
(1)、操作者要有足夠的權限,權限不夠會有提示。
(2)、數據庫鏈接正常,可以用tnsping zxcc 來檢測數據庫zxcc能否連上。
(3)、導入/導出數據庫時注意字符集。可能會出現導出/導入時數據庫字符集不一致而報錯。
oracle數據庫其他常用命令:
1、給用戶增加導入數據權限的操作
第一,啟動sqlpuls
第二,以管理員(DBA)用戶登陸
第三,create user 用戶名 IDENTIFIED BY 密碼 (如果已經創建過用戶,這步可以省略)
第四,>grant create user , drop user , alter user , create any view , drop any view , exp_full_database , imp_full_database , dba , resource , create session to 用戶名字;
第五, 運行cmd進入dmp文件所在的目錄,
imp userid=管理員用戶名/密碼 full=y file= filename.dmp
或者 imp userid=管理員用戶名/密碼 full=y file=filename.dmp
2、Oracle 不允許直接改變表的擁有者, 利用Export/Import可以達到這一目的
先建立.par文件()
然后,使用時命令如下:imp parfile=/filepath/import9.par
例 import9.par 內容如下:
FROMUSER=user
TOUSER=user_new (注:把表的擁有者由FROMUSER改為TOUSER,FROMUSER和TOUSER的用戶可以不同)
ROWS=Y
INDEXES=Y
GRANTS=Y
CONSTRAINTS=Y
BUFFER=409600
file==/filepath/xxxx.dmp
log==/filepath/import_log.log
oracle數據庫體系架構
oracle數據庫由實例、數據庫組成:
數據庫由數據文件(包含oracle 數據、索引、表結構等數據)、控制文件(包括每個表的操作信息)、日志文件(數據操作sql語句)、參數文件、口令文件、日志歸檔文件(歸檔模式下)(服務器崩潰、硬盤損壞情況下,通過日志恢復時用)
實例由 內存結構(memory strutct) 和 后臺進程(background processor)組成。
內存結構組成:
PGA: Processor Global Area 程序全局區 ,每一個客戶端接入到oracle 服務器都有一個PGA,用于保存該客戶單的相關信息
SGA: System Global Area 系統全局區,主要是給oracle實例使用,包括 shared pool 、 data buffer area , redo log buffer .
共享池(shared pool):
包括library cache 、data directory cache 組成,其中 library cache 主要保存最近的sql 檢查、編譯、執行計劃, 下次有同樣語句過來的時候,可以重用這些,避免重復的檢查編譯執行計劃。 data directory cache 主要保存數據庫數據表的字段定義、索引數據等, shared pool 的大小直接影響到數據庫的性能。
data buffer area : 主要保存用戶對數據的修改,查詢操作。該內存區域的大小直接影響數據庫的性能。
redo log buffer area: 主要保存最近用戶對數據庫的操作記錄,該大小對數據庫性能沒有多大影響
oracle 必須要的后臺進程包括:PMON 、 SMON 、 DBWR、 LOGWR、 CKPT、其他,每個作用如下:
PMON 監控PGA的健康情況,釋放已經死去的PGA,回收資源,管理PGA的生命周期
SMON 監控SGA的健康情況,收集SGA碎片內存,監控實例健康情況
DBWR 維護data buffer area 和物理表數據的一致性
LGWR 維護redo log buffer area 內存數據和日志文件的一致性
CKPT 設置檢查點,在oracle 實例出現問題的時候,可以恢復到實例失敗前的情況。
oracle 內存結構有 塊、區、段、表空間組成,塊是oracle 在內存中的最小結構, 區、段、 表空間是oracle 依次向上的內存結構。快的太小數據管理麻煩,太大,數據碎片比較多。具體情況具體分析。
表空間是oracle最大的邏輯單位,一個表空間只能屬于一個數據庫,一個數據庫可以包含多個表空間,但默認包含一個system的表空間。創建表空間的語法:
復制代碼 代碼如下:
CREATE TABLESPACE name
DATAFILE path [SIZE interger M|K]
LOGFILE path
[AUTOEXTEND ON | OFF]
【最新Oracle數據庫導入導出命令總結】相關文章:
MySQL導出導入SQL文件命令方法10-17
ORACLE數據庫基本命令08-26
oracle表空間啟動數據庫命令05-07
oracle數據庫執行腳本常用命令06-15
CAD中怎么導入導出文本08-14
Adobe After Effects導入和導出操作06-17
Oracle數據庫SQLPLUS介紹10-09
Oracle數據庫SELECT語句10-25
Oracle數據庫的基本介紹09-04