主頁(yè) > 知識(shí)庫(kù) > 淺談入門級(jí)oracle數(shù)據(jù)庫(kù)數(shù)據(jù)導(dǎo)入導(dǎo)出步驟

淺談入門級(jí)oracle數(shù)據(jù)庫(kù)數(shù)據(jù)導(dǎo)入導(dǎo)出步驟

熱門標(biāo)簽:手機(jī)地圖標(biāo)注門店 汽車4s店百度地圖標(biāo)注店 安陽(yáng)企業(yè)電銷機(jī)器人供應(yīng)商 地圖標(biāo)注坐標(biāo)圖標(biāo) 網(wǎng)貸外呼系統(tǒng)合法嗎 鶴壁電話機(jī)器人價(jià)格 地圖標(biāo)注效果的制作 電銷套路機(jī)器人 杭州網(wǎng)絡(luò)外呼系統(tǒng)運(yùn)營(yíng)商

oracle數(shù)據(jù)庫(kù)數(shù)據(jù)導(dǎo)入導(dǎo)出步驟(入門)

說(shuō)明:
1.數(shù)據(jù)庫(kù)數(shù)據(jù)導(dǎo)入導(dǎo)出方法有多種,可以通過(guò)exp/imp命令導(dǎo)入導(dǎo)出,也可以用第三方工具導(dǎo)出,如:PLSQL
2.如果熟悉命令,建議用exp/imp命令導(dǎo)入導(dǎo)出,避免第三方工具版本差異引起的問(wèn)題,同時(shí)效率更高,但特別注意:采用命令時(shí)要注意所使用的用戶及其權(quán)限等細(xì)節(jié)。
3.在目標(biāo)數(shù)據(jù)庫(kù)導(dǎo)入時(shí)需要?jiǎng)?chuàng)建與導(dǎo)出時(shí)相同的用戶名(盡量一致),并賦予不低于導(dǎo)出時(shí)用戶的權(quán)限;同時(shí)還需創(chuàng)建與原數(shù)據(jù)庫(kù)相同的表空間名,若本地?cái)?shù)據(jù)庫(kù)已存在相同的表空間,則只能進(jìn)行表空間擴(kuò)充。

一、導(dǎo)入前準(zhǔn)備工作(在目標(biāo)數(shù)據(jù)庫(kù)操作)

知識(shí)補(bǔ)充:
表空間
 Oracle數(shù)據(jù)庫(kù)是通過(guò)表空間來(lái)存儲(chǔ)物理表的,一個(gè)數(shù)據(jù)庫(kù)實(shí)例可以有N個(gè)表空間,一個(gè)表空間下可以有N張表。
  表空間(tablespace)是數(shù)據(jù)庫(kù)的邏輯劃分,每個(gè)數(shù)據(jù)庫(kù)至少有一個(gè)表空間(稱作SYSTEM表空間)。為了便于管理和提高運(yùn)行效率,可以使用一些附加表空間來(lái)劃分用戶和應(yīng)用程序。例如:USER表空間供一般用戶使用,RBS表空間供回滾段使用。一個(gè)表空間只能屬于一個(gè)數(shù)據(jù)庫(kù)。

1. 登錄服務(wù)器

 用Xshell或者secureCRT工具都可

2. 查詢磁盤空間是否足夠大

 執(zhí)行df -h或者df -H命令進(jìn)行查詢,若可用空間不足則更換新的目標(biāo)環(huán)境再繼續(xù)其他操作。

[oracle@orac ~]$ df -h

3. 查詢表空間詳情

 ①使用終端登錄,依次執(zhí)行命令:

 在/home/oracle/app/oradata 目錄下新建一個(gè)文件夾,后面創(chuàng)建表空間需要用到,該路徑不唯一,根據(jù)目標(biāo)數(shù)據(jù)庫(kù)存放數(shù)據(jù)文件位置而定。

 [oracle@orac ~]$ /home/oracle/app/oradata 
 [oracle@orac ~]$ mkdir snail

  ②登錄數(shù)據(jù)庫(kù)

 (注意/與as之間要有空格)
 [oracle@orac ~]$ sqlplus / as sysdba 
  			

   執(zhí)行sql語(yǔ)句

