注意:冷備份——可以備份ARCHIVELOG模式的資料庫,也可以備份NOARCHIVELOG模式的資料庫。熱備份——只能備份ARCHIVELOG模式的資料庫。換句話說,就是:ARCHIVELOG模式——可以冷備份,也可以熱備份。NOARCHIVELOG模式——只能冷備份。
冷備份步驟:
1. 列出要備份的所有相關檔案的最新列表。
2. 使用SHUTDOWN NORMAL、SHUTDOWN IMMEDIATE 或SHUTDOWN TRANSACTIONAL 命令關閉Oracle 常式。
3. 使用作業系統備份公用程式備份所有資料檔案和控制檔案。您還可以備份重做記錄檔,儘管這不是必需的。您還應該備份參數檔案和口令檔案。
4. 重新啟動Oracle 常式。
熱備份步驟:
只要符合以下兩個標準,您就可以在使用資料庫的同時,執行資料表空間或各個資料檔案的備份:• 資料庫設定為ARCHIVELOG 模式。• 通過啟用Oracle 自動歸檔(ARCn) 進程或手動歸檔重做記錄檔,確保聯機重做日誌得到歸檔。
如何執行聯機資料表空間備份:
1. 通過發出ALTER TABLESPACE...BEGIN BACKUP 命令,將資料檔案或資料表空間設定為備份模式。這樣可避免資料檔案頭中的序號發生變化,以便恢複時可以從備份開始時間應用日誌。即使資料檔案處於備份模式,仍可用於正常交易處理。SQL> alter tablespace users begin backup SQL> ALTER DATABASE BEGIN BACKUP;
2. 使用作業系統備份公用程式將資料表空間中的所有資料檔案複製到備份儲存中。如果按順序備份每個資料表空間,備份檔案中的記錄序號可能不同。 cp /ORADATA/u03/users01.dbf /BACKUP/users01.dbf
3. 備份資料表空間的各資料檔案後,發出下面的命令將它們設定為正常模式:SQL> alter tablespace users end backup SQL> ALTER DATABASE END BACKUP;
4. 歸檔尚未歸檔的重做日誌,以便歸檔恢複資料表空間備份所需的重做日誌,如下所示:SQL> alter system archive log current
對所有資料表空間重複這些步驟,包括SYSTEM 和還原段資料表空間。ALTER TABLESPACE BEGIN BACKUP 和ALTER TABLESPACE END BACKUP 命令之間的間隔時間應盡量縮短,因為修改後的塊寫入重做記錄檔將導致產生更多的重做資訊。因此建議您每次執行一個資料表空間的聯機備份。
熱備份實戰:
1.確定要備份的資料表空間
- SQL> select file_id,file_name,tablespace_name from dba_data_files where tablespace_name = 'USERS';
-
- FILE_ID FILE_NAME TABLESPACE_NAME
- ---------- -------------------------------------------------- ------------------------------
- 4 /u01/app/oracle/oradata/orcl/users01.dbf USERS
-
- SQL> select * from v$backup where file# = 4;
-
- FILE# STATUS CHANGE# TIME
- ---------- ------------------ ---------- --------------
- 4 NOT ACTIVE 0
2.開始備份
- SQL> alter tablespace users begin backup;
-
- 資料表空間已更改。
-
- SQL> select * from v$backup where file# = 4;
-
- FILE# STATUS CHANGE# TIME
- ---------- ------------------ ---------- --------------
- 4 ACTIVE 992599 07-10月-11
3.複製資料檔案
- SQL> ! cp /u01/app/oracle/oradata/orcl/users01.dbf /u01/app/oracle/backup/users01.dbf
4.結束備份
- SQL> alter tablespace users end backup;
-
- 資料表空間已更改。
-
- SQL> select * from v$backup where file# = 4;
-
- FILE# STATUS CHANGE# TIME
- ---------- ------------------ ---------- --------------
- 4 NOT ACTIVE 992599 07-10月-11
手動備份控制檔案:
建立二進位映像:
- SQL> alter database backup controlfile to '/u01/app/oracle/backup/control01.ctl';
-
- 資料庫已更改。
建立文本追蹤檔案:
- SQL> alter database backup controlfile to trace as '/u01/app/oracle/backup/control01.sql';
-
- 資料庫已更改。
這樣就會產生建立控制檔案的sql語句指令碼,此指令碼分為兩部分,noarchive模式使用的和archive模式使用的。
完全恢複與resetlogs
很多朋友經常會對完全恢複與resetlogs產生誤解,以為使用resetlogs方式開啟資料庫就是不完全恢複,這種看法是不正確的。只要擁有當前的記錄檔,那麼就能夠對資料庫執行完全恢複,而是否需要使用resetlogs方式開啟,則取決於是否使用的備份的控制檔案。如果使用的備份的控制檔案則需要使用resetlogs方式開啟資料庫;如果擁有當前的控制檔案或者通過重建控制檔案來恢複,就不需要通過resetlogs方式開口資料庫。