熱備份較冷備份的主要差別就是不會丢失在備份後更新的資料,
下面為SQL腳本:
CREATE TABLE TEST
(
T_ID NUMBER,
T_VALUE VARCHAR2(30)
);
/
INSERT INTO TEST VALUES(100,'WANG');
INSERT INTO TEST VALUES(200,'DONG');
COMMIT;
SELECT * FROM TEST;
T_ID T_VALUE
-----------------------
100 WANG
200 DONG
1.SHUTDOWN IMMEDIATE;//關閉資料庫
2.STARTUP MOUNT//啟動資料執行個體,加載資料庫
注:STARTUP NOMOUNT//啟動資料執行個體
STARTUP MOUNT//啟動資料執行個體,加載資料庫
STARTUP //啟動資料執行個體,加載資料庫并打開資料庫
3.ALTER DATABASE ARCHIVELOG;//設定資料庫日志為存檔模式
4.ALTER SYSTEM SET LOG_ARCHIVE_START=TRUE SCOPE=SPFILE;//重新開機資料庫
5.ALTER DATABASE OPEN;//打開資料庫
6.ALTER TABLESPACE USERS BEGIN BACKUP;//将資料庫設定備份模式
7.HOST COPY D:\oracle\oradata\orcl\*.dbf D:\BAK\ //拷貝資料檔案至備份檔案中
8.ALTER TABLESPACE USERS END BACKUP;//結束備份狀态
9.ALTER SYSTEM SWITCH LOGFILE;//切換日志,使目前日志歸檔
--------至此,熱備份已經完成,備份檔案儲存在D:\BAK\目錄下--------
此時再插入資料,
INSERT INTO TEST VALUES(300,'XIN');
以下是故障重制
1.SHUTDOWN IMMEDIATE
2.STARTUP MOUNT
3.HOST DEL D:\oracle\oradata\orcl\USER01.dbf //故意删除一個資料檔案,制造故障
4.SHUTDOWN IMMEDIATE
5.STARTUP
//此時會警告,無法找到指定的檔案DATA FILE 4,即是剛才删掉的資料檔案,DATA FILE 4隻是
個代号,也有可能是DATA FILE 1,DATA FILE 2,等等
6.ALTER DATABASE DATAFILE 4 OFFLINE DROP;//讓這個出故障的檔案暫時先脫機
7.ALTER DATABASE OPEN;//打開資料庫
8.HOST COPY D:\BAK\ HOST COPY D:\oracle\oradata\orcl\*.dbf//将前面備份的檔案拷貝到系統目錄中
9.RECOVER DATAFILE 4;//這一步,偶爾會出錯,無法正确執行,而且無法正常關閉資料庫,請如此這般
操作,SHUTDOWN ABORT; STARTUP;
10.ALTER DATABASE DATAFILE 4 ONLINE;
11.SELECT * FROM TEST;
300 XIN
發現,備份之後又更新的資料沒有丢失!