首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 用戶管理備份(OS 物理備份)完整操作手冊

     編輯:Oracle 資料庫相關知識

定義

用戶管理備份 = 以資料庫命令置備份模式 → OS 指令複製檔案。需 DBA 手工或腳本自動完成。適用於不使用 RMAN 的環境或特殊恢復場景。

備份前驗證:DBVERIFY

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_.log,可預演恢復可行性。

3.1 關鍵環境設定

歸檔模式切換

  1. 關庫、冷備份現有資料。
  2. 修改 init.ora:
    log_archive_start=true
    log_archive_format=ARC%T%S.arc
    log_archive_dest=/arch12/arch
  3. STARTUP MOUNT → ALTER DATABASE ARCHIVELOG → ALTER DATABASE OPEN。

非歸檔模式步驟同理,設定 NOARCHIVELOG。

LOGGING vs NOLOGGING

屬性LOGGINGNOLOGGING
重做日誌量完整記錄最小記錄(僅元數據)
可從備份恢復是否(需重新載入資料)
適用操作一般 DMLDirect Load、建索引、分區維護

鐵律:歸檔模式下執行 NOLOGGING 操作後,**必須立即備份受影響資料檔**,否則無法從舊備份恢復。可設定資料庫強制日誌模式(ALTER DATABASE FORCE LOGGING)覆蓋 NOLOGGING。

3.2 表空間備份流程(熱備份)

  1. ALTER TABLESPACE users BEGIN BACKUP;
  2. OS 複製該表空間所有資料檔至備份目錄。
  3. ALTER TABLESPACE users END BACKUP;
  4. 切換日誌:ALTER SYSTEM SWITCH LOGFILE; 確保歸檔產生。

若資料庫意外終止導致表空間停留在 BACKUP 模式,啟動時會報錯,需對每個受影響資料檔執行 ALTER DATABASE DATAFILE '...' END BACKUP;。

3.3 控制檔與參數檔備份

  • 控制檔二進位備份:ALTER DATABASE BACKUP CONTROLFILE TO '/backup/control.bak';
  • 控制檔追蹤檔(文字版):ALTER DATABASE BACKUP CONTROLFILE TO TRACE; 生成 USER_DUMP_DEST 下的 *.trc,含 CREATE CONTROLFILE 腳本。
  • SPFILE 轉 PFILE:CREATE PFILE='/backup/init.ora' FROM SPFILE;

3.4 完整冷備份腳本範例

#!/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/
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved