<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    樂樂隨筆

    綠葉

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      14 Posts :: 0 Stories :: 2 Comments :: 0 Trackbacks

    Oracle數據庫備份命令Exp/Imp

    ORACLE數據庫有兩類備份方法。第一類為物理備份,該方法實現數據庫的完整恢復,但數據庫必須運行在歸擋模式下(業務數據庫在非歸擋模式下運行)



     
      ORACLE數據庫有兩類備份方法。第一類為物理備份,該方法實現數據庫的完整恢復,但數據庫必須運行在歸擋模式下(業務數據庫在非歸擋模式下運行),且需要極大的外部存儲設備,例如磁帶庫;第二類備份方式為邏輯備份,業務數據庫采用此種方式,此方法不需要數據庫運行在歸擋模式下,不但備份簡單,而且可以不需要外部存儲設備。數據庫邏輯備份方法
    ORACLE數據庫的邏輯備份分為三種模式:表備份、用戶備份和完全備份。
      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
    對于數據庫備份,建議采用增量備份,即只備份上一次備份以來更改的數據。增量備份命令:
    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.
    只對完整數據庫備份有效,且第一次需要full=y參數,以后需要inctype=incremental參數。
    2. 用戶必須有EXP_FULL_DATABASE的系統角色。
    3. 話務量較小時方可采用數據庫備份。
    4. 如果磁盤有空間,建議備份到磁盤,然后再備份到磁帶。業務數據庫備份方法及周期用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

    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
    對于數據庫備份,建議采用增量備份,即只備份上一次備份以來更改的數據。增量備份命令:
    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.
    只對完整數據庫備份有效,且第一次需要full=y參數,以后需要inctype=incremental參數。
    2. 用戶必須有EXP_FULL_DATABASE的系統角色。
    3. 話務量較小時方可采用數據庫備份。
    4. 如果磁盤有空間,建議備份到磁盤,然后再備份到磁帶。業務數據庫備份方法及周期
    用EXP進行備份前,先在SYS用戶下運行CATEXP.SQL文件(如果以前已運行該文件,則不要執行這個腳本)。
    沒有特殊說明,不允許在客戶端執行備份命令。
    備份命令參照表模式下的備份命令。
    從磁盤文件備份到磁帶
    如果首先備份到本地磁盤文件,則需要轉儲到磁帶設備上。
    1. 若需查看主機上配置的磁帶設備,使用如下命令: sdev -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 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
    對于數據庫備份,建議采用增量備份,即只備份上一次備份以來更改的數據。增量備份命令:
    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.
    只對完整數據庫備份有效,且第一次需要full=y參數,以后需要inctype=incremental參數。
    2. 用戶必須有EXP_FULL_DATABASE的系統角色。
    3. 話務量較小時方可采用數據庫備份。
    4. 如果磁盤有空間,建議備份到磁盤,然后再備份到磁帶。業務數據庫備份方法及周期
    用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=表名
    注:要恢復的表名參照備份的表名
      。恢復是在原表基礎上累加數據
      。沒有特殊說明,不允許在客戶端執行恢復命令
    posted on 2010-08-19 16:57 綠葉 閱讀(240) 評論(0)  編輯  收藏 所屬分類: 技術總結
    主站蜘蛛池模板: jizzjizz亚洲| 污视频在线免费观看| 天天操夜夜操免费视频| 国产成人精品日本亚洲18图| 1000部夫妻午夜免费| 亚洲午夜电影在线观看| 日韩精品成人无码专区免费| 亚洲性线免费观看视频成熟| 在线免费视频一区| 亚洲AV无码一区二区三区鸳鸯影院| 午夜免费福利网站| 真人无码作爱免费视频| 久久国产成人精品国产成人亚洲| 丁香花在线观看免费观看图片 | 亚洲AV无码成人精品区天堂| 国产精品99精品久久免费| 亚洲视频手机在线| 在线a毛片免费视频观看| 成人国产网站v片免费观看| 亚洲美女在线国产| 美女被cao网站免费看在线看| 日本久久久久亚洲中字幕| 无码中文在线二区免费| 亚洲变态另类一区二区三区| 亚洲国产综合精品一区在线播放| 三级网站在线免费观看| 亚洲春色在线观看| 一本色道久久88综合亚洲精品高清| 中文字幕乱码系列免费| 91亚洲精品麻豆| 亚洲国产精品一区二区三区久久| 国产一级在线免费观看| 亚洲制服丝袜第一页| 免费观看国产精品| 伊人久久免费视频| 亚洲av乱码中文一区二区三区| 狠狠亚洲婷婷综合色香五月排名 | 亚洲精品无码mⅴ在线观看| 亚洲免费日韩无码系列| h片在线免费观看| 麻豆va在线精品免费播放|