1.冷備份
如果數據庫可以正常關閉,而且允許關閉足夠長的時間,那么就可以采用冷備份(脫機備份),可以是歸檔冷備份,也可以是非歸檔冷備份。其方法是首先關閉數據庫,然后備份所有的物理文件,包括數據文件、控制文件、聯機重做日志文件等。
在SQL*Plus環境中進行數據庫冷備份的步驟如下:
(1)啟動SQL*Plus,以SYSDBA身份登陸數據庫。
(2)查詢當前數據庫所有數據文件、控制文件、聯機重做日志文件的位置。
SQL>SELECT file_name FROM dba_data_files;
SQL>SELECT member FROM v$logfile;
SQL>SELECT value FROM v$parameter WHERE name=’control_files’;
(3)關閉數據庫。
SQL>SHUTDOWN IMMEDIATER
(4)復制所有數據文件、聯機重做日志文件以及控制文件到備份磁盤。可以直接在操作系統中使用復制、粘貼方式進行,也可以使用下面的操作系統命令完成:
SQL>HOST COPY 原文件名稱 目標路徑名稱
(5)重新啟動數據庫
SQL>STARTUP
冷備份優點:
只需拷貝文件即可,是非常快速的備份方法。
只需將文件再拷貝回去,就可以恢復到某一時間點上。
與數據庫歸檔的模式相結合可以使數據庫很好地恢復。
維護量較少,但安全性確相對較高。
2.熱備份
雖然冷備份簡單、快捷,但是在很多情況下,例如數據庫運行於24*7狀態時(每天工作24小時,每周工作7天),沒有足夠的時間可以關閉數據庫進行冷備份,這時只能采用熱備份。
熱備份是數據庫在歸檔模式下進行的數據文件、控制文件、歸檔日志文件等的備份。
在SQL*Plus環境中進行數據庫完全熱備份的步驟如下:
(1)啟動SQL*Plus,以SYSDBA身份登陸數據庫。
(2)將數據庫設置為歸檔模式。
由於熱備份是數據庫處於歸檔模式下的備份,因此在熱備份之前需要保證數據庫已經處於歸檔模式。可以執行ARCHIVE LOG LIST命令,查看當前數據庫是否處於歸檔日志模式。如果沒有處於歸檔日志模式,需要先將數據庫轉換為歸檔模式,並啟動自動存檔。
(3)以表空間為單位,進行數據文件備份。
① 查看當前數據庫有哪些表空間,以及每個表空間中有哪些數據庫文件。
SQL>SELECT tablespace_name,file_name FROM dba_data_files
ORDER BY tablespace_name;
② 分別對每個表空間中的數據文件進行備份,其方法為:
- 將需要備份的表空間(如USERS)設置為備份狀態。
SQL>ALTER TABLESPACE USERS BEGIN BACKUP;
- 將表空間中所有的數據文件復制到備份磁盤。
SQL>HOST COPY
E:\app\admin\product\11.2.0\dbhome_1\oradata\ORCL\USERS01.DBF
E;\app\admin\backup\USERS01.DBF
- 結束表空間的備份狀態。
SQL>ALTER TABLESPACE USERS END BACKUP;
對數據庫中所有表空間分別采用該步驟進行備份。
(4)備份控制文件
通常應該在數據庫物理結構做出修改之后,如添加、刪除或重命名數據文件,添加、刪除或修改表空間,添加或刪除重做日志文件和重做日志文件組等,都需要重新備份控制文件。
① 將控制文件備份為二進制文件。
SQL>ALTER DATABASE BACKUP CONTROLFILE TO ‘E;\app\admin\backup\CONTROL.BKP’;
② 將控制文件備份為文本文件。
SQL>ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
(5)備份其他物理文件
① 歸檔當前的聯機重做日志文件。
SQL>ALTER SYSTEM ARCHIVE LOG CURRENT;
歸檔當前的聯機重做日志文件,也可以通過日志切換完成。
SQL>ALTER SYSTEM SWITCH LOGFILE;
② 備份歸檔重做日志文件,將所有的歸檔重做日志文件復制到備份磁盤中。
③ 備份初始化參數文件,將初始化參數文件復制到備份磁盤中。