Oracle資料庫匯出與匯入及執行

來源:互聯網
上載者:User
sqlplus lnadc/lnadc@ZXIN_10.130.83.48

匯出:(1)exp mobileadc/mobileadc@ZXIN_10.130.83.48
     (2)設緩衝
     (3)設檔案名稱(全路徑)
匯入:(1)用  開啟PL/SQL,點擊TOOLS-Export User Objects,將列表中的所有對象選中,然後輸入儲存路徑,點擊Export按鈕;
     匯出整個對象SQL,可以查看此庫涉及的資料表空間及使用者名稱.
     (2)在本機建立相同名的足夠的資料表空間及指定相應使用者名稱(密碼可以改)
     (3)imp mobileadc/mobileadc@ZXIN_10.130.83.48

匯出部份表:
(1)exp mobileadc/mobileadc@ZXIN_10.130.83.48 tables=mobileadc.表名 file=表名.dmp
匯入部份表:
(1)imp mobileadc/mobileadc@ZXIN_10.130.83.48 tables=mobileadc.表名 file=表名.dmp ignore=y
註:後面的ignore=y 一般用在主要是表存在的情況下。
****************
以下為兩篇文章,以作參考
================
下面是命令詳解:

  ORACLE資料庫有兩類備份方法。第一類為物理備份,該方法實現資料庫的完整恢複,但資料庫必須運行在歸擋模式下(業務資料庫在非歸擋模式下運行),且需要極大的外部存放裝置,例如磁帶庫;第二類備份方式為邏輯備份,業務資料庫採用此種方式,此方法不需要資料庫運行在歸擋模式下,不但備份簡單,而且可以不需要外部存放裝置。
  
  資料庫邏輯備份方法
  
  ORACLE資料庫的邏輯備份分為三種模式:表備份、使用者備份和完全備份。
  
  表模式
  
  備份某個使用者模式下指定的對象(表)。業務資料庫通常採用這種備份方式。
  
  若備份到本地檔案,使用如下命令:
  
  exp icdmain/icd rows=y indexes=n compress=n buffer=65536
  feedback=100000 volsize=0
  file=exp_icdmain_csd_yyyymmdd.dmp
  log=exp_icdmain_csd_yyyymmdd.log
  tables=icdmain.commoninformation,icdmain.serviceinfo,icdmain.dealinfo
  
  若直接備份到磁帶裝置,使用如下命令:
  exp icdmain/icd rows=y indexes=n compress=n buffer=65536
  feedback=100000 volsize=0
  file=/dev/rmt0
  log=exp_icdmain_csd_yyyymmdd.log
  tables=icdmain.commoninformation,icdmain.serviceinfo,icdmain.dealinfo
  
  註:在磁碟空間允許的情況下,應先備份到本機伺服器,然後再拷貝到磁帶。出於速度方面的考慮,盡量不要直接備份到磁帶裝置。
  
  使用者模式
  
  備份某個使用者模式下的所有對象。業務資料庫通常採用這種備份方式。
  若備份到本地檔案,使用如下命令:
  exp icdmain/icd owner=icdmain rows=y indexes=n compress=n buffer=65536
  feedback=100000 volsize=0
  file=exp_icdmain_yyyymmdd.dmp
  log=exp_icdmain_yyyymmdd.log
  若直接備份到磁帶裝置,使用如下命令:
  exp icdmain/icd owner=icdmain rows=y indexes=n compress=n buffer=65536
  feedback=100000 volsize=0
  file=/dev/rmt0
  log=exp_icdmain_yyyymmdd.log
  註:如果磁碟有空間,建議備份到磁碟,然後再拷貝到磁帶。如果資料庫資料量較小,可採用這種辦法備份。
  
  完全模式
  
  備份完整的資料庫。業務資料庫不採用這種備份方式。備份命令為:
  exp icdmain/icd rows=y indexes=n compress=n buffer=65536
  feedback=100000 volsize=0 full=y
  file=exp_fulldb_yyyymmdd.dmp(磁帶裝置則為/dev/rmt0)
  log=exp_fulldb_yyyymmdd.log
  對於Database Backup,建議採用增量備份,即只備份上一次備份以來更改的資料。增量備份命令:
  exp icdmain/icd rows=y indexes=n compress=n buffer=65536
  feedback=100000 volsize=0 full=y inctype=incremental
  file=exp_fulldb_yyyymmdd.dmp(磁帶裝置則為/dev/rmt0)
  log=exp_fulldb_yyyymmdd.log
  註:關於增量備份必須滿足下列條件:
  1.只對完整Database Backup有效,且第一次需要full=y參數,以後需要inctype=incremental參數。
  2. 使用者必須有EXP_FULL_DATABASE的系統角色。
  3. 話務量較小時方可採用Database Backup。
  4. 如果磁碟有空間,建議備份到磁碟,然後再備份到磁帶。
  
  業務Database Backup方法及周期
  
  用EXP進行備份前,先在SYS使用者下運行CATEXP.SQL檔案(如果以前已運行該檔案,則不要執行這個指令碼)。
  沒有特殊說明,不允許在用戶端執行備份命令。
  備份命令參照表模式下的備份命令。
  從磁碟檔案備份到磁帶
  如果首先備份到本地磁碟檔案,則需要轉儲到磁帶裝置上。
  1. 若需查看主機上配置的磁帶裝置,使用如下命令:
  lsdev -Cc tape
  顯示的結果如下例所示:
  rmt0 Available 30-58-00-2,0 SCSI 4mm Tape Drive
  rmt1 Defined  30-58-00-0,0 SCSI 4mm Tape Drive
  標明Available的裝置是可用的磁帶裝置。
  2. 若需查看磁帶儲存的內容,使用如下命令:
  tar -tvf /dev/rmt0
  顯示的結果如下例所示:
  -rw-r--r-- 300 400 8089600 Jan 11 14:33:57 2001 exp_icdmain_20010111.dmp
  如果顯示類似如下內容,則表示該磁帶儲存的備份資料是從資料庫直接備份到磁帶上,而非從本地磁碟轉儲到磁帶的備份檔案,因此作業系統無法識別。
  tar: 0511-193 An error occurred while reading from the media.
  There is an input or output error.
  或
  tar: 0511-169 A directory checksum error on media; -267331077 not equal to
  2
  5626.
  3. 對於新磁帶或無需保留現存資料的磁帶,使用如下命令:
  tar -cvf /dev/rmt0 exp_icdmain_yyyymmdd.dmp
  註:A. 該命令將無條件覆蓋磁帶上的現存資料。
  B. 檔案名稱不允許包含路徑資訊,如:/backup/exp_icdmain_yyyymmdd.dmp。
  4. 對於需要保留現存資料的磁帶,使用如下命令:
  tar -rvf /dev/rmt0 exp_icdmain_yyyymmdd.dmp
  註:該命令將檔案exp_icdmain_yyyymmdd.dmp追加到磁帶的末端,不會覆蓋現存的資料。
  特彆強調:如果備份時是從資料庫直接備份到磁帶上,則不可再向該磁帶上追加複製任何其他檔案,否則該備份資料失效。
  5. 若需將轉儲到磁帶上的備份檔案複製到本地硬碟,使用如下命令:
  A. 將磁帶上的全部檔案複製到本地硬碟的目前的目錄
  tar -xvf /dev/rmt0
  B. 將磁帶上的指定檔案複製到本地硬碟的目前的目錄
  tar -xvf /dev/rmt0 exp_icdmain_yyyymmdd.dmp
  備份時間安排
  由於備份時對系統I/O有較大影響,所以,建議在晚上11點以後進行備份工作。
  
  業務資料庫Oracle版本的恢複
  
  恢複方案需根據備份方案確定。由於業務資料庫採用表備份和使用者備份相結合的方案,所以業務資料庫的恢複需根據實際情況採用表恢複和使用者恢複相結合的方案。
  
  恢複方案
  
  資料庫的邏輯恢複分為表恢複、使用者恢複、完全恢複三種模式。
  
  表模式
  
  此方式將根據按照表模式備份的資料進行恢複。
  A. 恢複備份資料的全部內容
  若從本地檔案恢複,使用如下命令:
  imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
  commit=y buffer=65536 feedback=100000 ignore=n volsize=0
  file=exp_icdmain_cs
  d_yyyymmdd.dmp
  log=imp_icdmain_csd_yyyymmdd.log
  若從磁帶裝置恢複,使用如下命令:
  imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
  commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=/dev/rmt0
  log=imp_icdmain_csd_yyyymmdd.log
  B. 恢複備份資料中的指定表
  若從本地檔案恢複,使用如下命令:
  imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
  commit=y buffer=65536 feedback=100000 ignore=n volsize=0
  file=exp_icdmain_cs
  d_yyyymmdd.dmp
  log=imp_icdmain_csd_yyyymmdd.log
  tables=commoninformation,serviceinfo
  若從磁帶裝置恢複,使用如下命令:
  imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
  commit=y buffer=65536 feedback=100000 ignore=n volsize=0
  file=/dev/rmt0
  log=imp_icdmain_csd_yyyymmdd.log
  tables=commoninformation,serviceinfo
  
  使用者模式
  
  此方式將根據按照使用者模式備份的資料進行恢複。
  A. 恢複備份資料的全部內容
  若從本地檔案恢複,使用如下命令:
  imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
  commit=y buffer=65536 feedback=100000 ignore=n volsize=0
  file=exp_icdmain_yy
  yymmdd.dmp
  log=imp_icdmain_yyyymmdd.log
  若從磁帶裝置恢複,使用如下命令:
  imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
  commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=/dev/rmt0
  log=imp_icdmain_yyyymmdd.log
  B. 恢複備份資料中的指定表
  若從本地檔案恢複,使用如下命令:
  imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
  commit=y buffer=65536 feedback=100000 ignore=n volsize=0
  file=exp_icdmain_yy
  yymmdd.dmp
  log=imp_icdmain_yyyymmdd.log
  tables=commoninformation,serviceinfo
  若從磁帶裝置恢複,使用如下命令:
  imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
  commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=/dev/rmt0
  log=imp_icdmain_yyyymmdd.log
  tables=commoninformation,serviceinfo
  
  完全模式
  
  如果備份方式為完全模式,採用下列恢複方法:
  若從本地檔案恢複,使用如下命令:
  imp system/manager rows=y indexes=n commit=y buffer=65536
  feedback=100000 ignore=y volsize=0 full=y
  file=exp_icdmain_yyyymmdd.dmp
  log=imp_icdmain_yyyymmdd.log
  若從磁帶裝置恢複,使用如下命令:
  imp system/manager rows=y indexes=n commit=y buffer=65536
  feedback=100000 ignore=y volsize=0 full=y
  file=/dev/rmt0
  log=imp_icdmain_yyyymmdd.log
  
  參數說明
  
  1. ignore參數
  Oracle在恢複資料的過程中,當恢複某個表時,該表已經存在,就要根據ignore參數的設定來決定如何操作。
  若ignore=y,Oracle不執行CREATE TABLE語句,直接將資料插入到表中,如果插入的記錄違背了約束條件,比如主鍵約束,則出錯的記錄不會插入,但合法的記錄會添加到表中。
  若ignore=n,Oracle不執行CREATE TABLE語句,同時也不會將資料插入到表中,而是忽略該表的錯誤,繼續恢複下一個表。
  2. indexes參數
  在恢複資料的過程中,若indexes=n,則表上的索引不會被恢複,但是主鍵對應的唯一索引將無條件恢複,這是為了保證資料的完整性。
  
  字元集轉換
  
  對於單一位元組字元集(例如US7ASCII),恢複時,資料庫自動轉換為該會話的字元集(NLS_LANG參數);對於多位元組字元集(例如ZHS16CGB231280),恢複時,應盡量使字元集相同(避免轉換),如果要轉換,目標資料庫的字元集應是輸出資料庫字元集的超集。
  
  恢複方法
  
  業務資料庫採用表恢複方案。在用IMP進行恢複前,先在SYS使用者下運行CATEXP.SQL檔案(如果以前已運行該檔案,則不要執行這個指令碼),然後執行下列命令:
  IMP ICDMAIN/ICD FILE=檔案名稱 LOG=LOG檔案名稱 ROWS=Y
  COMMIT=Y BUFFER=Y IGNORE=Y TABLES=表名
  註:要恢複的表名參照備份的表名
  。恢複是在原表基礎上累加資料
  。沒有特殊說明,不允許在用戶端執行恢複命令

  將一個資料庫的某使用者的所有表導到另外資料庫的一個使用者下面的例子  
  exp userid=system/manager owner=username1 file=expfile.dmp
  imp userid=system/manager fromuser=username1 touser=username2 ignore=y file=expfile.dmp

  將一個資料庫的某使用者的所有表導到另外資料庫的一個使用者下面的例子  

  exp userid=system/manager owner=username1 file=expfile.dmp
  imp userid=system/manager fromuser=username1 touser=username2 ignore=y file=expfile.dmp

  ORACLE資料庫有兩類備份方法。第一類為物理備份,該方法實現資料庫的完整恢複,但資料庫必須運行在歸擋模式下(業務資料庫在非歸擋模式下運行),且需要極大的外部存放裝置,例如磁帶庫;第二類備份方式為邏輯備份,業務資料庫採用此種方式,此方法不需要資料庫運行在歸擋模式下,不但備份簡單,而且可以不需要外部存放裝置。