SQL> select a.tablespace_name,a.bytes/1024/1024 "sum MB", (a.bytes-b.bytes)/1024/1024 "used MB",b.bytes/1024/1024 "free MB",round (((a.bytes-b.bytes)/a.bytes)*100,2) "used%" from (select tablespace_name,sum(bytes) bytes from dba_data_files group by tablespace_name) a, (select tablespace_name,sum(bytes) bytes,max (bytes) largest from dba_free_space group by tablespace_name)b where a.tablespace_name=b.tablespace_name order by ((a.bytes-b.bytes)/a.bytes) desc;

即可得到當(dāng)前數(shù)據(jù)庫(kù)的表空間情況,如下圖:

  也可以通過(guò)第三方工具登錄數(shù)據(jù)庫(kù)執(zhí)行上述sql語(yǔ)句(以下幾步也同樣可以)
  注: 如果要導(dǎo)入的數(shù)據(jù)庫(kù)表空間名與當(dāng)前已有表空間名相同,則無(wú)需新建表空間(也不可以再建),但是必須確定已有表空間大小充足,或者已經(jīng)設(shè)置為自動(dòng)增加并且自動(dòng)增加的最大值足夠大,那么就不需要進(jìn)行表空間擴(kuò)充,直接使用該表空間級(jí)即可,跳過(guò)第四步。
 反之如果沒有該名稱的表空間,或者表空間大小不足以存放要導(dǎo)入的數(shù)據(jù)時(shí),需要對(duì)該表空間進(jìn)行擴(kuò)充,執(zhí)行第四步。

4. 表空間擴(kuò)充

 對(duì)表空間進(jìn)行擴(kuò)充有多種方法,簡(jiǎn)單介紹其中幾個(gè)常用方法:
 ① 直接增大表空間的大小:
   先查看表空間中數(shù)據(jù)文件存放的位置

SQL> select tablespace_name, file_id, file_name, round(bytes/(1024*1024),0) total_space from dba_data_files order by tablespace_name;

  確定數(shù)據(jù)文件位置后,執(zhí)行命令:
  alter database datafile ‘?dāng)?shù)據(jù)文件路徑' resize 要增大的大小
  例如:

SQL> alter database datafile '/home/oracle/oradata/SPS_DATA.DBF' resize 4000m

   注意:此法在增大存在表數(shù)據(jù)的表空間時(shí)會(huì)報(bào)錯(cuò),提示增加失敗,建議用下一種方法

 ② 增加數(shù)據(jù)文件的個(gè)數(shù)
  alter tablespace 表空間名 add datafile ‘新增加的數(shù)據(jù)文件路徑' size 數(shù)據(jù)文件的大小
  例如:

SQL> alter tablespace SPS_DATA add datafile '/home/oracle/app/oradata/snail/SPS_DATA02.dbf' size 2000m 

 ③ 設(shè)置表空間自動(dòng)擴(kuò)展
  alter database datafile ‘要擴(kuò)展的表空間' autoextend on next 擴(kuò)展單元大小 maxsize 最大擴(kuò)展大小
  例如:

SQL> alter database datafile '/home/oracle/app/oradata/snail/SPS_DATA.dbf' autoextend on next 100m maxsize 10000m

 備注:方法可以結(jié)合使用,尤其當(dāng)不確定導(dǎo)入文件最終大小時(shí)建議使用,如:

SQL> alter tablespace SPS_DATA add datafile '/home/oracle/app/oradata/snail/SPS_DATA02.dbf' size 2000m autoextend on next 200M maxsize 12000M;

  對(duì)表空間擴(kuò)充之后可再次執(zhí)行3.步中查看表空間大小的sql,確認(rèn)表空間擴(kuò)充成功。

5. 創(chuàng)建臨時(shí)表空間與數(shù)據(jù)表空間

 創(chuàng)建用戶前必須要先創(chuàng)建臨時(shí)表空間和數(shù)據(jù)庫(kù)表空間兩個(gè)表空間,否則用系統(tǒng)默認(rèn)的表空間,會(huì)引起其他問(wèn)題。
 ①創(chuàng)建臨時(shí)表空間
  create temporary tablespace 臨時(shí)表空間名 tempfile ‘臨時(shí)表空間位置' size 臨時(shí)表空間大小autoextend on next 100m maxsize 10240m extent management local;
  例如:

SQL> create temporary tablespace SPS_DATA_temp tempfile'/home/oracle/app/oradata/snail/SPS_DATA_temp.dbf' size 1024m autoextend on next 100m maxsize 10240m extent management local;

 ②創(chuàng)建數(shù)據(jù)表空間
  參數(shù)大致同創(chuàng)建臨時(shí)表空間
  例如:

