归档管理

  1. 创建归档日志目标目录
    bash
    复制

以oracle用户身份创建目录

mkdir -p /u01/app/oracle/archivelog
chown -R oracle:oinstall /u01/app/oracle/archivelog
chmod -R 750 /u01/app/oracle/archivelog
2. 设置归档参数
sql
复制
-- 查看当前归档参数
SHOW PARAMETER db_recovery_file_dest;
SHOW PARAMETER db_recovery_file_dest_size;

-- 设置归档目标位置和大小
ALTER SYSTEM SET db_recovery_file_dest='/u01/app/oracle/archivelog' SCOPE=SPFILE;
ALTER SYSTEM SET db_recovery_file_dest_size=50G SCOPE=SPFILE;
3. 修改数据库为归档模式
sql
复制
-- 关闭数据库
SHUTDOWN IMMEDIATE;

-- 启动到mount状态
STARTUP MOUNT;

-- 启用归档模式
ALTER DATABASE ARCHIVELOG;

-- 打开数据库
ALTER DATABASE OPEN;

-- 强制日志切换,生成第一个归档日志
ALTER SYSTEM SWITCH LOGFILE;
4. 验证归档模式
sql
复制
-- 确认已处于归档模式
SELECT log_mode FROM v$database;

-- 查看归档进程状态
SELECT process, status FROM v$archive_processes;

-- 查看已生成的归档日志
SELECT name, sequence#, first_time, next_time FROM v$archived_log;
三、配置自动归档(可选)
sql
复制
-- 启用自动归档
ALTER SYSTEM SET log_archive_start=TRUE SCOPE=SPFILE;

-- 设置归档日志格式
ALTER SYSTEM SET log_archive_format='arch_%t_%s_%r.arc' SCOPE=SPFILE;

-- 设置多个归档目标(多路复用)
ALTER SYSTEM SET log_archive_dest_1='location=/u01/app/oracle/archivelog' SCOPE=SPFILE;
ALTER SYSTEM SET log_archive_dest_2='location=/backup/oracle/archivelog' SCOPE=SPFILE;
四、归档日志管理

  1. 手动切换日志
    sql
    复制
    ALTER SYSTEM SWITCH LOGFILE;
  2. 查看归档日志信息
    sql
    复制
    -- 查看归档日志序列
    SELECT sequence#, name, archived, applied FROM v$archived_log;

-- 查看当前日志组状态
SELECT group#, sequence#, bytes, members, status FROM v$log;
3. 清理归档日志
sql
复制
-- RMAN下删除过期归档
RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';

-- 或保留特定数量的归档
RMAN> CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 1 TIMES TO DISK;
五、注意事项
空间监控:定期检查归档目录空间使用情况

sql
复制
SELECT * FROM v$recovery_file_dest;
性能影响:归档模式会轻微影响数据库性能,但提供了完整恢复能力

备份策略:开启归档后应建立定期备份策略,包括数据文件和归档日志

RMAN配置:建议配置控制文件自动备份

sql
复制
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
关键参数:

log_archive_max_processes:控制归档进程数(默认4)

log_archive_min_succeed_dest:指定必须成功的归档目标数

posted @ 2025-03-26 10:03  ocmji  阅读(28)  评论(0)    收藏  举报