========================================
下面是名參數函義:

ORACLE EXP/IMP 參數詳解
2008-03-18 16:17:41 / 個人分類:初級

EXP匯出選項
關鍵字    內容

USERID  運行匯出命令的帳號的使用者名稱/口令

BUFFEER 用來取資料行的緩衝區的大小

FILE 匯出轉儲檔案的名字

COMPRESS  匯出是否應該壓縮有片段的段成一個範圍,這將會影響STORAGE子句

GRANTS 匯出時否要匯出資料庫物件上的授權

INDEXES 是否要匯出表上的索引

ROWS 是否應匯出行。如它為‘N’,那麼在匯出檔案中僅產生資料庫物件的DDL

CONSSTRAINTS 是否匯出表舊的約定條件

FULL 如設為‘Y’,那麼將執行一個整個資料庫匯出操作

OWNER 要匯出的一系列資料庫帳號,然後執行這些帳號的USER匯出操作

TABLES 要匯出的一系列表;執行這些表的TABLE匯出操作

RECORDLENGTH 轉儲匯出檔案日誌的長度(以位元組為單位),通常都使用預設,除非要在兩個不同作業系統中傳遞匯出檔案

INCTYPE 正在執行的匯出操作的類型(有效值有COMPLETE(預設值),CUMULATIVE和IVCREMENTAL)

