目錄 1簡介 2備份的種類 2.1物理備份 2.1.1冷備份 2.1.2熱備份 2.2邏輯備份 3備份方案 3.1冷備份方案的實施 3.1.1冷備份數(shù)據(jù)庫的步驟 3.2熱備份方案的實施 3.2.1熱備份數(shù)據(jù)庫的步驟 3.3邏輯備份export備份 3.3.1 export備份數(shù)據(jù)庫的步驟 3.4異機備份 3.4.1被動式異機備份 3.4.2主動式異機備份 1 簡介本手冊描述Oracle數(shù)據(jù)庫的備份還原機制,幫助應用Oracle數(shù)據(jù)庫,為了保證數(shù)據(jù)庫的安全,避免外界因素造成數(shù)據(jù)庫中數(shù)據(jù)丟失,有效的備份可以更好的重建數(shù)據(jù)庫,在修改刪除表或者表空間以前或者以后執(zhí)行適當?shù)膫浞菔窍喈敱匾?,備份時建議使用直接登錄服務器或者利用ssh工具登錄服務器利用相關的系統(tǒng)命令進行操作,避免使用PLSQL工具進行操作,影響備份的結果,本文檔適合有一定Oracle經(jīng)驗人員進行閱讀,以OracleLinux 6.5為環(huán)境基礎,oracle 版本為11.2.0.4,其他的版本請自行測試,避免出現(xiàn)其他的問題。 2 備份的種類而對于ORACLE數(shù)據(jù)庫的備份方法主要分為兩大類。第一類是物理備份,第二類是邏輯備份。而物理備份又分為冷備份和熱備份。 2.1 物理備份2.1.1 冷備份:冷備份發(fā)生在數(shù)據(jù)庫已經(jīng)正常關閉的情況下,當正常關閉時會提供給我們一個完整的數(shù)據(jù)庫。冷備份時將關鍵性文件拷貝到另外的位置的一種說法。對于備份Oracle信息而言,冷備份時最快和最安全的方法。 優(yōu)點:能簡單快速地備份。能簡單快速地恢復。執(zhí)行簡單。 缺點:必須關閉數(shù)據(jù)庫,不能進行點恢復。 2.1.2 熱備份:熱備份是在數(shù)據(jù)庫運行的情況下,采用archivelogmode方式備份數(shù)據(jù)庫的方法。所以,如果你有昨天夜里的一個冷備份而且又有今天的熱備份文件,在發(fā)生問題時,就可以利用這些資料恢復更多的信息。熱備份要求數(shù)據(jù)庫在Archivelog方式下操作,并需要大量的檔案空間。一旦數(shù)據(jù)庫運行在archivelog狀態(tài)下,就可以做備份了。 優(yōu)點:備份時數(shù)據(jù)庫可以是打開的。熱備份可以用來進行點恢復。初始化參數(shù)文件、歸檔日志在數(shù)據(jù)庫正常運行時是關閉的,可用操作系統(tǒng)命令拷貝。 缺點:執(zhí)行過程復雜。由于數(shù)據(jù)庫不間斷運行,測試比較困難。不能用操作系統(tǒng)實用工具拷貝打開的文件。必須使用Oracle提供的ocopy工具來拷貝打開的文件。熱備份可能造成CPU、I/O過載,應在數(shù)據(jù)庫不太忙時進行。 2.2 邏輯備份邏輯備份是利用export進行數(shù)據(jù)備份。這個直接根據(jù)提示來就可完成。 優(yōu)點:能執(zhí)行對象或者行恢復。備份和恢復速度更快。能夠跨操作系統(tǒng)平臺遷移數(shù)據(jù)庫。數(shù)據(jù)庫可一直運行。 缺點:export并不是冷備份和熱備份的替代工具。冷、熱備份可保護介質失效。export備份可保護用戶或應用錯誤。 3 備份方案3.1冷備份方案的實施3.1.1冷備份數(shù)據(jù)庫的步驟1、關閉數(shù)據(jù)庫; 使用命令 shutdown immediate; 2、備份所有相關的數(shù)據(jù)庫文件:
1)root用戶登錄服務器mkdir /backup/ctl /backup/dbf /backup/redo/backup/dbs #新建Oracle數(shù)據(jù)庫備份目錄 chown -Roracle:oinstall /backup/ #設置目錄權限為oinstall用戶組的oracle用戶 (用戶oracle與用戶組oinstall是在安裝Oracle數(shù)據(jù)庫時設置的) 2) 備份相關的文件su- oracle #跳轉到oracle用戶 cp /oradata/orcl/control01.ctl /u01/app/oracle/fast_recovery_area/orcl/control02.ctl/backup/ctl#復制控制文件到指定目錄/backup/ctl cp /oradata/orcl/*.dbf /backup/dbf#復制數(shù)據(jù)文件到指定的目錄/backup/dbf cp /oradata/orcl/redo*.log /backup/redo #復制redo日志文件到指定目錄/backup/redo cp /u01/app/oracle/product/11.2.0/dbhome_1/dbs/*/backup/dbs #復制參數(shù)文件到指定目/backup/dbs 3.2 熱備份方案的實施3.2.1熱備份數(shù)據(jù)庫的步驟1、將數(shù)據(jù)庫開啟歸檔模式 SQL> shutdown immediate;關閉數(shù)據(jù)庫 Database closed. Database dismounted. ORACLE instance shut down. SQL>startup mount;數(shù)據(jù)庫進入mount模式 ORACLE instance started. SQL> alter database archivelog;啟用歸檔模式 Database altered. SQL>alter database open;打開數(shù)據(jù)庫 Database altered. SQL>alter system archive log start;啟用自動歸檔模式 System altered. 查看是否啟用了歸檔模式 SQL> archive log list; 如果顯示下邊的提示代表啟動歸檔模式,且自動歸檔模式開啟 非歸檔日志模式下產(chǎn)生的備份日志對于歸檔模式已經(jīng)不可用了,這一步非常重要! 1、拷貝參數(shù)文件到備份目錄(參數(shù)文件在數(shù)據(jù)庫啟動后處于關閉狀態(tài)) cp/u01/app/oracle/product/11.2.0/dbhome_1/dbs/init.ora/backup/reback/ 2、將需要備份的表空間(TS_DC)設為備份狀態(tài): SQL> ALTER TABLESPACETS_DC BEGIN BACKUP;將表空間TS_DC設置為開啟備份狀態(tài) Tablespace altered. [oracle@oracle orcl]$ cp/oradate/orcl/TS_DC.DBF /backup/reback/拷貝數(shù)據(jù)文件到備份目錄 SQL> ALTER TABLESPACETS_DC END BACKUP;將表空間TS_DC設置為關閉備份狀態(tài) Tablespace altered. 如還有其他要備份的表空間,重復步驟2 SQL> archive log list;獲取當前的日志順序號 如下所示,日志序列號為4-6(從oldest online logsequence開始到current log sequence的聯(lián)機redo日志應該是熱備份的一部分) SQL>ALTER SYSTEM SWITCHLOGFILE ;強制日志歸檔 System altered. cp -R/u01/app/oracle/fast_recovery_area/ORCL/archivelog/ /backup/reback/備份歸檔日志文件到/backup/reback/(arc文件為歸檔日志) SQL> ALTER DATABASEBACKUP CONTROLFILE TO '/backup/reback/control.bkp';將控制文件備份到/backup/reback/下,備份的后綴名無所謂 Database altered. 檢查備份的文件是否齊全(1、歸檔日志2、控制文件 3、參數(shù)文件 4、數(shù)據(jù)文件) 注意事項,步驟中涉及的fast_recovery_area目錄為閃回區(qū),在不更改默認歸檔日志的情況下會將日志放在閃回區(qū)中,閃回區(qū)很容易爆滿,閃回區(qū)的大小在新建數(shù)據(jù)庫實例時候可以設置,當不勾選時候是無限制的拓展。 3.3 邏輯備份export備份 3.3.1 export備份數(shù)據(jù)庫的步驟3.3.1.1 export自動備份數(shù)據(jù)庫的步驟1) root用戶登錄服務器mkdir -p /backup/oracledata #新建Oracle數(shù)據(jù)庫備份目錄 chown -R oracle:oinstall /backup/oracledata -R #設置目錄權限為oinstall用戶組的oracle用戶 (用戶oracle與用戶組oinstall是在安裝Oracle數(shù)據(jù)庫時設置的) 2) 創(chuàng)建目錄對象因為使用expdp命令需要使用到目錄對象(directory),所以首先需要創(chuàng)建目錄對象,并賦予某個用戶對目錄對象的操作權限。 操作步驟如下: su- oracle#切換到oracle用戶 sqlplus/ as sysdba#切換到SQLPLUS環(huán)境 執(zhí)行以下命令: createdirectory expdp_bak_dir as '/backup/oracledata';#指定EXPDP輸出目錄 grantcreate any directory to system;#授予system權限 3) 編輯自動備份腳本vi/backup/oracledata/ordatabak.sh #新建文件,輸入以下代碼 #/bin/sh exportORACLE_SID=orcl exportORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 exportNLS_LANG=american_america.zhs16gbk exportDATA_DIR=/backup/oracledata now=`date %Y%m%d%H%M%S ` dmpfile=db$now.dmp echostart exp $dmpfile ... /u01/app/oracle/product/11.2.0/dbhome_1/bin/expdp system/newcapecDUMPFILE=$dmpfile logfile=db$now.log DIRECTORY=expdp_bak_dir full=y echo'Delete the file bakup before 6 days...' find/backup/oracledata/ -mtime 6 -name '*.dmp' -exec rm -rf '{}' ; echo'Delete the file bakup successfully. ' echo'Bakup completed.' chmod x/backup/oracledata/ordatabak.sh #添加腳本執(zhí)行權限 代碼中紅色的orcl修改為自己的實際數(shù)據(jù)庫名稱system/newcapec修改為實際的用戶名和密碼 3.3.1.2 Export手動備份數(shù)據(jù)庫的步驟1) root用戶登錄服務器mkdir -p /backup/ #新建Oracle數(shù)據(jù)庫備份目錄 chown -R oracle:oinstall /backup/ -R #設置目錄權限為oinstall用戶組的oracle用戶 (用戶oracle與用戶組oinstall是在安裝Oracle數(shù)據(jù)庫時設置的) 2) 手動備份的命令一、全量備份整個庫為TS_DC文件 1、 設置窗口字符集格式 NLS_LANG=AMERICAN_AMERICA.AL32UTF8 2、 導出全量信息到備份文件目錄/backup中的TD_DC文件以及日志文件 expdp system/111111@orcl file=/backup/TS_DC.dmplog=/backup/TS_DC.log full=y; 二、按用戶備份數(shù)據(jù)庫為user文件 1、 設置窗口字符集格式 NLS_LANG=AMERICAN_AMERICA.AL32UTF8 2、 導出user用戶信息到備份文件目錄/backup中的user文件以及日志文件 expdp system/111111@orcl owner=user file=/backup/user.dmplog=/backup/user.log; 3.4 異機備份3.4.1 被動式異機備份被動式異機備份指在熱備份或者邏輯備份完成成將數(shù)據(jù)及時傳輸?shù)搅硪慌_機器,保持多份數(shù)據(jù),避免因服務器無法正常啟動后數(shù)據(jù)無法取出,造化數(shù)據(jù)無法恢復。 這里主要介紹在window環(huán)境中使用wincsp軟件通過定時任務自動比較同步下載數(shù)據(jù)庫備份信息 1、 首先在window系統(tǒng)中安裝winscp軟件,可以在網(wǎng)上自行下載 |
|
來自: 昵稱48052010 > 《待分類》