SQL> create tablespace SPS_DATA logging datafile'/home/oracle/app/oradata/snail/SPS_DATA01.dbf' size 1024m autoextend on next 100m maxsize 10240m extent management local;

  注意:如果是執(zhí)行4.步之后,即表空間為擴(kuò)充而來(lái)而不是新建的,則不需要?jiǎng)?chuàng)建數(shù)據(jù)表空間(但是臨時(shí)表空間還需要?jiǎng)?chuàng)建——個(gè)人觀點(diǎn))

6. 創(chuàng)建數(shù)據(jù)庫(kù)用戶并指定表空間

  該用戶用于管理即將導(dǎo)入的數(shù)據(jù),導(dǎo)入時(shí)也切換到該用戶進(jìn)行導(dǎo)入操作(如果用imp命令進(jìn)行導(dǎo)入,最好此用戶名與導(dǎo)出時(shí)采用的用戶名為同樣的用戶名,不同的話可能還需要做映射),格式為:
  create user 用戶名identified by 用戶密碼default tablespace 所指定的表空間名 temporary tablespace 臨時(shí)表空間名;
  例如:

SQL> create user abc identified by ABC default tablespace SPS_DATA temporary tablespace SPS_DATA_temp;

7. 賦予用戶權(quán)限

 因?yàn)橐迷撚脩暨M(jìn)行導(dǎo)入操作,故應(yīng)給予用戶的權(quán)限至少包括dba、IMP_FULL_DATABASE權(quán)限,也有人建議應(yīng)與導(dǎo)出數(shù)據(jù)庫(kù)數(shù)據(jù)時(shí)用戶的權(quán)限一致。
 授權(quán)sql:(視具體情況而定)

grant dba,imp_full_database,exp_full_database,connect,resource,create session to 用戶名;

 例如:

SQL> grant create user,drop user,alter user ,create any view ,drop any view,exp_full_database,imp_full_database,dba,connect,resource,read,write,create session to abc;

二、采用exp/imp命令

知識(shí)擴(kuò)充:
 數(shù)據(jù)泵導(dǎo)出導(dǎo)入(EXPDP和IMPDP)的作用
  1、實(shí)現(xiàn)邏輯備份和邏輯恢復(fù)。
  2、在數(shù)據(jù)庫(kù)用戶之間移動(dòng)對(duì)象。
  3、在數(shù)據(jù)庫(kù)之間移動(dòng)對(duì)象
  4、實(shí)現(xiàn)表空間搬移。
 數(shù)據(jù)泵導(dǎo)出導(dǎo)入與傳統(tǒng)導(dǎo)出導(dǎo)入的區(qū)別:
  在10g之前,傳統(tǒng)的導(dǎo)出和導(dǎo)入分別使用EXP工具和IMP工具,從10g開始,不僅保留了原有的EXP和IMP工具,還提供了數(shù)據(jù)泵導(dǎo)出導(dǎo)入工具EXPDP和IMPDP.使用EXPDP和IMPDP時(shí)應(yīng)該注意的事項(xiàng):
  EXP和IMP是客戶段工具程序,它們既可以在客戶端使用,也可以在服務(wù)器段使用。
  EXPDP和IMPDP是服務(wù)端的工具程序,他們只能在ORACLE服務(wù)端使用,不能在客戶端使用
  IMP只適用于EXP導(dǎo)出文件,不適用于EXPDP導(dǎo)出文件;IMPDP只適用于EXPDP導(dǎo)出文件,而不適用于EXP導(dǎo)出文件。

1. 導(dǎo)出命令

 導(dǎo)出與導(dǎo)入分別都有三種方式:
 ①完全模式導(dǎo)出(導(dǎo)入):
  將整個(gè)數(shù)據(jù)庫(kù)內(nèi)容導(dǎo)出,但是操作時(shí)需要有特殊權(quán)限,
  exp 用戶名/密碼buffer=32000file=導(dǎo)出的目錄 full=y
  例如:

exp system/manager buffer=32000 file=d:\iom.dmp full=y 

 ②用戶模式導(dǎo)出(導(dǎo)入)
  將指定用戶的所有對(duì)象進(jìn)行導(dǎo)出,例如:

 exp iom/iom buffer=32000 file=d:\iom.dmp owner=iom

 ③表模式導(dǎo)出(導(dǎo)入)
  將用戶的所有表數(shù)據(jù)進(jìn)行導(dǎo)出,例如:

