Oracle 归档模式学习笔记

发布于:2024-05-18 ⋅ 阅读:(142) ⋅ 点赞:(0)

  版权声明:本文为CSDN博主「杨群」的原创文章,遵循CC 4.0 BY-SA版权协议,于2024年5月17日首发于CSDN,转载请附上原文出处链接及本声明。
  原文链接:https://blog.csdn.net/u011046671/article/details/139012428

一、基础环境

  操作系统:CentOS Linux 7.9.2009

  数据库版本:Oracle Database 11.2.0.4.0

二、适用场景

三、过程和方法

A、开启归档模式

  • 以 sys 的身份登录数据库

    sqlplus / as sysdba
    
  • 将数据库重启至 mount 状态

    shutdown immediate ;
    startup mount ;
    
  • 修改实例的归档模式为 archivelog

    alter database archivelog ;
    
  • 修改归档日志空间大小为100GB(默认为4GB)。

    alter system set db_recovery_file_dest_size = 102400M ;
    
  • 打开数据库

    alter database open ;
    
  • 查看归档模式(需要在服务器本地以 sys 用户登录)

    archive log list ;
    -- 查询结果
    数据库日志模式       存档模式
    自动存档            启用
    存档终点            USE_DB_RECOVERY_FILE_DEST
    最早的联机日志序列    2475
    下一个存档日志序列    2477
    当前日志序列         2477
    
  • 查看归档日志大小及使用情况

    show parameter db_recovery
    --查询结果
    NAME                        TYPE        VALUE
    --------------------------- ----------- ------------------------------
    db_recovery_file_dest       string      /opt/oracle/fast_recovery_area
    db_recovery_file_dest_size  big integer 4182M
    
    show parameter db_recovery_file_dest
    --查询结果
    NAME                        TYPE        VALUE
    --------------------------- ----------- ------------------------------
    db_recovery_file_dest       string      /opt/oracle/fast_recovery_area
    db_recovery_file_dest_size  big integer 4182M
    
    show parameter recovery_file_dest
     --查询结果
    NAME                        TYPE        VALUE
    --------------------------- ----------- ------------------------------
    db_recovery_file_dest       string      /opt/oracle/fast_recovery_area
    db_recovery_file_dest_size  big integer 4182M
    
  • 查看归档日志大小及使用情况

  • col name format a41;
    select t.name,
           t.space_limit / 1024 / 1024 "最大空间(M)",
           t.space_used / 1024 / 1024 "已用空间(M)",
           t.space_reclaimable / 1024 / 1024 "可回收空间(M)",
           t.number_of_files "文件个数"
      from v$recovery_file_dest t;
    
  • 查询使用百分比。如果 ARCHIVED LOG 超过 90% oracle 随时有宕机的危险。

    set pagesize 100;
    set linesize 200;
    col file_type format a20;
    col percent_space_used format 9999;
    col percent_space_reclaimable format 9999;
    col number_of_files format 9999;
    select t.file_type,
           t.percent_space_used        "空间使用百分比",
           t.percent_space_reclaimable "可回收空间百分比",
           t.number_of_files           "文件个数"
      from v$flash_recovery_area_usage t
     where t.file_type = 'ARCHIVED LOG';
    
  • 连接本地数据库的恢复管理器(使用操作系统用户认证)

    rman target /
    
  • 检查文件清单

    crosscheck archivelog all;
    
  • 删除所有过期日志

    delete expired archivelog all ;
    
  • 删除今天之前的日志

    delete archivelog until time 'sysdate-1';
    
  • 删除当前时间之前的日志

    delete archivelog until time 'sysdate';
    
  • 如果归档空间已满,进行数据库连接的时候会报以下错误(存档程序错误。仅连接内部,直到释放)。此时需要清理归档日志后才能进行连接。

    ORA-00257: archiver error. Connect internal only, until freed
    

四、参考资料

  版权声明:本文为CSDN博主「杨群」的原创文章,遵循CC 4.0 BY-SA版权协议,于2024年5月17日首发于CSDN,转载请附上原文出处链接及本声明。
  原文链接:https://blog.csdn.net/u011046671/article/details/139012428


网站公告

今日签到

点亮在社区的每一天
去签到