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