Oracle數據庫備份主要分為物理備份(直接復制數據文件、控制文件、歸檔日志等)和邏輯備份(通過數據泵導出數據),以下是具體方法:
RMAN是Oracle官方提供的物理備份工具,支持全量備份、增量備份、歸檔日志備份及增量合并,能有效管理備份生命周期。
rman target /
BACKUP DATABASE FORMAT '/backup/oracle/full_backup_%U.bck';
rman target /
BACKUP INCREMENTAL LEVEL 1 DATABASE FORMAT '/backup/oracle/incremental_backup_%U.bck';
rman target /
BACKUP ARCHIVELOG ALL DELETE INPUT FORMAT '/backup/oracle/archivelog_%U.bck';
rman target /
VERIFY BACKUP;
冷備份需停止數據庫,適用于需要快速完整備份的場景(如數據庫遷移)。
sqlplus / as sysdba
SQL> SHUTDOWN IMMEDIATE;
cp -R /u01/app/oracle/oradata/ORCL /backup/oracle/cold_backup_$(date +%F)
SQL> STARTUP;
熱備份無需停止數據庫,適用于7×24小時運行的業務,但需手動管理表空間。
sqlplus / as sysdba
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;
sqlplus / as sysdba
SQL> ALTER TABLESPACE USERS BEGIN BACKUP;
# 復制數據文件(如/u01/app/oracle/oradata/ORCL/Users01.dbf)
cp /u01/app/oracle/oradata/ORCL/Users01.dbf /backup/oracle/hot_backup/Users01.dbf
SQL> ALTER TABLESPACE USERS END BACKUP;
通過Linux定時任務實現定期自動備份,例如每天凌晨2點執行全量RMAN備份:
crontab -e
添加以下內容:
0 2 * * * /usr/bin/rman target / <<EOF
BACKUP DATABASE FORMAT '/backup/oracle/full_backup_%U.bck';
BACKUP ARCHIVELOG ALL DELETE INPUT FORMAT '/backup/oracle/archivelog_%U.bck';
EXIT;
EOF
邏輯備份通過導出數據庫對象(表、視圖、存儲過程等)的元數據和數據,適用于跨平臺遷移或選擇性恢復。
expdp system/password@ORCL DIRECTORY=backup_dir DUMPFILE=full_export.dmp LOGFILE=full_export.log FULL=y
DIRECTORY
:需提前創建的邏輯目錄(對應物理路徑,如/backup/oracle
):CREATE DIRECTORY backup_dir AS '/backup/oracle';
DUMPFILE
:導出的dump文件名;LOGFILE
:日志文件名;FULL=y
:全量導出。impdp system/password@ORCL DIRECTORY=backup_dir DUMPFILE=full_export.dmp LOGFILE=full_import.log FULL=y
恢復需根據備份類型(物理/邏輯)和故障場景(數據文件損壞、誤刪除、時間點恢復)選擇對應方法:
rman target /
RESTORE DATABASE;
RECOVER DATABASE;
rman target /
RESTORE DATABASE;
RECOVER DATABASE;
rman target /
RESTORE DATABASE;
RECOVER DATABASE UNTIL TIME "TO_DATE('2025-09-20 18:00:00', 'YYYY-MM-DD HH24:MI:SS')";
ALTER DATABASE OPEN RESETLOGS; -- 重置重做日志
sqlplus / as sysdba
SQL> SHUTDOWN IMMEDIATE;
/u01/app/oracle/oradata/ORCL
)。SQL> STARTUP;
rman target /
RESTORE DATABASE;
RECOVER DATABASE;
employees
表):impdp system/password@ORCL DIRECTORY=backup_dir DUMPFILE=full_export.dmp LOGFILE=employees_restore.log TABLES=employees
REMAP_TABLESPACE
參數將數據導入到其他表空間:impdp system/password@ORCL DIRECTORY=backup_dir DUMPFILE=full_export.dmp LOGFILE=rename_ts_restore.log REMAP_TABLESPACE=USERS:NEW_USERS
ALTER DATABASE ARCHIVELOG
),否則無法進行時間點恢復。oracle
)有讀寫權限。通過以上實踐,可在Debian系統上實現Oracle數據庫的高效備份與恢復,保障數據安全。