備份類型 |
備份方法 |
示例 |
數據文件 |
操作系統命令或工具 |
C:\COPY datafile1.ora datafile.bak |
歸檔重做日志文件 |
操作系統命令或工具 |
C:\COPY log_01_23.arc log_01_23.bak |
控制文件 |
SQL命令 |
SQL>ALTER DATABASE BACKUP CONTROLFILE TO confile.bak; |
初始化參數文件 |
SQL命令 |
SQL>CREATE PFILE=SIDinit.ora FROM SPFILE; |
網絡配置與口令文件 |
操作系統命令 |
C:\COPY tnsnames.ora tnsnames.bak |
數據庫邏輯對象(表、索引、存儲過程等) |
Export工具 |
C:\EXPORT system/manager TABLE =hr.employees file=emp.dmp |
如果數據庫運行在不歸檔模式下,可以對數據庫進行不一致的完全備份,或者對某個表空間或數據文件進行單獨的備份。
如果數據庫運行在不歸檔模式下,只能在關閉狀態下對數據庫進行一致的完全備份
一、 表空間或數據文件的脫機備份
如果數據庫運行在歸檔模式下,可以在打開狀態下對數據庫中處于脫機狀態的表空間或數據文件進行備份。在備份期間數據庫中其它的表空間或數據文件仍然可以被用戶使用。
SQL>ALTER TABLESPACE users OFFLINE NORMAL;
C:\COPY E:\oracle\oradata\users01.dbf F:\backup\users01.bak
SQL>ALTER TABLESPACE users ONLINE;
SQL>ALTER SYSTEM ARCHIVE LOG CURRENT;
二、 表空間或數據文件的聯機備份
如果數據庫運行在歸檔模式下,可以在打開狀態下對數據庫中處于聯機狀態的表空間或數據文件進行備份。在備份期間這些表空間或數據文件仍然可以被用戶使用。
SQL>ALTER TABLESPACE users BEGIN BACKUP;
C:\COPY E:\oracle\oradata\users01.dbf F:\backup\users01.bak
SQL>ALTER TABLESPACE users END BACKUP;
SQL>ALTER SYSTEM ARCHIVE LOG CURRENT;
三、 處理備份故障
如果在備份過程中發生故障,導致備份突然中斷,那么在下一次啟動數據庫時備份表空間的數據文件將會仍然處于備份模式下,因此ORACLE會要求進行數據庫恢復。
1、 利用ALTER DATABASE END BACKUP語句退出備份模式
SQL>STARTUP MOUNT
SQL>SELECT * FROM V$BACKUP WHERE STATUS=’ACTIVE’
(查詢哪些數據文件處于備份模式)
SQL>ALTER DATABASE END BACKUP;
SQL>ALTER DATABASE OPEN;
2、 利用RECOVER命令退出備份模式
SQL>STARTUP MOUNT
SQL>RECOVER DATABASE
SQL>ALTER DATABASE OPEN;
四、 控制文件備份為二進制文件
SQL>ALTER DATABASE BACKUP CONTROLFILE TO
‘E:\backup\cfile.bak’ REUSE;
五、 控制文件備份到跟蹤文件中
SQL>ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
(數據庫處于加載狀態時,利用上面語句可以將控制文件備份到跟蹤文件中)