RECORD 在增量匯出類型中的一個標記,標明是否將日誌儲存到資料字典中日誌匯出的表中

PARFILE 要傳遞給匯出的參數檔案的名字。這個檔案將包含所有參數的入口項

ANALYZE 標明是否將移對象的統計資訊寫入匯出轉儲檔案中

CONSISTENT 標明是否保留所有匯出對象的讀取一致複製

LOG 匯出日誌將要寫入的檔案的名字

MLS 標明是否要匯出MLS 標號

MLS_LABEL 規定了MLS標號的格式

IMP匯入選項
關鍵字   內容

USERID 運行匯入命令的帳號的使用者名稱/口令

BUFFEER 用來取資料行的緩衝區的大小

FILE 匯入轉儲檔案的名字

SHOW 規定檔案內容是否被顯示,而不是被執行

EGNORE 標明在執行‘CREATE’命令時,是否忽略遇到的錯誤。如果正在匯入的對象已經存在時,應使用這個參數

FULL 如設為‘Y’,那麼將執行一個整個資料庫匯入操作

FROMUSER 在FULL=N的情況下,才有參數。它是一系列的資料庫帳號,其對象應從匯出轉儲檔案中讀取

TOUSER 一系列資料庫帳號,匯出轉儲檔案扣的對象將要匯入這些帳號

GRANTS 匯入時否要匯入資料庫物件上的授權

INDEXES 是否要匯入表上的索引

ROWS 是否應匯入行。如它為‘N’,那麼在匯入檔案中執行資料庫物件的DDL

TABLES 要匯入的一系列表

RECORDLENGTH 轉儲匯入檔案日誌的長度(以位元組為單位),通常都使用預設,除非要在兩個不同作業系統中傳遞匯入檔案

INCTYPE 正在執行的匯入操作的類型(有效值有COMPLETE(預設值),CUMULATIVE和IVCREMENTAL)

ORACLE EXP/IMP 參數詳解

PARFILE 要傳遞給匯入的參數檔案的名字。這個檔案將包含所有參數的入口項

ANALYZE
標明是否將移對象的統計資訊寫入匯入轉儲檔案中

LOG 匯入日誌將要寫入的檔案的名字

MLS 標明是否要匯入MLS 標號

INDEXFILE 不執行匯入動作,只產生建索引的文本

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.