物理备份直接复制数据库物理文件(数据文件、控制文件、归档日志等),是恢复的基础。推荐使用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
),及时处理错误。