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数据库的高效备份与恢复,保障数据安全。