一、备份策略
BACKUP DATABASE PLUS ARCHIVELOG命令实现,建议每周执行一次。BACKUP INCREMENTAL LEVEL 1 DATABASE命令实现,建议每日执行。BACKUP ARCHIVELOG ALL DELETE INPUT命令实现,建议每日执行。expdp system/password DIRECTORY=DATA_PUMP_DIR dumpfile=full.dmp full=y命令执行全库导出。ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '/u01/backup/change_tracking_file'。ALTER SYSTEM SET DB_RECOVERY_FILE_DEST='/u01/flash_recovery' SIZE 10G;启用闪回数据库:ALTER DATABASE ARCHIVELOG; ALTER DATABASE ENABLE FLASHBACK DATABASE。CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS(保留7天内的恢复点)。crontab工具定期执行备份脚本,例如每日凌晨2点执行全备:0 2 * * * /home/oracle/scripts/full_backup.sh。脚本需包含RMAN备份命令、日志记录、错误通知等功能。VALIDATE BACKUPSET命令验证备份集:RMAN> VALIDATE BACKUPSET 123;(123为备份集编号)。二、恢复策略
RESTORE DATABASE);③恢复归档日志(RECOVER DATABASE);④打开数据库(ALTER DATABASE OPEN)。V$LOG_HISTORY查看归档日志时间),步骤:①关闭数据库;②还原全备数据文件;③恢复到指定时间点(RECOVER DATABASE UNTIL TIME '2025-08-30 10:00:00');④打开数据库并重置日志(ALTER DATABASE OPEN RESETLOGS)。RESTORE CONTROLFILE FROM '/u01/backup/controlfile.bak');③挂载数据库(ALTER DATABASE MOUNT);④恢复数据库(RECOVER DATABASE);⑤打开数据库(ALTER DATABASE OPEN)。IGNORE=Y(忽略表已存在错误)、TABLES=表名(指定表)等参数。例如导入特定表:impdp system/password DIRECTORY=DATA_PUMP_DIR dumpfile=table_dump.dmp tables=scott.emp。SHOW PARAMETER DB_FLASHBACK_RETENTION_TARGET);②执行闪回命令(FLASHBACK DATABASE TO TIMESTAMP TO_TIMESTAMP('2025-08-30 10:00:00', 'YYYY-MM-DD HH24:MI:SS'));③打开数据库并重置日志(ALTER DATABASE OPEN RESETLOGS)。ALTER TABLE 表名 ENABLE ROW MOVEMENT);②执行闪回(FLASHBACK TABLE 表名 TO TIMESTAMP TO_TIMESTAMP('2025-08-30 10:00:00', 'YYYY-MM-DD HH24:MI:SS'))。EXEC DBMS_LOGMNR_D.BUILD(options=>DBMS_LOGMNR_D.STORE_IN_FLAT_FILE));②添加Redo Log文件(EXEC DBMS_LOGMNR.ADD_LOGFILE(logfilename=>'/u01/archive/log_1.arc', options=>DBMS_LOGMNR.NEW));③启动LogMiner(EXEC DBMS_LOGMNR.START_LOGMNR(starttime=>TO_DATE('2025-08-30 09:00:00', 'YYYY-MM-DD HH24:MI:SS'), endtime=>TO_DATE('2025-08-30 10:00:00', 'YYYY-MM-DD HH24:MI:SS')));④查询V$LOGMNR_CONTENTS视图获取错误SQL,执行反向操作恢复数据。