物理备份直接复制数据库物理文件(数据文件、控制文件、归档日志等),是恢复的基础。推荐使用RMAN(Recovery Manager),它是Oracle官方提供的物理备份工具,支持增量备份、压缩、加密等功能,比SQL*Plus手工复制更高效可靠。
适用场景:允许停机维护的小型数据库或测试环境。
步骤:
sqlplus sys/your_password@ORCL as sysdba;SHUTDOWN IMMEDIATE;/u01/backup):cp /u01/app/oracle/oradata/ORCL/*.dbf /u01/backup/
cp /u01/app/oracle/oradata/ORCL/*.ctl /u01/backup/
cp /u01/app/oracle/fast_recovery_area/ORCL/archivelog/* /u01/backup/
STARTUP。适用场景:数据库需持续运行的生产环境。
前提条件:数据库必须处于ARCHIVELOG模式(验证命令:SELECT log_mode FROM v$database;,结果应为ARCHIVELOG)。
步骤:
SELECT tablespace_name, file_name FROM dba_data_files;;ALTER TABLESPACE users BEGIN BACKUP;;cp /u01/app/oracle/oradata/ORCL/users01.dbf /u01/backup/;ALTER TABLESPACE users END BACKUP;;ALTER SYSTEM ARCHIVE LOG CURRENT;。优势:支持增量备份、压缩、加密、自动校验备份有效性。
步骤:
rman target /;BACKUP DATABASE PLUS ARCHIVELOG FORMAT '/u01/backup/rman_full_%U.bak' TAG 'FULL_BACKUP';
BACKUP CURRENT CONTROLFILE;;/u01/scripts/rman_backup.sql),便于重复执行。逻辑备份通过导出数据库对象(表、schema、数据)生成SQL或二进制文件,适用于跨数据库迁移或选择性恢复。推荐使用Oracle Data Pump(expdp/impdp),比传统exp/imp更高效。
步骤:
CREATE DIRECTORY backup_dir AS '/u01/backup';;GRANT READ, WRITE ON DIRECTORY backup_dir TO your_user;;expdp your_user/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_schema.dmp LOGFILE=scott_export.log SCHEMAS=scott;;expdp scott/tiger@ORCL DIRECTORY=backup_dir DUMPFILE=scott_table.dmp LOGFILE=scott_table_export.log TABLES=employees,salaries;。物理恢复需根据备份类型(全库、增量、热备份)选择对应流程,核心是还原文件和应用归档日志。
适用场景:数据库无法启动(如控制文件损坏、数据文件丢失)。
步骤:
SHUTDOWN IMMEDIATE;.dbf、.ctl、归档日志文件复制到原始路径(覆盖现有文件);STARTUP(若控制文件损坏,需用RMAN恢复控制文件,见下文)。适用场景:部分数据文件损坏(如users01.dbf丢失)。
步骤:
ALTER DATABASE DATAFILE '/u01/app/oracle/oradata/ORCL/users01.dbf' OFFLINE IMMEDIATE;;cp /u01/backup/users01.dbf /u01/app/oracle/oradata/ORCL/;RECOVER DATAFILE '/u01/app/oracle/oradata/ORCL/users01.dbf';(RMAN命令:RESTORE DATAFILE '/u01/app/oracle/oradata/ORCL/users01.dbf'; RECOVER DATAFILE '/u01/app/oracle/oradata/ORCL/users01.dbf';);ALTER DATABASE DATAFILE '/u01/app/oracle/oradata/ORCL/users01.dbf' ONLINE;。步骤:
rman target /;RESTORE DATABASE;
RECOVER DATABASE;
ALTER DATABASE OPEN;(若数据库处于RESETLOGS状态,需添加RESETLOGS选项)。适用场景:选择性恢复单个表、schema或数据(如误删除表数据)。
步骤:
CREATE DIRECTORY restore_dir AS '/u01/restore';;impdp your_user/your_password@ORCL DIRECTORY=restore_dir DUMPFILE=full_backup.dmp LOGFILE=full_import.log FULL=y;;employees表):impdp scott/tiger@ORCL DIRECTORY=restore_dir DUMPFILE=scott_backup.dmp LOGFILE=scott_import.log TABLES=employees;。RMAN VALIDATE BACKUPSET命令验证RMAN备份)。SYSDBA或相应权限的用户执行,避免权限泄露。alert.log、expdp.log、impdp.log),及时处理错误。