日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

ORACLE数据库备份方法

發布時間:2023/12/20 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ORACLE数据库备份方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

任何數據庫在長期使用過程中,都會存在一定的安全隱患。對于數據庫管理員來說不能僅寄希望于計算機操作系統的安全運行,而是要建立一整套的數據庫備份與恢復機制。
當數據庫發生故障后,希望能重新建立一個完整的數據庫,該處理稱為數據庫恢復?;謴妥酉到y是數據庫管理系統的一個重要組成部分?;謴吞幚黼S所發生的故障類型所影響的結構而變化。怎樣才能對Oracle數據庫進行備份?如何才能對刪除的數據再進行恢復?這是本篇文章主要講的內容。

ORACLE數據庫有兩類備份方法。

第一類為物理備份:

該方法實現數據庫的完整恢復,但數據庫必須運行在歸擋模式下(業務數據庫在非歸擋模式下運行),且需要極大的外部存儲設備,例如磁帶庫;

第二類為邏輯備份:

業務數據庫采用此種方式,此方法不需要數據庫運行在歸擋模式下,不但備份簡單,而且可以不需要外部存儲設備。

數據庫邏輯備份方法:

ORACLE數據庫的邏輯備份分為三種模式:表備份、用戶備份和完全備份。

表模式

備份某個用戶模式下指定的對象(表)。業務數據庫通常采用這種備份方式。

  • 若備份到本地文件,使用如下命令:
[root@ip-172-31-6-71 ~]# 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
  • 若直接備份到磁帶設備,使用如下命令:
[root@ip-172-31-6-71 ~]# exp icdmain/icdrows=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

注:在磁盤空間允許的情況下,應先備份到本地服務器,然后再拷貝到磁帶。出于速度方面的考慮,盡量不要直接備份到磁帶設備。

用戶模式

備份某個用戶模式下的所有對象。業務數據庫通常采用這種備份方式。

  • 若備份到本地文件,使用如下命令:
[root@ip-172-31-6-71 ~]# 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
  • 若直接備份到磁帶設備,使用如下命令:
[root@ip-172-31-6-71 ~]# 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

注:如果磁盤有空間,建議備份到磁盤,然后再拷貝到磁帶。如果數據庫數據量較小,可采用這種辦法備份。

完全模式

備份完整的數據庫,業務數據庫不采用這種備份方式。

  • 完全備份:
[root@ip-172-31-6-71 ~]# 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

注:對于數據庫備份,建議采用增量備份,即只備份上一次備份以來更改的數據。

  • 增量備份:
[root@ip-172-31-6-71 ~]# exp icdmain/icd rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0 full=y inctype=incremental file=exp_fulldb_yyyymmdd.dmp log=exp_fulldb_yyyymmdd.log (磁帶設備則為file=/dev/rmt0)

