溫馨提示×

centos中sqlplus備份恢復策略

小樊
41
2025-10-02 19:15:05
欄目: 云計算

CentOS環境下SQL*Plus與RMAN結合的Oracle備份恢復策略

一、備份策略

1. 冷備份(脫機備份,適用于允許停機的小型數據庫)

適用場景:數據庫可正常關閉的小型環境(如測試庫),確保數據一致性。
操作步驟

  • 以SYSDBA身份登錄SQL*Plus:sqlplus sys/your_password@orcl as sysdba;
  • 關閉數據庫:SHUTDOWN IMMEDIATE;;
  • 復制關鍵物理文件到備份目錄(如/backup/oracle/cold_backup):
    • 數據文件:HOST cp $ORACLE_HOME/oradata/orcl/*.dbf /backup/oracle/cold_backup/;
    • 控制文件:HOST cp $ORACLE_HOME/oradata/orcl/*.ctl /backup/oracle/cold_backup/;
    • 歸檔日志(若開啟歸檔模式):HOST cp $ORACLE_BASE/fast_recovery_area/orcl/archivelog/* /backup/oracle/cold_backup/;
  • 啟動數據庫:STARTUP;。

2. 熱備份(聯機備份,適用于7×24運行環境)

前提條件:數據庫必須處于ARCHIVELOG模式(執行SELECT log_mode FROM v$database;確認,若為NOARCHIVELOG,需執行SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER DATABASE ARCHIVELOG; ALTER DATABASE OPEN;開啟)。
操作步驟

  • 標識需備份的表空間:SELECT tablespace_name, file_name FROM dba_data_files;;
  • 將表空間置于備份模式:ALTER TABLESPACE users BEGIN BACKUP;;
  • 復制表空間數據文件到備份目錄:HOST cp /u01/app/oracle/oradata/orcl/users01.dbf /backup/oracle/hot_backup/;
  • 結束表空間備份模式:ALTER TABLESPACE users END BACKUP;;
  • 備份控制文件(確保一致性):ALTER DATABASE BACKUP CONTROLFILE TO '/backup/oracle/hot_backup/controlfile.bak';;
  • 歸檔當前在線重做日志:ALTER SYSTEM ARCHIVE LOG CURRENT;。

3. 邏輯備份(數據泵,適用于跨數據庫遷移或選擇性恢復)

適用場景:需要導出特定用戶、表或schema的數據(如用戶scott的所有對象)。
操作步驟

  • 登錄SQL*Plus并以SYSDBA身份創建目錄對象:CREATE DIRECTORY backup_dir AS '/backup/oracle/expdp';;
  • 授權目錄訪問權限:GRANT READ, WRITE ON DIRECTORY backup_dir TO scott;;
  • 執行全庫導出:expdp system/your_password@orcl DIRECTORY=backup_dir DUMPFILE=full_backup.dmp LOGFILE=full_export.log FULL=y;;
  • 執行用戶級導出:expdp scott/tiger@orcl DIRECTORY=backup_dir DUMPFILE=scott_backup.dmp LOGFILE=scott_export.log SCHEMAS=scott;。

二、恢復策略

1. 冷備份恢復(全量恢復)

適用場景:數據庫完全損壞(如磁盤故障),需恢復到最近一次冷備份點。
操作步驟

  • 關閉數據庫:SHUTDOWN IMMEDIATE;;
  • 刪除原數據庫文件(謹慎操作,確保備份可用);
  • 復制備份文件到原位置:HOST cp /backup/oracle/cold_backup/*.dbf $ORACLE_HOME/oradata/orcl/;HOST cp /backup/oracle/cold_backup/*.ctl $ORACLE_HOME/oradata/orcl/;
  • 啟動數據庫:STARTUP;。

2. 熱備份恢復(部分恢復,如數據文件損壞)

適用場景:單個數據文件或表空間損壞(如users01.dbf丟失)。
操作步驟

  • 將受損數據文件離線:ALTER DATABASE DATAFILE '/u01/app/oracle/oradata/orcl/users01.dbf' OFFLINE;;
  • 復制備份的數據文件到原位置:HOST cp /backup/oracle/hot_backup/users01.dbf /u01/app/oracle/oradata/orcl/;
  • 將數據文件在線:ALTER DATABASE DATAFILE '/u01/app/oracle/oradata/orcl/users01.dbf' ONLINE;;
  • 若歸檔日志有更新,需執行介質恢復:RECOVER DATABASE;(自動應用未應用的歸檔日志)。

3. 邏輯備份恢復(數據泵導入)

適用場景:選擇性恢復特定用戶或表的數據(如scott用戶的employees表丟失)。
操作步驟

  • 登錄SQL*Plus并以SYSDBA身份創建目錄對象:CREATE DIRECTORY restore_dir AS '/backup/oracle/expdp';;
  • 執行導入:impdp scott/tiger@orcl DIRECTORY=restore_dir DUMPFILE=scott_backup.dmp LOGFILE=scott_import.log SCHEMAS=scott TABLES=employees;;
  • 若表已存在,可添加TABLE_EXISTS_ACTION=REPLACE參數覆蓋。

4. 不完全恢復(介質故障或用戶錯誤,如誤刪除數據)

適用場景:需要恢復到特定時間點(如2025-09-30 18:00:00)或SCN(如1234567)。
操作步驟

  • 關閉數據庫:SHUTDOWN IMMEDIATE;;
  • 啟動到掛載狀態:STARTUP MOUNT;;
  • 執行不完全恢復(以時間為例):RECOVER DATABASE UNTIL TIME '2025-09-30:18:00:00';(若使用SCN,替換為UNTIL SCN 1234567);
  • 打開數據庫(需重置日志):ALTER DATABASE OPEN RESETLOGS;。

5. 閃回數據庫(快速恢復到過去狀態,適用于邏輯錯誤)

前提條件:已啟用快速恢復區域(DB_RECOVERY_FILE_DEST)和閃回日志(ALTER DATABASE ARCHIVELOG; ALTER DATABASE FLASHBACK ON;)。
操作步驟

  • 查詢閃回窗口:SELECT OLDEST_FLASHBACK_SCN, OLDEST_FLASHBACK_TIME FROM V$FLASHBACK_DATABASE_LOG;;
  • 啟動到掛載狀態:STARTUP MOUNT;;
  • 執行閃回(以時間為例):FLASHBACK DATABASE TO TIMESTAMP '2025-09-30 18:00:00';;
  • 打開數據庫:ALTER DATABASE OPEN RESETLOGS;。

三、注意事項

  • 備份驗證:定期測試備份文件的可用性(如嘗試用impdp導入邏輯備份),避免“備份無效”問題;
  • 權限管理:確保備份/恢復操作由具有SYSDBA或相應權限的用戶執行(如system);
  • 日志監控:備份/恢復過程中監控日志文件(如expdp.log、RECOVER的輸出),及時排查錯誤;
  • 存儲安全:備份文件存儲在獨立物理設備(如外接磁盤、NAS),避免與數據庫文件同存儲,防止磁盤故障導致備份與數據同時丟失;
  • 自動化任務:使用Cron作業定時執行備份腳本(如每天凌晨2點執行熱備份),減少人工干預。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女