[獨孤九劍]Oracle知識點梳理(一)表空間、用戶html
[獨孤九劍]Oracle知識點梳理(三)導入、導出服務器
[獨孤九劍]Oracle知識點梳理(四)SQL語句之DML和DDL函數
[獨孤九劍]Oracle知識點梳理(五)數據庫經常使用對象之Table、View工具
[獨孤九劍]Oracle知識點梳理(六)數據庫經常使用對象之Procedure、function、Sequencespa
[獨孤九劍]Oracle知識點梳理(七)數據庫經常使用對象之Cursor日誌
[獨孤九劍]Oracle知識點梳理(八)常見Exception code
[獨孤九劍]Oracle知識點梳理(九)數據庫經常使用對象之packagehtm
[獨孤九劍]Oracle知識點梳理(十)%type與%rowtype及經常使用函數對象
Oracle 9i以前,使用imp/exp命令完成導入/導出操做。
1 --將數據庫orcl徹底導出到D盤指定目錄 2 exp userName/password@orcl file=d:\backup\userName01.dmp log=d:\backup\userName01.log full=y 3 --將 數據庫中userName用戶和userName2用戶的相關內容導出 4 exp userName/password@orcl file=d:\backup\userName01.dmp log=d:\backup\userName01.log owner=(userName,userName2) 5 --將表t1和t2導出 6 exp userName/password@orcl file=d:\backup\userName01.dmp log=d:\backup\userName01.log tables=(t1,t2) 7 --將表t1中以00開頭的數據導出 8 exp userName/password@orcl file=d:\backup\userName01.dmp log=d:\backup\userName01.log tables=(t1) query=\" where field1 like '00%'\"
導入的前提:數據庫中用於即將導入的數據的一致的表空間同名用戶見的導入:
1 --將備份文件所有導入 2 imp userName/password@orcl file=d:\backup\userName01.dmp log=d:\backup\userName01.log full=y 3 --其中ignore=y表示忽略已存在的表,不加,遇到同名的表,對該表就不導入 4 imp userName/password@orcl file=d:\backup\userName01.dmp log=d:\backup\userName01.log full=y ignore=y 5 --將表t1 導入 6 imp userName/password@orcl file=d:\backup\userName01.dmp log=d:\backup\userName01.log tables=(t1)
不一樣名用戶間的導入:
imp userName/password@orcl file=d:\backup\userName01.dmp
log=d:\backup\userName01.log
fromuser=userNameA touser=userNameB --注意fromuser和touser
Oracle 10i以後,Oracle推薦使用數據泵方式導入/導出數據【impdp/expdp】;使用數據泵方式,只能在服務器上進行導入/導出操做。
a) 建立Directory
create directory dir_dp as 'D:\backup\dir_dp';
b) 受權
create read,write on directory dir_dp on userName;
b.1) 查看目錄及權限
select privilege,directory_name,directory_path
from user_tab_privs t,all_directories d where t.table_name(+)=d.directory_name;
c) 執行導出
expdp userName/password@orcl schemas=userName
directory=dir_dp dmpfile=expdp_userName.dmp logfile=expdp_userName.log
注意:
一、directory=dir_dp必須放在前面,若是將其放置最後,會提示 ORA-39002: 操做無效
ORA-39070: 沒法打開日誌文件。
ORA-39087: 目錄名 DATA_PUMP_DIR; 無效
二、在導出過程當中,DATA DUMP 建立並使用了一個名爲SYS_EXPORT_SCHEMA_01的對象,此對象就是DATA DUMP導出過程當中所用的JOB名字,若是在執行這個命令時若是沒有指定導出的JOB名字那麼就會產生一個默認的JOB名字,若是在導出過程當中指定JOB名字就爲以指定名字出現。
以下改爲:
expdp userName/password@orcl schemas=userName
directory=dir_dp dumpfile =expdp_test1.dmp logfile=expdp_test1.log,job_name=my_job1;
三、導出語句後面不要有分號,不然如上的導出語句中的job表名爲‘my_job1;’,而不是my_job1。所以致使expdp userName/password attach=userName.my_job1執行該命令時一直提示找不到job表
四、建立的目錄必定要在數據庫所在的機器上。不然也是提示:
ORA-39002: 操做無效
ORA-39070: 沒法打開日誌文件。
ORA-39087: 目錄名 DATA_PUMP_DIR; 無效
數據泵導出的各類模式:
expdp userName/password@orcl tables=userName.b$i_exch_info,userName.b$i_manhole_info
dumpfile =expdp_test2.dmp logfile=expdp_test2.log directory=dir_dp job_name=my_job
expdp userName/password@orcl tables=userName.b$i_exch_info
dumpfile=expdp_test3.dmp logfile=expdp_test3.log directory=dir_dp job_name=my_job query='"where rownum<11"'
Expdp userName/password@orcl dumpfile=expdp_tablespace.dmp
tablespaces=GCOMM.DBF logfile=expdp_tablespace.log directory=dir_dp job_name=my_job
Expdp userName/password DIRECTORY=dir_dp DUMPFILE=schema.dmp SCHEMAS=userName,gwm
expdp userName/password@orcl dumpfile =full.dmp full=y logfile=full.log directory=dir_dp job_name=my_job
準備:1.建庫2.建表空間3.建用戶並受權4.將aa.dmp拷貝到dpdump目錄下(若是不修改並指定備份文件目錄的話)
impdp gwm/gwm@fgisdb dumpfile =p_street_area.dmp logfile=imp_p_street_area.log directory=dir_dp tables=p_street_area job_name=my_job
impdp gwm/gwm@fgisdb schemas=gwm dumpfile =expdp_test.dmp logfile=expdp_test.log directory=dir_dp job_name=my_job
impdp gwm/gwm directory=dir_dp NETWORK_LINK=igisdb tables=p_street_area logfile=p_street_area.log job_name=my_job -- igisdb是目的數據庫與源數據的連接名,dir_dp是目的數據庫上的目錄
expdp system/orcl directory=data_pump_dir dumpfile=gwm.dmp SCHEMAS=gwm
注意:
若是是用sys用戶導出的用戶數據,包括用戶建立、受權部分,用自身用戶導出則不含這些內容
--如下是將gwm用戶下的數據所有導入到表空間gcomm(原來爲gmapdata表空間下)下 impdp system/orcl directory=data_pump_dir dumpfile=gwm.dmp remap_tablespace=gmapdata:gcomm
1 create directory dir_dp as 'D:\backup\dir_dp'; 2 create read,write on directory dir_dp on userName; 3 expdp userName/password@orcl schemas=userName directory=dir_dp
dumpfile=expdp_userName.dmp logfile=expdp_userName.log version=10.2.0.1.0 --帶上版本號
impdp userName/password@orcl schemas=userName directory=dir_dp
dumpfile=expdp_userName.dmp logfile=expdp_userName.log version=10.2.0.1.0 --帶上版本號
用Notepad++或其它文本編輯工具軟件查看dmp文件,將頭部修改爲你將導入目標數據庫的版本號
如下對應的版本號: 11g R2:V11.02.00 11g R1:V11.01.00 10g:V10.02.01
這樣,ORACLE10g就能夠導入此文件了,固然也可能考驗人品。