l 實例故障sql
由ORACLE內部異常、操做系統故障或其它相關軟件引發,致使ORACLE實例中的進程或內存區出現故障或數據庫沒法正常關閉,這種故障稱爲實例故障。實例故障沒有本質上的破壞,無須對數據庫進行恢復,只要重啓數據庫就可正常。數據庫
l 媒介故障windows
媒介故障主要是因爲磁盤驅動器出問題、磁盤塊壞、數據文件被刪除或損壞等引發,文檔中所介紹的備份方法基本爲這種故障而設計的。數組
與數據庫備份最緊密相關的數據庫設置相信應該是有無重作日誌的歸檔,依此可將數據庫劃分爲兩大類型:安全
l noarchivelog服務器
重作日誌歸檔的備份,這種狀況數據運行性能高,但數據庫恢復不夠靈活。對於無歸檔的備份,可採用的方式比較簡單,主要是以邏輯備份和脫機準備份爲主。當數據文件或控制文件被損壞或丟失的狀況下只能作全數據庫的恢復,且只能恢復至備份的時間點。oracle
l archivelogide
有重作日誌歸檔的備份,重作日誌的歸檔將很大程度影響數據庫的運行性能,但對數據庫安全性要求極高的數據庫系統必需要有重作日誌的歸檔。這種狀況的備份和恢復可採用的形式較多,有邏輯備份、脫機冷備份、聯機熱備份。可執行基於時間的恢復,單個數據文件的恢復。工具
因爲ORACLE數據庫建立時缺省是爲NOARCHIVELOG方式,下面的內容將介紹如何將無重作日誌歸檔的數據庫系統改成有重作日誌歸檔的數據庫系統。性能
查看數據庫是否有重作日誌的歸檔,能夠查看動態性能視圖V$DATABASE中的LOG_MODE列,若是列值爲ARCHIVELOG則爲重作日誌歸檔模式,若是列值爲NOARCHIVELOG則爲重作日誌不歸檔模式。
查看命令以下:select log_mode from v$database;
重作日誌不歸檔修改成重作日誌歸檔的方法:
一、 先關閉數據庫svrmgrl>shutdown immediate;
二、 對數據庫作一次冷備份,即備份全部的數據文件、控件文件、重作日誌文件、參數文件、口令文件;
三、 在initXXX.ora(XXX表示實例的SID)參數文件中,增長以下參數:
LOG_ARCHIVE_DEST=filename or device name(歸檔文件的路徑)
LOG_ARCHIVE_FORMAT=filename extension(歸檔文件名的格式)
例如:
LOG_ARCHIVE_DEST=/archive/arch
LOG_ARCHIVE_FORMAT=%s.arc
四、 啓動數據庫實例svrmgrl>startup mount
五、 改變數據庫爲歸檔模式svrmgrl>alter database archivelog;
六、 打開數據庫svrmgrl>alter database open;
對於能夠down機的數據庫系統,採用這種方法對數據庫文件進行一次性備份,恢復時只能恢復到備份時間,建議在系統安裝配置完成以後,提交運行前,採用這種方法進行數據庫的一次備份,之後恢復時結合邏輯備份,基本可將系統恢復至可用狀態。具體方法以下:
經過V$DATAFILE,V$LOGFILE,V$CONTROLFILE查看有哪些數據文件、日誌文件及控制文件須要進行備份,分別在哪些目錄中。將這三類文件用操做系統拷貝指令複製到一個獨立的硬盤或磁帶上,以備往後使用。同時還需備份口令文件、參數文件及重作日誌文件。
查詢指令以下:
SVRMGR> select file#,name from v$datafile;
FILE# NAME
1 C:\ORANT\DATABASE\SYS1ZXY.ORA
2 C:\ORANT\DATABASE\RBS1ZXY.ORA
3 C:\ORANT\DATABASE\USR2ZXY.ORA
4 C:\ORANT\DATABASE\TMP1ZXY.ORA
5 C:\ORANT\DATABASE\INDX1ZXY.ORA
6 C:\ORANT\DATABASE\ZXY1ZXY.ORA
SVRMGR> select * from v$logfile;
GROUP# STATUS MEMBER
1 C:\ORANT\DATABASE\LOGZXY1.ORA
2 STALE C:\ORANT\DATABASE\LOGZXY2.ORA
SVRMGR> select * from v$controlfile;
STATUS NAME
C:\ORANT\DATABASE\CTL1ZXY.ORA
C:\ORANT\DATABASE\CTL2ZXY.ORA
口令文件、參數文件在WINDOWS操做系統中通常存入在/orant/database目錄下。
/orant/database/initXXX.ora(XXX表示數據庫實例名)
/orant/database/pwdXXX.ora
重作日誌文件的存放路徑及文件名可經過以下指令來查看,
SVRMGR> show parameter archive
名稱 類型 值
----------------------------------- ------- ----------------------------
log_archive_buffer_size 整數 127
log_archive_buffers 整數 4
log_archive_dest 字符串 C:\orant\database\archive
log_archive_duplex_dest 字符串
log_archive_format 字符串 arc%S.%T
log_archive_min_succeed_dest 整數 1
log_archive_start 布爾值 FALSE
對數據文件進行備份,使用方便,恢復快。若是數據文件丟失或損壞,能夠利用備份文件將文件恢復到當前時間的數據,但不能恢復控制文件。對於數據文件的保護可採用這種方法進行備份和恢復。對於會修改的數據文件,最好每日作備份。對於靜態數據文件,則只作一次性備份便可。
方法:
alter tablespace XXX begin backup;
操做系統拷貝
alter tablespace XXX end backup;
可經過V$BACKUP及V$DATAFILE_HEADER來查看正在備份的數據文件。
SVRMGR> select * from v$backup;
FILE# STATUS CHANGE# TIME
---------- ------------------ ---------- ---------
1 NOT ACTIVE 0
2 NOT ACTIVE 0
3 ACTIVE 214357 2001-02-1
4 NOT ACTIVE 0
5 NOT ACTIVE 0
6 NOT ACTIVE 0
SVRMGR> Select name,status,fuzzy from v$datafile_header;
NAME STATUS FUZ
----------------------------------------------------------------
C:\ORANT\DATABASE\SYS1ZXY.ORA ONLINE
C:\ORANT\DATABASE\RBS1ZXY.ORA ONLINE
C:\ORANT\DATABASE\USR2ZXY.ORA ONLINE YES
C:\ORANT\DATABASE\TMP1ZXY.ORA ONLINE
C:\ORANT\DATABASE\INDX1ZXY.ORA ONLINE
C:\ORANT\DATABASE\ZXY1ZXY.ORA ONLINE
一、 建立一個recovery catalog數據庫,數據庫名爲rman,SID爲rman,其中數據庫數據以下:
Type of space |
Space requirement |
System |
50MB |
Temp |
5MB |
Rollback |
5MB |
Recovery catalog |
10MB |
Online logs(3 groups,each with 2 members) |
Each 1MB |
二、 建表空間
svrmgrl > create tablespace rman_ts datafile ‘<directory>/<name>’
> size 20M autoextend on next 20M maxsize 50M;
三、 建用戶
svrmgrl > create user rman identified by rman default tablespace rman_ts
> temporary tablespace temp quota unlimited on rman_ts;
四、 給用戶受權(注意授SYSDBA權限時,先確認有口令文件的存在,而後再給口令文件增長用戶數)
svrmgrl > grant recovery_catalog_owner to rman;
svrmgrl > connect sys/change_on_install as sysdba;
svrmgrl > grant dba,connect,resource,sysdba to rman;
五、 運行腳本
svrmgrl > connect rman/rman
svrmgrl > @$oracle_home/rdbms/admin/catrman.sql(UNIX) or
svrmgrl > @%oracle_home%/rdbms80/admin/catrman.sql(NT)
六、 運行rman鏈接目標數據庫及catalog數據庫
$ rman target sys/change_on_install@objectDB rcvcat rman/rman@rcvcat
七、 在catalog上註冊目標數據庫
rman > register database;
八、 若是上一次註冊過數據庫後又進行過數據庫的修改,請同步目標數據庫
rman > gesynch catalog;
九、 可經過查看catalog數據字典得到目標數據庫註冊信息:
rc_database, rc_tablespace, rc_datafile, rc_stored_script, rc_stored_script_line;
十、 設置NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK;
十一、 設置NLS_DATE_FORMAT=‘YYYY-MM-DD:HH24:MI:SS’;
十二、 進行如備份方案4所述的備份操做。
1. 運行rman鏈接目標數據庫
$ rman target user/password@tnsnames nocatalog
2. 在rman方式下主要可進行以下備份:
l database(全數據庫備份)
l datafile NO.(按數據文件號備份)
l datafile ‘directory/datafilename’(按數據文件名備份)
l tablespace XXX(按表空間名備份)
l current control(備份控制文件)
l archivelog all (delete input)(備份全部歸檔日誌文件)
l archivelog from logseq=1056 until logseq=1059 (delete input)(按歸檔日誌SEQ號備份)
l archivelog from time=’’ until time=’’(按時間備份歸檔日誌文件)
3. Image copy 方式
相似於操做系統的COPY指令,將一個文件備份至一個文件,不進行檢查和壓縮。指令例舉以下:
Rman>run {
>Allocate channel dev1 type disk;
>Copy
Datafile ‘……’ to ‘……’ tag=backup01,
Archivelog ‘……’ to ‘……’,
Current controlfile to ‘……’;
>Release channel dev1; }
4. Backup set方式
在單個備份文件中包含一個或多個被備份的文件,備份時執行空塊的壓縮。指令例舉以下:
Rman>run {
>Allocate channel dev1 type disk;
>backup incremental level=0 format ‘<full path>/df_%d_%s_%p’
>tag=backup01 filesperset=4
(database include Current controlfile);
>Release channel dev1; }
首次備份,用0級
run {
allocate channel dev1 type 'sbt_tape';
backup incremental level 0
(database
format '%d_%u');
}
之後的備份用0級或1級
run {
allocate channel dev1 type 'sbt_tape';
backup incremental level 1
(database
format '&d_%u');
}
若是在第一次備份以後增長了表空間或數據文件,需從新進行0級增量備份,不然再進行備份將沒法識別新增的表空間或數據文件。
run {
allocate channel dev1 type 'sbt_tape';
backup incremental level 0
(tablespace new_tbs
format '%d_%u');
}
邏輯備份最大的優越性在於備份時佔用資源少,在備份與恢復時對數據庫系統資影響最小。
另外對於個別表而非整個表空間或數據庫的恢復也很是方便,且能夠在不一樣的數據庫上進行恢復,備份方案靈活,可根據須要選擇性的備份表、表空間、用表戶表信息或全局備份。在實際應用中我建議以邏輯備份爲主要的備份方案,而後結合脫機冷備份或聯機熱備份。
EXP、IMP命令詳解:
E:\>exp help=y
經過輸入 EXP 命令和用戶名/口令,您能夠在用戶 / 口令以後的命令:
或者,您也能夠經過輸入跟有各類參數的 EXP 命令來控制「導出」的運行方式。要指定參數,您可使用關鍵字:格式: EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
實例: exp80 username/password@alias file=expfile.dmp log=mylog.log
關鍵字 說明(默認)
---------------------------------------------------
USERID 用戶名/口令
FULL 導出整個文件 (N)
BUFFER 數據緩衝區的大小(與操做系統有關)
OWNER 全部者用戶名列表
FILE 輸出文件 (EXPDAT.DMP)
TABLES 表名列表
COMPRESS 導入一個範圍 (Y)
RECORDLENGTH IO 記錄的長度
GRANTS 導出權限 (Y)
INCTYPE 增量導出類型
INDEXES 導出索引 (Y)
RECORD 跟蹤增量導出 (Y)
ROWS 導出數據行 (Y)
PARFILE 參數文件名
CONSTRAINTS 導出限制 (Y)
CONSISTENT 交叉表一致性
LOG 屏幕輸出的日誌文件
STATISTICS 分析對象 (ESTIMATE)
DIRECT 直接路徑 (N)
TRIGGERS 導出觸發器 (Y)
FEEDBACK 顯示每 x 行 (0) 的進度
FILESIZE 各轉儲文件的最大尺寸
QUERY 選定導出表子集的子句
下列關鍵字僅用於可傳輸的表空間
TRANSPORT_TABLESPACE 導出可傳輸的表空間元數據 (N)
TABLESPACES 將傳輸的表空間列表
E:\>imp help=y
能夠經過輸入 IMP 命令和您的用戶名/口令
格式: IMP KEYWORD=value 或 KEYWORD=(value1,value2,...,vlaueN)
實例: imp80 username/password@alias file=impfile.dmp log=mylog.log show=y(查看Oracle數據表的建表語句)
關鍵字 說明(默認)
----------------------------------------------
USERID 用戶名/口令
FULL 導入整個文件 (N)
BUFFER 數據緩衝區大小
FROMUSER 全部人用戶名列表
FILE 輸入文件 (EXPDAT.DMP)
TOUSER 用戶名列表
SHOW 只列出文件內容 (N)
TABLES 表名列表
IGNORE 忽略建立錯誤 (N)
RECORDLENGTH IO 記錄的長度
GRANTS 導入權限 (Y)
INCTYPE 增量導入類型
INDEXES 導入索引 (Y)
COMMIT 提交數組插入 (N)
ROWS 導入數據行 (Y)
PARFILE 參數文件名
LOG 屏幕輸出的日誌文件
CONSTRAINTS 導入限制 (Y)
DESTROY 覆蓋表空間數據文件 (N)
INDEXFILE 將表/索引信息寫入指定的文件
SKIP_UNUSABLE_INDEXES 跳過不可用索引的維護 (N)
ANALYZE 執行轉儲文件中的 ANALYZE 語句 (Y)
FEEDBACK 顯示每 x 行 (0) 的進度
TOID_NOVALIDATE 跳過指定類型 id 的校驗
FILESIZE 各轉儲文件的最大尺寸
RECALCULATE_STATISTICS 從新計算統計值 (N)
下列關鍵字僅用於可傳輸的表空間
TRANSPORT_TABLESPACE 導入可傳輸的表空間元數據 (N)
TABLESPACES 將要傳輸到數據庫的表空間
DATAFILES 將要傳輸到數據庫的數據文件
TTS_OWNERS 擁有可傳輸表空間集中數據的用戶
增量卸出備份的參數是INCTYPE,這個參數的有效選項是COMPLETE、CUMULATIVE和INCREMENTAL。COMPLETE肯定爲全卸出,而其它兩個選項則依賴全卸出用於數據庫復原。CUMULATIVE卸出全部表和上次CUMULATIVE或COMPLETE卸出以來更改過的其它對象;若是更改表中一個記錄,那麼卸出整個表。INCREMENTAL卸出上次INCREMENTAL、CUMULATIVE或COMPLETE卸出以來更改過的全部表和對象。
增量導入的參數爲INCTYPE,若是正在導入一個增量卸出,那麼撤消並重建表。必須首先從上次SYSTEM卸出(規定INCTYPE=SYSTEM)中復原。而後導入每一個增量卸出(規定INCTYPE=RESTORE)直到須要的變化應用於數據庫。
備份指令:
exp80 username/password@alias file=expfile.dmp log=mylog.log inctype=complete
exp80 username/password@alias file=expfile.dmp log=mylog.log inctype=incremental
注意事項:
備份文件每次都要更改不一樣的文件名,不然會被覆蓋,整套備份將沒有任何意義,建議每週作一次全備份,而後一週中其它時間作增量備份。
增量備份進行恢復時,不能指定恢復某張表或某個用戶的表等參數,只能在「完整數據庫」模式下執行增量導出,導入亦然。
只能用有管理員身份的用戶鏈接才能執行增量備份。
恢復指令:
imp80 username/password@alias file=expfile.dmp log=mylog.log inctype=system
imp80 username/password@alias file=expfile.dmp log=mylog.log inctype=restore
作一套系統的備份策略,我我的以爲應該從兩方面考慮:
一是技術手段,包括相應的設備,可用的備份恢復腳本等;
二是根據應用要求,肯定備份週期、備份方式。
如下根據我的的測試提供給廣州市工商很行的備份案例,廣州市工行的運行環境以下:windowsNT操做系統,oracle8.05 enterprise edition server,有重作日誌的歸檔。
其它應用系統可根據系統及應用的不一樣,靈活的進行搭配和選擇。
注意對備份文件、存放路徑、備份日期及備份指令進行紙質記錄,並對磁帶進行有效的標識。
請按以下目錄結構在有較大空間的硬盤上建目錄。
目錄 |
子目錄 |
從子目錄或文件 |
說明 |
Oracle_backup |
Script |
sun.bat、wed.bat …… |
運行腳本所在目錄(參見操做手冊) |
Copy_data |
|
RMAN用image copy方式備份的數據 |
|
Backup_data |
|
RMAN用backupset方式備份的數據 |
|
Exp_data |
|
邏輯備份數據 |
|
Cold_data |
|
冷備份數據 |
在執行備份前,先執行以下兩步操做:
一、 先增長操做系統環境變量:NLS_DATE_FORMAT=‘YYYY-MM-DD:HH24:MI:SS’;
二、 在參數文件中增長對CONTROL文件的控件參數:CONTROL_FILE_RECORD_TIME=30;(保留30天的備份記錄);
計劃用RMAN作基於全數據庫的增量備份,增量備份週期圖以下所示:
Sun |
mon |
tues |
wed |
tru |
fri |
sat |
sun |
o |
2 |
2 |
1 |
2 |
2 |
2 |
0 |
l 週日執行0級備份(即全備份)
備份腳本:
run {
allocate channel dev1 type disk;
backup
incremental level 0
tag='database'
(database format 'd:\oracle_data\backup_data\d%d_u%u');
copy
datafile 1 to 'C:\oracle_data\copy_data\XX.ORA',
……
copy
current controlfile to 'c:\ oracle_data\copy_data \control.ctl';
}
l 週三執行1級備份
備份腳本:
run {
allocate channel dev1 type disk;
backup
incremental level 1
tag='database'
(database format 'd:\oracle_data\backup_data\d%d_u%u');
copy
current controlfile to 'c:\ oracle_data\copy_data \control.ctl';
}
l 其它候執行2級備份
備份腳本:
run {
allocate channel dev1 type disk;
backup
incremental level 2
tag='database'
(database format 'd:\oracle_data\backup_data\d%d_u%u');
copy
current controlfile to 'c:\ oracle_data\copy_data \control.ctl';
}
將每一段備份腳本分別保存於一個文本文件,命名爲0.txt,1.txt,2.txt,並存三個BAT文件,分別爲:0.bat,1.bat,2.bat,內容爲:type c:\0.txt|rman80 target username/password@tnsnames nocatalog,這樣只須執行BAT文件便可完成每日備份。
注意:在腳本中每日將對數據庫控制文件進行一次全備份。
建議:
分爲三種備份級別,每一類備份級別的數據保留兩個週期便可覆蓋,循環使用存儲介質:
一、 每個月月初對數據庫作一次全備份;
操用指令:
exp80 username/password@alias full=Y file=<directory>/expfile.dmp log=<directory>/mylog.log(週日操做,建議用system用戶進行操做)
二、 每週日對數據庫作一次基於用戶級的備份;
操用指令:
exp80 username/password@alias owner=username file=<directory>/expfile.dmp log=<directory>/mylog.log(週日操做,建議用需備份的用戶進行操做)
三、 每日對重要的表進行基於表級的備份;
操做指令:
exp80 username/password@alias tables=(table1,table2,table3……) file=<directory>/expfile.dmp log=<directory>/mylog.log(每日操做,週日除外,建議用備份的所屬用戶進行操做)
除腳本以後,用戶須每日對口令文件、參數文件、archivelog文件作操做系統級的備份。
請參見以下表格填寫備份記錄。
序號 |
備份時間 |
備份類型(RMAN、EXP或copy) |
備份腳本 |
生成的備份文件名及存放路徑 |
錯誤提示 |
備份時archivelog的seq號 |
|
|
|
|
|
|
|
引發數據庫失敗的緣由不少,有操做系統、存儲介質、各種應用軟件或其它緣由;失敗的現象也多種多樣,有人爲的誤操做引發數據丟失,有因爲掉電或操做系統失敗而引發未歸檔而異常退出,有硬盤磁道損壞引發的文件錯誤等等。通常來講,備份計劃越完善越周密,數據庫能保證的恢復也越多,同時安全性也越高。可是過於煩瑣的備份計劃付出的代價將更高,影響數據庫的工做效率也須要更多的服務器設備及存儲介質。因此咱們須要根據數據庫的不一樣應用以及不一樣的環境和配置提供最合理的備份方案。
這一章節將介紹的是常見的數據庫失敗在進行如上一章節所述備份的狀況下進行恢復的方法。
注意:只要down機作恢復時,必定要在這個時間點對數據庫進行一次全冷備份,以避免恢復時由於各類緣由而引發的錯誤或失敗,致使數據沒法進行再恢復。
這種狀況將運用對數據庫數據文件進行的全備份及歸檔重作日誌文件進行time_based(基於時間的)恢復。
具體操做方法以下:
一、 svrmgrl > alter tablespace XX offline;(此步驟可選)
二、 svrmgrl > shutdown immediate;(注意用sysdba身份用戶)
三、 對數據庫進行冷備份
四、 svrmgrl > startup mount;
五、 !copy c:\oracle_data\copy_data\* c:\orant\database\* (將備份的數據文件替換全部工做的數據文件)
六、 svrmgrl > recover database until time ‘2001-02-24:12:00:00’;(時間取最接近刪除表前的時間)
七、 svrmgrl > alter database open resetlogs;
八、 svrmgrl > alter tablespace XX online;(此步驟可選)
這種狀況將運用對數據庫增量備份及歸檔重作日誌文件進行單個數據文件的complete恢復。
具體操做方法以下:
一、 vrmgrl > alter tablespace XX offline;(此步驟可選)
二、 svrmgrl > shutdown immediate;(注意用sysdba身份用戶)
三、 對數據庫進行冷備份
四、 svrmgrl > startup mount;
五、 啓動RMAN:rman80 target username/password@tnsname nocatalog(用sysdba身份連)
六、 根據丟失的數據文件運行以下恢復腳本:
run {
allocate channel dev1 type disk;
restore tablespace XX;(此步驟可改成restore database;)
recover tablespace XX; (此步驟可改成recover database;)
}
七、 svrmgrl > alter database open;
八、 svrmgrl > alter tablespace XX online;(此步驟可選)
這種狀況可運用對數據庫數據文件的增量備份、控制文件的全備份及歸檔重作日誌文件進行恢復。
具體操做方法以下:
一、 copy c:\oracle_data\copy_data\control.ctl c:\orant\database\* (將備份的控制文件替換全部工做的控制文件)
二、 svrmgrl > startup mount;
三、 起動RMAN:rman80 target userame/password@tnsname nocatalog
四、 運行以下腳本:
run {
allocate channel dev1 type disk;
restore database;
recover database;
}
五、 recover database until cancel;(在出現的提示後按enter,注意已歸檔的日誌sequence號,直到提示到最後一個歸檔重作日誌sequence號加1時按cancel結束恢復)
六、 svrmgrl > alter database open resetlogs;
這種狀況也可運用對數據庫數據文件進行的全備份、控制文件的全備份及歸檔重作日誌文件進行恢復。
具體操做方法以下:
一、 copy c:\oracle_data\copy_data\* c:\orant\database\* (將備份的數據文件及控制文件替換全部工做的數據文件和控制文件)
二、 svrmgrl > startup mount;
三、 recover database until cancel;(在出現的提示後按enter,注意已歸檔的日誌sequence號,直到提示到最後一個歸檔重作日誌sequence號加1時按cancel結束恢復)
四、 svrmgrl > alter database open resetlogs;
使用IMP工具可基於表、用戶及整個數據庫進行恢復。若是能從EXP備份中找回失去的數據,則優先採用IMP工具恢復。由於IMP的恢復操做簡單,受環境因素的影響小,佔用資源少,且不用down機進行操做。恢復腳本以下:
一、 表的恢復
imp80 username/password@alias file=impfile.dmp log=mylog.log table=(table1,table2……) show=y(請使用表的所屬用戶進行恢復)
二、 用戶全部表的恢復
imp80 username/password@alias file=impfile.dmp log=mylog.log owner=(username) show=y(請使用表的所屬用戶進行恢復)
三、 數據庫全套數據的恢復
imp80 username/password@alias file=impfile.dmp log=mylog.log full=y show=y(請使用管理員身份用戶進行恢復)
注意:
若是計劃用磁帶機做爲備份的存儲介質,且用ORACLE備份工具將備份文件直接寫入磁帶設備,則要安裝第三方與ORACLE兼容的磁帶設備備份軟件,如legato、HP、IBM等。
不管採用上列任何一種形式的備份,都不建議將備份數據經過備份工做直接存入磁帶設備,由於這將極大的影響備份操做時數據庫的性能,推薦將備份數據先備份至硬盤設備,而後再採用磁帶設備管理工做壓縮至磁帶機。一樣執行恢復操做時,也是推薦先將備份數據拷至硬盤設備,而後再執行恢復指令。