ORACLE数据库备份方法
前言
任何數據庫在長期使用過程中,都會存在一定的安全隱患。對于數據庫管理員來說不能僅寄希望于計算機操作系統的安全運行,而是要建立一整套的數據庫備份與恢復機制。
當數據庫發生故障后,希望能重新建立一個完整的數據庫,該處理稱為數據庫恢復?;謴妥酉到y是數據庫管理系統的一個重要組成部分?;謴吞幚黼S所發生的故障類型所影響的結構而變化。怎樣才能對Oracle數據庫進行備份?如何才能對刪除的數據再進行恢復?這是本篇文章主要講的內容。
ORACLE數據庫有兩類備份方法。
第一類為物理備份:
該方法實現數據庫的完整恢復,但數據庫必須運行在歸擋模式下(業務數據庫在非歸擋模式下運行),且需要極大的外部存儲設備,例如磁帶庫;
第二類為邏輯備份:
業務數據庫采用此種方式,此方法不需要數據庫運行在歸擋模式下,不但備份簡單,而且可以不需要外部存儲設備。
數據庫邏輯備份方法:
ORACLE數據庫的邏輯備份分為三種模式:表備份、用戶備份和完全備份。
表模式
備份某個用戶模式下指定的對象(表)。業務數據庫通常采用這種備份方式。
- 若備份到本地文件,使用如下命令:
- 若直接備份到磁帶設備,使用如下命令:
注:在磁盤空間允許的情況下,應先備份到本地服務器,然后再拷貝到磁帶。出于速度方面的考慮,盡量不要直接備份到磁帶設備。
用戶模式
備份某個用戶模式下的所有對象。業務數據庫通常采用這種備份方式。
- 若備份到本地文件,使用如下命令:
- 若直接備份到磁帶設備,使用如下命令:
注:如果磁盤有空間,建議備份到磁盤,然后再拷貝到磁帶。如果數據庫數據量較小,可采用這種辦法備份。
完全模式
備份完整的數據庫,業務數據庫不采用這種備份方式。
- 完全備份:
注:對于數據庫備份,建議采用增量備份,即只備份上一次備份以來更改的數據。
- 增量備份:
注:關于增量備份必須滿足下列條件:
業務數據庫備份方法及周期
用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備份命令參照表模式下的備份命令。
從磁盤文件備份到磁帶
如果首先備份到本地磁盤文件,則需要轉儲到磁帶設備上。
- 若需查看主機上配置的磁帶設備,使用如下命令:
顯示的結果如下例所示:
rmt0 Available 30-58-00-2,0 SCSI 4mm Tape Drive rmt1 Defined 30-58-00-0,0 SCSI 4mm Tape Drive標明Available的設備是可用的磁帶設備。
- 若需查看磁帶存儲的內容,使用如下命令:
顯示的結果如下例所示:
-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.- 對于新磁帶或無需保留現存數據的磁帶,使用如下命令:
注:
1. 該命令將無條件覆蓋磁帶上的現存數據。
2. 文件名不允許包含路徑信息,如:/backup/exp_icdmain_yyyymmdd.dmp。
- 對于需要保留現存數據的磁帶,使用如下命令:
注:該命令將文件exp_icdmain_yyyymmdd.dmp追加到磁帶的末端,不會覆蓋現存的數據。
特別強調: 如果備份時是從數據庫直接備份到磁帶上,則不可再向該磁帶上追加復制任何其他文件,否則該備份數據失效。
若需將轉儲到磁帶上的備份文件復制到本地硬盤,使用如下命令:
A. 將磁帶上的全部文件復制到本地硬盤的當前目錄
[root@ip-172-31-6-71 ~]# tar -xvf /dev/rmt0B. 將磁帶上的指定文件復制到本地硬盤的當前目錄
[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=0file=/dev/rmt0 log=imp_icdmain_csd_yyyymmdd.logB. 恢復備份數據中的指定表
若從本地文件恢復,使用如下命令:
若從磁帶設備恢復,使用如下命令:
[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=100000END
Oracle數據庫的常用的備份方法就寫這么多,對于無論哪一種類型的數據庫,備份對數據庫來說都是重中之重的事情,如果數據庫沒有備份,那么一旦數據庫掛掉,那么將是災難性的,所以說互聯網中數據才是最重要的。
總結
以上是生活随笔為你收集整理的ORACLE数据库备份方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hdu 1276 士兵队列训练问题 (详
- 下一篇: SequoiaDB巨杉数据库许建辉:夯实