exp iom/iom buffer=32000 file=d:\iom.dmp owner=iom tables=(iom) 

 備注:可以執(zhí)行exp help=y、imp help=y查看幫助命令,以及執(zhí)行exp或者imp查看對(duì)應(yīng)版本號(hào)。

 導(dǎo)出步驟:
 首先切換到oracle用戶(數(shù)據(jù)庫(kù)超級(jí)管理員)

[oracle@orac ~]$ su - oracle 

 根據(jù)所需要采用的導(dǎo)出模式進(jìn)行導(dǎo)出

[oracle@orac~]$exp iom/iom file=iom.dmp log=oradb.log full=y compress=y direct=y 

  COMPRESS參數(shù)將在導(dǎo)出的同時(shí)合并碎塊,盡量把數(shù)據(jù)壓縮到initial的EXTENT里,默認(rèn)是N,一般建議使用。DIRECT參數(shù)將告訴EXP直接讀取數(shù)據(jù),而不像傳統(tǒng)的EXP那樣,使用SELECT來(lái)讀取表中的數(shù)據(jù),這樣就減少了SQL語(yǔ)句處理過(guò)程。一般也建議使用。不過(guò)有些情況下DIRECT參數(shù)是無(wú)法使用的。
其他參數(shù)可參照幫助命令,或者其他資料進(jìn)行學(xué)習(xí)。在此不一一贅述。

2. 導(dǎo)入命令

 登錄服務(wù)器,切換到oracle用戶。

[oracle@orac ~]$ su - oracle 

 執(zhí)行導(dǎo)入命令:
  導(dǎo)入時(shí)需要用準(zhǔn)備工作中創(chuàng)建的新用戶,如:用戶名abc,密碼ABC
  imp 用戶名/密碼 file=dmp文件路徑 log=輸出日志路徑full=y ignore=y;
  例如:

[oracle@orac ~]$imp abc/ABC file=/home/oracle/iom.dmp log=/home/oracle/iom.log full=y ignore=y;

 溫馨提示:采用數(shù)據(jù)泵導(dǎo)入過(guò)程經(jīng)常會(huì)遇到問(wèn)題,建議多查閱資料,總有方法解決。相信每一件事物都有它存在的必要性,問(wèn)題只是暫時(shí)的,成功才是必然的!

三、采用第三方工具(以PLSQL為例)

1. 導(dǎo)出格式介紹

 ① Dmp格式:.dmp是二進(jìn)制文件,可跨平臺(tái),還能包含權(quán)限,效率好,
 ② Sql格式:.sql格式的文件,可用文本編輯器查看,通用性比較好,效率不如第一種,適合小數(shù)據(jù)量導(dǎo)入導(dǎo)出。尤其注意的是表中不能有大字段(blob,clob,long),如果有,會(huì)報(bào)錯(cuò)
 ③ Pde格式:.pde格式的文件,.pde為PL/SQL Developer自有的文件格式,只能用PL/SQL Developer工具導(dǎo)入導(dǎo)出,不能用文本編輯器查看。
 備注: 雖然dmp格式為最優(yōu)選,但是不容易實(shí)現(xiàn),原因有倆點(diǎn):首先此格式需要安裝oracle完整版,因?yàn)閷?dǎo)出時(shí)需要選擇對(duì)應(yīng)exp.exe與imp.exe,而且導(dǎo)出是安裝的版本要與要導(dǎo)出數(shù)據(jù)的數(shù)據(jù)庫(kù)版本一致,同理導(dǎo)入時(shí)也要對(duì)應(yīng),否則會(huì)出現(xiàn)版本不一致的問(wèn)題(查閱資料中介紹的,個(gè)人沒有證實(shí));其次此格式的導(dǎo)出經(jīng)常會(huì)遇到導(dǎo)出過(guò)程一閃而過(guò),但是導(dǎo)出不成功的情況,原因未知(可以查閱環(huán)境變量配置ORACLE_HOME配置正確,個(gè)人嘗試多次,仍有問(wèn)題,最后無(wú)奈選取導(dǎo)出為pde格式)。

2. 導(dǎo)出方法

登錄plsql工具,所使用用戶為源數(shù)據(jù)庫(kù)有導(dǎo)出權(quán)限(exp_full_database,dba等)的用戶。
 ①導(dǎo)出建表語(yǔ)句(包括存儲(chǔ)結(jié)構(gòu))
 導(dǎo)出步驟tools ->export user object,選擇要導(dǎo)出的對(duì)象,導(dǎo)出.sql文件,如下圖:


  

