用戶管理備份 = 以資料庫命令置備份模式 → OS 指令複製檔案。需 DBA 手工或腳本自動完成。適用於不使用 RMAN 的環境或特殊恢復場景。
dbv file=/u01/oradata/oracle/users01.dbf blocksize=8192
檢查資料塊完整性,避免備份壞塊。關鍵參數:FILE、START/END、BLOCKSIZE、LOGFILE、FEEDBACK。
RECOVER TABLESPACE sales TEST;
RECOVER DATABASE UNTIL CANCEL TEST;
錯誤記錄於 alert_,可預演恢復可行性。
init.ora :
log_archive_start=true
log_archive_format=ARC%T%S.arc
log_archive_dest=/arch12/arch
STARTUP MOUNT → ALTER DATABASE ARCHIVELOG → ALTER DATABASE OPEN。非歸檔模式步驟同理,設定 NOARCHIVELOG。
| 屬性 | LOGGING | NOLOGGING |
|---|---|---|
| 重做日誌量 | 完整記錄 | 最小記錄(僅元數據) |
| 可從備份恢復 | 是 | 否(需重新載入資料) |
| 適用操作 | 一般 DML | Direct Load、建索引、分區維護 |
鐵律:歸檔模式下執行 NOLOGGING 操作後,**必須立即備份受影響資料檔**,否則無法從舊備份恢復。可設定資料庫強制日誌模式(ALTER DATABASE FORCE LOGGING)覆蓋 NOLOGGING。
ALTER TABLESPACE users BEGIN BACKUP;ALTER TABLESPACE users END BACKUP;ALTER SYSTEM SWITCH LOGFILE; 確保歸檔產生。若資料庫意外終止導致表空間停留在 BACKUP 模式,啟動時會報錯,需對每個受影響資料檔執行 ALTER DATABASE DATAFILE '...' END BACKUP;。
ALTER DATABASE BACKUP CONTROLFILE TO '/backup/control.bak';ALTER DATABASE BACKUP CONTROLFILE TO TRACE; 生成 USER_DUMP_DEST 下的 *.trc,含 CREATE CONTROLFILE 腳本。CREATE PFILE='/backup/init.ora' FROM SPFILE;#!/bin/bash
# 冷備份 - 需先 SHUTDOWN IMMEDIATE
ORACLE_SID=PROD; export ORACLE_SID
BACKUP_DIR=/backup/cold/$(date +%Y%m%d)
mkdir -p $BACKUP_DIR
cp $ORACLE_HOME/dbs/init${ORACLE_SID}.ora $BACKUP_DIR/
cp /u01/oradata/PROD/*.dbf $BACKUP_DIR/
cp /u01/oradata/PROD/control*.ctl $BACKUP_DIR/
cp /u01/oradata/PROD/redo*.log $BACKUP_DIR/
# 壓縮歸檔
tar czf $BACKUP_DIR.tgz $BACKUP_DIR
# 異地同步
rsync -avz $BACKUP_DIR.tgz dr-server:/remote/backup/