注:關于增量備份必須滿足下列條件:

  • 只對完整數據庫備份有效,且第一次需要full=y參數,以后需要inctype=incremental參數。
  • 用戶必須有EXP_FULL_DATABASE的系統角色。
  • 話務量較小時方可采用數據庫備份。
  • 如果磁盤有空間,建議備份到磁盤,然后再備份到磁帶。
  • 業務數據庫備份方法及周期

    用EXP進行備份前,先在SYS用戶下運行CATEXP.SQL文件(如果以前已運行該文件,則不要執行這個腳本),沒有特殊說明,不允許在客戶端執行備份命令。

    日結表數據備份,每月備份一次。

    要備份的表為:

    ALLSTAFFWORK_DAY_LOG ALLSTAFFWORK_DAYLOG AUTOCALLLOG_DAYLOG LOCALZONE_DAYLOG SERVICEINFO_DAYLOG TELFEELOG_DAYLOG TSHANDLEREPLY_DAYLOG

    備份命令參照表模式下的備份命令。

    業務相關表數據備份

    每周一、四備份。要備份的表為:

    Commoninformation ServiceInfo DealInfo AutoCallLog AutoFaxLog ServiceInfoAdd TelFeeLog

    備份命令參照表模式下的備份命令。

    從磁盤文件備份到磁帶

    如果首先備份到本地磁盤文件,則需要轉儲到磁帶設備上。

    • 若需查看主機上配置的磁帶設備,使用如下命令:
    [root@ip-172-31-6-71 ~]# 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的設備是可用的磁帶設備。

    • 若需查看磁帶存儲的內容,使用如下命令:
    [root@ip-172-31-6-71 ~]# 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 25626.
    • 對于新磁帶或無需保留現存數據的磁帶,使用如下命令:
    [root@ip-172-31-6-71 ~]# tar -cvf /dev/rmt0 exp_icdmain_yyyymmdd.dmp

    注:
    1. 該命令將無條件覆蓋磁帶上的現存數據。
    2. 文件名不允許包含路徑信息,如:/backup/exp_icdmain_yyyymmdd.dmp。

    • 對于需要保留現存數據的磁帶,使用如下命令:
    [root@ip-172-31-6-71 ~]# tar -rvf /dev/rmt0 exp_icdmain_yyyymmdd.dmp

    注:該命令將文件exp_icdmain_yyyymmdd.dmp追加到磁帶的末端,不會覆蓋現存的數據。

    特別強調: 如果備份時是從數據庫直接備份到磁帶上,則不可再向該磁帶上追加復制任何其他文件,否則該備份數據失效。

    若需將轉儲到磁帶上的備份文件復制到本地硬盤,使用如下命令:

    A. 將磁帶上的全部文件復制到本地硬盤的當前目錄

    [root@ip-172-31-6-71 ~]# tar -xvf /dev/rmt0

    B. 將磁帶上的指定文件復制到本地硬盤的當前目錄

    [root@ip-172-31-6-71 ~]# tar -xvf /dev/rmt0 exp_icdmain_yyyymmdd.dmp

    備份時間安排

    由于備份時對系統I/O有較大影響,所以,建議在晚上11點以后進行備份工作。

    業務數據庫Oracle版本的恢復

    恢復方案需根據備份方案確定。由于業務數據庫采用表備份和用戶備份相結合的方案,所以業務數據庫的恢復需根據實際情況采用表恢復和用戶恢復相結合的方案。

    恢復方案

    數據庫的邏輯恢復分為表恢復、用戶恢復、完全恢復三種模式。

    表模式

    此方式將根據按照表模式備份的數據進行恢復。

    恢復備份數據的全部內容
    若從本地文件恢復,使用如下命令:

    [root@ip-172-31-6-71 ~]# imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=exp_icdmain_csd_yyyymmdd.dmp log=imp_icdmain_csd_yyyymmdd.log

    若從磁帶設備恢復,使用如下命令:

    [root@ip-172-31-6-71 ~]# imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=n volsize=0file=/dev/rmt0 log=imp_icdmain_csd_yyyymmdd.log

    B. 恢復備份數據中的指定表
    若從本地文件恢復,使用如下命令:

    [root@ip-172-31-6-71 ~]# imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=exp_icdmain_csd_yyyymmdd.dmp log=imp_icdmain_csd_yyyymmdd.log tables=commoninformation,serviceinfo

    若從磁帶設備恢復,使用如下命令:

    [root@ip-172-31-6-71 ~]# 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

    用戶模式

    此方式將根據按照用戶模式備份的數據進行恢復

    • 恢復備份數據的全部內容

    若從本地文件恢復,使用如下命令:

    [root@ip-172-31-6-71 ~]# imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=exp_icdmain_yyyymmdd.dmp log=imp_icdmain_yyyymmdd.log

    若從磁帶設備恢復,使用如下命令:

    [root@ip-172-31-6-71 ~]# 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
    • 恢復備份數據中的指定表

    若從本地文件恢復,使用如下命令:

    [root@ip-172-31-6-71 ~]# imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=exp_icdmain_yyyymmdd.dmp log=imp_icdmain_yyyymmdd.log tables=commoninformation,serviceinfo

    若從磁帶設備恢復,使用如下命令:

    [root@ip-172-31-6-71 ~]# 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

    完全模式

    如果備份方式為完全模式,采用下列恢復方法:

    若從本地文件恢復,使用如下命令:

    [root@ip-172-31-6-71 ~]# imp system/manager rows=y indexes=n commit=y buffer=65536 feedback=100000

    END

    Oracle數據庫的常用的備份方法就寫這么多,對于無論哪一種類型的數據庫,備份對數據庫來說都是重中之重的事情,如果數據庫沒有備份,那么一旦數據庫掛掉,那么將是災難性的,所以說互聯網中數據才是最重要的。

    總結

    以上是生活随笔為你收集整理的ORACLE数据库备份方法的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。