等待導(dǎo)出完成

 ②導(dǎo)出數(shù)據(jù)文件
  導(dǎo)出步驟tools ->export tables,選擇要導(dǎo)出的表及導(dǎo)出的格式進(jìn)行導(dǎo)出。
  導(dǎo)出為dmp格式,如下圖:

  

導(dǎo)出為sql格式,如下圖: 


 導(dǎo)出為pde格式,如下圖: 

備注:采用第三方工具導(dǎo)出導(dǎo)入整個(gè)數(shù)據(jù)庫(kù)的話,耗時(shí)較長(zhǎng),一定要有足夠的時(shí)間來(lái)操作(數(shù)據(jù)量大的話需要好幾個(gè)小時(shí))

3. 導(dǎo)入方法

登錄plsql工具,使用之前準(zhǔn)備工作所創(chuàng)建的用戶。
 步驟類似導(dǎo)出方法
 ①導(dǎo)入建表語(yǔ)句
  導(dǎo)入步驟tools->import tables->SQL Inserts 導(dǎo)入.sql文件
 ②導(dǎo)入數(shù)據(jù)
   tools->import talbes,然后再根據(jù)導(dǎo)出的數(shù)據(jù)格式選擇導(dǎo)入dmp文件,或者sql文件,或者pde文件。
  備注:導(dǎo)入之前最好把以前的表刪除,當(dāng)然導(dǎo)入另外數(shù)據(jù)庫(kù)除外。
     另外導(dǎo)入時(shí)當(dāng)發(fā)現(xiàn)進(jìn)度條一直卡在一個(gè)點(diǎn),而且導(dǎo)出的文件不再增大時(shí),甚至是提示程序未響應(yīng),千萬(wàn)不要以為程序卡死了,這個(gè)導(dǎo)入導(dǎo)出就是比較緩慢,只要沒有提示報(bào)錯(cuò),或者導(dǎo)入完成就不要停止程序。

參考文獻(xiàn):

1.Oracle - 數(shù)據(jù)庫(kù)的實(shí)例、表空間、用戶、表之間關(guān)系:
 https://www.jb51.net/article/192633.htm
2.PL/SQL Developer導(dǎo)入導(dǎo)出數(shù)據(jù)庫(kù)方法:
 http://jingyan.baidu.com/article/d5a880eb69ff7313f047cc5f.html
3.linux下創(chuàng)建oracle表空間:
 http://blog.sina.com.cn/s/blog_62192aed01018aep.html
4.plsql連接64位數(shù)據(jù)庫(kù)及plsql導(dǎo)出表閃現(xiàn)錯(cuò)誤:
 http://201405221449.iteye.com/blog/2241714
5.oracle安裝包官網(wǎng)下載:
 http://www.oracle.com/technetwork/topics/winsoft-085727.html
6.ORACLE 表空間擴(kuò)展方法:
  //www.jb51.net/database/201110/109669.html
7.Exp/imp命令詳解:
 http://blog.csdn.net/caijing3210/article/details/7528788
 http://www.cnblogs.com/yugen/archive/2010/07/25/1784763.html
 http://www.cnblogs.com/whsa/p/3975817.html

到此這篇關(guān)于淺談入門級(jí)oracle數(shù)據(jù)庫(kù)數(shù)據(jù)導(dǎo)入導(dǎo)出步驟的文章就介紹到這了,更多相關(guān)oracle數(shù)據(jù)庫(kù)數(shù)據(jù)導(dǎo)入導(dǎo)出步驟內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • LINUX下Oracle數(shù)據(jù)導(dǎo)入導(dǎo)出的方法詳解
  • Oracle和MySQL的數(shù)據(jù)導(dǎo)入為何差別這么大

標(biāo)簽:焦作 梧州 柳州 酒泉 泰安 南陽(yáng) 河源 銀川

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《淺談入門級(jí)oracle數(shù)據(jù)庫(kù)數(shù)據(jù)導(dǎo)入導(dǎo)出步驟》,本文關(guān)鍵詞  淺談,入門,級(jí),oracle,數(shù)據(jù)庫(kù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《淺談入門級(jí)oracle數(shù)據(jù)庫(kù)數(shù)據(jù)導(dǎo)入導(dǎo)出步驟》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于淺談入門級(jí)oracle數(shù)據(jù)庫(kù)數(shù)據(jù)導(dǎo)入導(dǎo)出步驟的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章