文章目录

  • 官方参考:
  • 1、添加日志组以及日志成员
  • 3、删除日志组或成员
    • 3.1、日志的重定位及重命名
    • 3.2、清空日志文件组
    • 3.3、删除日志成员
    • 3.4、删除日志组
  • 5、删除单实例数据库多余节点的日志组
  • 5、归档管理
  • 6、疑难日志清理案例
  • 7、有adg备库环境下扩大redo大小
    • 7.0、环境说明
    • 7.1、检查主备库信息
    • 7.2、主库上扩展日志操作
    • 7.3、扩展备库的日志大小

官方参考:

How To Add/Increase The Size Of Redo Log Files In Rac Environment? (Doc ID 779306.1)

How To Maintain and/or Add Redo Logs (Doc ID 602066.1)

Example of How To Resize the Online Redo Logfiles (Doc ID 1035935.6)

How to Change The Location Of Redo Log Files (Doc ID 395062.1)

Online Redo Logs on Physical Standby (Doc ID 740675.1)

Handling ORL and SRL (Resize) on Primary and Physical Standby in Data Guard Environment (Doc ID 1532566.1)

1、添加日志组以及日志成员

日志文件组,如果没有使用OMF请指定日志路径,RAC环境下需要指定thread

ALTER DATABASE ADD LOGFILE [THREAD n] [GROUP n] (‘ORACLEBASE/oradata/u01/logn1.rdo′,′ORACLE_BASE/oradata/u01/logn1.rdo','ORACLEB​ASE/oradata/u01/logn1.rdo′,′ORACLE_BASE/oradata/u01/logn2.rdo’) SIZE mM;

添加standby 日志组

alter database add standby logfile thread 1 group 11 ‘+FRA/acctdbw/onlinelog/redo11A.dbf’ size 1g;

添加日志成员

ALTER DATABASE ADD LOGFILE MEMBER ‘ORACLEBASE/oradata/u01/logn1.rdo′TOGROUP1,′ORACLE_BASE/oradata/u01/logn1.rdo' TO GROUP 1, 'ORACLEB​ASE/oradata/u01/logn1.rdo′TOGROUP1,′ORACLE_BASE/oradata/u01/logn2.rdo’ TO GROUP 2;

3、删除日志组或成员

注意:current redo log不能被删除,路径位置不对的也不能被删除,库中少于两组日志也不能被删除。

所以,要先rename,然后clear生成日志文件,这时候才能删除非current的日志。如果是current的日志想在备库删除,必须在主库做如下操作:

alter system switch logfile;

alter system archive log current; --RAC

alter system checkpoint;

3.1、日志的重定位及重命名

删除日志的时候会经常发现日志路径不存在,主要是用了别的库的控制文件。rename即可

select ‘alter database rename file ‘’’||member||’’’ to ‘’+FRA/acctdbw/onlinelog’||substr(member,instr(member,’/’,-1,1))||’’’;’ from v$logfile;

重定位及重命名的两种方法:
添加一个新成员到日志组,然后删除一个旧的成员
使用ALTER DATABASE RENAME FILE 命令(不区分归档与非归档模式)

复制联机日志文件到新路径:ho cp
执行ALTER DATABASE RENAME FILE ‘’ TO ‘’

对于处于CURRENT状态的需要改名且不切换的情况下,办法是切换到MOUNT状态下再执行上述操作
重命名或重定位之后建议立即备份控制文件

3.2、清空日志文件组

ALTER DATABASE CLEAR LOGIFLE GROUP n;

ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP n

–使用unarchived 避免归档

select ‘alter database clear logfile group ‘||group#||’;’ from v$logfile;

特别是用duplicate方式复制的备库,日志中残留着主库的日志信息,删除的时候会报日志组中有没有应用的日志信息,需要应用,否则丢失数据。因为是备库,可以直接清空后再删除。

3.3、删除日志成员

ALTER DATABASE DROP LOGFILE MEMBER ‘$ORACLE_BASE/oradata/u01/logn1.rdo’;

不能删除组内的唯一一个成员

不能删除处于active 和current 状态组内的成员

删除处于active 和current 状态组内的成员,应使用日志切换使其处于INACTIVE状态后再删除

对于组内如果一个成员为NULL 值,一个为INVALID,且组处入INACTIVE,仅能删除INVALID状态成员

删除日志成员,物理文件并没有真正删除,需要手动删除

删除日志文件后,控制文件被更新

对于处于归档模式下的数据库,删除成员时确保日志已被归档,查看v$log视图获得归档信息

3.4、删除日志组

ALTER DATABASE DROP LOGFILE GROUP n;
select ‘alter database drop logfile group ‘||group#||’;’ from v$logfile;

一个实例至少需要两个联机日志文件组

活动或当前的日志组不能被删除;

组内成员状态有NULL 值或INVALID状态并存,组不可删除;

日志组被删除后,物理文件需要手动删除(对于非OMF);

5、删除单实例数据库多余节点的日志组

需要禁用其它节点,
禁用thread:

SQL>alter database disable thread 2;

强制设置检查点间隔

ALTER SYSTEM SET FAST_START_MTTR_TARGET = n

5、归档管理

请参考MOS How To Enable Archive Logging In RAC Environment [ID 1186764.1]
http://blog.csdn.net/dbcommando/article/details/7925861

修改归档路径和归档文件格式:
alter system set log_archive_dest_1='location=/u01/app/oracle/oradata/arch' scope=both;

rac环境开启归档步骤:

(1)将该实例的cluster_database设置为false

alter system set cluster_database=false scope=spfile sid='prod1';

(2)关闭所有访问该数据库的实例

srvctl stop database -d prod

(3)使用本地实例挂载数据库

SQL>startup mount
(4)启用存档

SQL>alter database archivelog;

(5)将实例prod1的参数cluster_database设置为true;

alter system set cluster_database=true scope=spfile sid='prod1';

(6)关闭本地实例

SQL>shutdown immediate;

(7)启动所有实例

srrvctl start database -d prod

6、疑难日志清理案例

现象如下,有两个日志组状态为CLEARING_CURRENT,日志文件名称只有磁盘组的名字,显然不正常

GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------- ------------ ---------
25 1 0 1073741824 512 2 NO CLEARING_CURRENT 1.3911E+13 23-APR-18 2.8147E+14
6 1 0 1073741824 512 2 YES UNUSED 1.3911E+13 23-APR-18 1.3911E+13 23-APR-18
1 1 0 1073741824 512 2 YES UNUSED 1.3911E+13 23-APR-18 1.3911E+13 23-APR-18
2 1 0 1073741824 512 2 YES UNUSED 1.3911E+13 23-APR-18 1.3911E+13 23-APR-18
5 1 0 1073741824 512 2 YES UNUSED 1.3911E+13 23-APR-18 1.3911E+13 23-APR-18
32 2 0 1073741824 512 2 NO CLEARING_CURRENT 1.3911E+13 23-APR-18 2.8147E+14
GROUP# STATUS TYPE MEMBER IS_
---------- ------- ------- ------------------------------------------------------------ ---
1 ONLINE +DATA/gzspaydbw/onlinelog/group_1.2029.1006889263 NO
6 ONLINE +FRA/gzspaydbw/onlinelog/group_6.429.1006889277 NO
25 INVALID ONLINE +DATA NO
25 INVALID ONLINE +FRA NO
32 INVALID ONLINE +DATA NO
32 INVALID ONLINE +FRA NO

问题原因:出现这种问题原因一般是因为启用了日志的OMF,自动创建日志失败导致。可能由于权限或者空间不足导致。
然后在主库切换日志,把备库的日志状态切换为非current状态就可以正常处理日志组了。

7、有adg备库环境下扩大redo大小

本章节主要翻译自mos文档 Handling ORL and SRL (Resize) on Primary and Physical Standby in Data Guard Environment (Doc ID 1532566.1)

ORA-16401 and ORA-16055 reported in primary alert.log when redolog switch is over frequently (Doc ID 1243177.1)

主备库环境下扩大redo大小需要按照先主库后备库的顺序操作,如果先处理备库很有可能会遇到redo日志组删除不掉的尴尬。

7.0、环境说明

案例:最大性能模式下,把主备库的redo大小从50m扩大到100m。
主库: prm11203
ADG备库: std11203目的:
redo日志切换频繁,alert日志中出现ORA-16401和ORA-16055告警,
为了减少日志切换的频率,改进主数据库性能,现在需要把主备库的日志大小调大。

7.1、检查主备库信息

检查主库:

$sqlplus sys/<password> as sysdbaSQL*Plus: Release 11.2.0.3.0 Production on Tue Feb 26 10:41:27 2013Copyright (c) 1982, 2011, Oracle.  All rights reserved.Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> select status,instance_name,database_role from v$database,v$instance;STATUS       INSTANCE_NAME    DATABASE_ROLE
------------ ---------------- ----------------
OPEN         prm11203         PRIMARYSQL> select group#,sum(bytes/1024/1024)"Size in MB" from v$log group by group#;GROUP# Size in MB
---------- ----------1         502         503         50SQL> select group#,sum(bytes/1024/1024)"Size in MB" from v$standby_log group by group#;GROUP# Size in MB
---------- ----------6         504         505         507         50

检查备库:

$sqlplus sys/<password> as sysdbaSQL*Plus: Release 11.2.0.3.0 Production on Tue Feb 26 10:48:30 2013Copyright (c) 1982, 2011, Oracle.  All rights reserved.Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> select status,instance_name,database_role from v$database,v$Instance;STATUS       INSTANCE_NAME    DATABASE_ROLE
------------ ---------------- ----------------
OPEN         std11203         PHYSICAL STANDBYSQL> select group#, sum(bytes/1024/1024)"Size in MB" from v$log group by group#;GROUP# Size in MB
---------- ----------1         502         503         50SQL> select group#,sum(bytes/1024/1024)"Size in MB" from v$standby_log group by group#;GROUP# Size in MB
---------- ----------6         504         505         507         50检查参数standby_file_management,在备库上此参数需要设置为manual才能添加删除日志组。
SQL> show parameter standby_file_managementNAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
standby_file_management              string      AUTOSQL> alter system set standby_file_management=manual;System altered.SQL> show parameter standby_file_managementNAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
standby_file_management              string      MANUAL

7.2、主库上扩展日志操作

检查日志状态,inactive状态的可以直接删除,current和active状态的需要切换日志,直到该日志组变成inactive才能操作。

SQL> select group#,status from v$log;GROUP# STATUS
---------- ----------------1 INACTIVE2 INACTIVE3 CURRENT

每删除一个50M日志组,紧接着再添加1组100M的,启用OMF情况下,可以不用指定路径,如下:

SQL> alter database drop logfile group 1;
SQL> alter database add logfile group 1 size 100M;
SQL> alter database drop logfile group 2;
SQL> alter database add logfile group 2 size 100M;

对于current状态的第三组日志,需要切换为inactive状态才能操作:

SQL> alter system switch logfile;System altered.SQL> select group#,status from v$log;GROUP# STATUS
---------- ----------------1 CURRENT2 UNUSED3 ACTIVESQL> alter system switch logfile;System altered.SQL> select group#,status from v$log;GROUP# STATUS
---------- ----------------1 ACTIVE2 CURRENT3 ACTIVESQL> alter system checkpoint;System altered.SQL> select group#,status from v$log;GROUP# STATUS
---------- ----------------1 INACTIVE2 CURRENT3 INACTIVE
SQL> alter database drop logfile group 3;Database altered.SQL> alter database add logfile group 3 size 100M;Database altered.

下面开始处理主库上面的standby redo log:

SQL> select group#,sum(bytes/1024/1024)"size in MB" from v$standby_log group by group#;GROUP# size in MB
---------- ----------
6 50
4 50
5 50
7 50SQL> select group#,status from v$standby_log;GROUP# STATUS
---------- ----------
4 UNASSIGNED
5 UNASSIGNED
6 UNASSIGNED
7 UNASSIGNEDSQL> alter database drop standby logfile group 4;
SQL> alter database drop standby logfile group 5;
SQL> alter database drop standby logfile group 6;
SQL> alter database drop standby logfile group 7;
SQL> alter database add standby logfile group 4 size 100M;
SQL> alter database add standby logfile group 5 size 100M;
SQL> alter database add standby logfile group 6 size 100M;
SQL> alter database add standby logfile group 7 size 100M;

7.3、扩展备库的日志大小

检查日志状态,并关闭MRP进程

SQL> select group#,status from v$log;GROUP# STATUS
---------- ----------------
1 CURRENT
3 CLEARING
2 CLEARINGSQL> alter database recover managed standby database cancel;

处理clearing状态的日志组:

SQL> alter database clear logfile group 2;Database altered.SQL> alter database drop logfile group 2;Database altered.SQL> alter database add logfile group 2 size 100M;Database altered.SQL> select group#,status from v$log;GROUP# STATUS
---------- ----------------
1 CURRENT
3 CLEARING
2 UNUSEDSQL> alter database clear logfile group 3;Database altered.SQL> alter database drop logfile group 3;Database altered.SQL> alter database add logfile group 3 size 100M;Database altered.

处理处于current状态的日志组1:

回到主库,切换日志组:
alter system switch logfile;
备库上检查日志组1的状态,直到为clearing状态为止。
最后,按照上面方式删除:
SQL> alter database clear logfile group 1;Database altered.SQL> alter database drop logfile group 1;Database altered.SQL> alter database add logfile group 1 size 100M;

处理备库上面的standby redo log:

SQL> select group#,sum(bytes/1024/1024)"size in MB" from v$standby_log group by group#;GROUP# size in MB
---------- ----------
4 50
5 50
6 50
7 50SQL> select group#,status from v$standby_log;GROUP# STATUS
---------- ----------
4 ACTIVE
5 UNASSIGNED
6 UNASSIGNED
7 UNASSIGNED
和主库上的处理方式一致:
SQL> alter database drop standby logfile group 4;
SQL> alter database drop standby logfile group 5;
SQL> alter database drop standby logfile group 6;
SQL> alter database drop standby logfile group 7;
SQL> alter database add standby logfile group 4 size 100M;
SQL> alter database add standby logfile group 5 size 100M;
SQL> alter database add standby logfile group 6 size 100M;
SQL> alter database add standby logfile group 7 size 100M;

最后,恢复备库日志应用:

SQL> alter system set standby_file_management=auto;System altered.SQL> alter database recover managed standby database disconnect from session using current logfile;Database altered.SQL> select process,status,sequence# from v$managed_standby;

Oracle主库、备库redo日志管理相关推荐

  1. oracle dg备库关机,Oracle DG 备库 STANDBY 日志传输小结

    1. 日志传输方式 有两种日志传输方式(ARC和LGWR),第一种是采用ARC进程传输日志,其示意图如下: 注:上图来自<大话Oracle RAC> 其大致过程如下: 1)主库:日志先写入 ...

  2. oracle主备库sync模式,Oracle 探索DG备库undo工作模式

    模拟备库出现 ORA-01555 分析备库 undo 工作模式 一: 修改主库 备库 undo 表空间 1.在主库创建undo表空间(会自动同步到备库) SYS@prod>create undo ...

  3. Oracle ADG备库SYSAUX数据文件坏块恢复处理(ORA-00600,ORA-10567,ORA-10564......

    点击上方"蓝字" 关注我们,享更多干货! 本文阐述了Oracle ADG备库SYSAUX数据文件坏块恢复处理(ORA-00600,ORA-10567,ORA-10564,ORA-0 ...

  4. oracle rfs进程过多,Oracle物理备库RFS进程消失,不能启动--解决

    今天在测试Oracle环境上做热备,发现RFS进程不存在,做了如下操作后,还是不行: 1.拷贝主库的密码文件到备库 2.重启备库,也重启了主库,并alter system switch logfile ...

  5. oracle级联备库创建,ORACLE 11G 备库传备库级联传递(cascade dg) 的配置方法

    01: 与做备库一样,配置好 监听文件 密码文件 网络文件 并且动好监听. 注意必要的目录结构.然后从主库,备库1 都能用SYS用户登陆到备库2 表示通道是联通有效的. 02: 从主库生成个最新的IN ...

  6. oracle主备库查询,oracle11g dataguard 备库数据同步的检查方法

    概述: 一.环境 主库: ip地址:192.168.122.203 oracle根目录:/data/db/oracle SID:qyq 数据文件路径/data/db/oracle/oradata/qy ...

  7. ORACLE 11G 备库传备库级联传递(cascade dg) 的配置方法

    01: 与做备库一样,配置好 监听文件 密码文件 网络文件 并且动好监听. 注意必要的目录结构.然后从主库,备库1 都能用SYS用户登陆到备库2 表示通道是联通有效的. 02: 从主库生成个最新的IN ...

  8. Oracle DG备库出现GAP解决

    一.环境准备 准备Oracle dg环境 主库ip 192.168.1.217 oracle 备库ip 192.168.1.218 dg 二.模拟备库出现GAP 2.1 归档日志存在 备库先关闭日志应 ...

  9. Oracle数据库adg数据没同步,Oracle 11g备库无法开启ADG的原因分析

    今天碰到一个有些奇怪的问题,但是奇怪的现象背后都是有本质的因果. 下午在做一个环境的检查时,发现备库是在mount阶段,这可是一个11gR2的库,没有ADG实在是太浪费了,对于这种情况感觉太不应该了. ...

最新文章

  1. linux oracle io 查看,Linux上Oracle是否使用异步io的诊断
  2. WebStack-Hugo | 一个静态响应式网址导航主题
  3. Windows10 + Visual Studio 2017 + CMake +OpenCV编译、开发环境配置及测试
  4. 【opencv】22.HOG的原理与详细步骤
  5. 【项目实战课】基于Pytorch的3DCNN视频分类与行为识别实战
  6. 用Python实现选择排序
  7. 知识图谱 图数据库 推理_图数据库的知识表示与推理
  8. H5调用手机摄像头,实时拍照上传(旧)
  9. 无人驾驶、自动驾驶与驾驶辅助的区别
  10. MyBatis学习总结(23)——Mybatis打印Sql语句配置
  11. matlab 自带pca函数,matlab实现主成分分析 princomp函数 PCA中有这个函数
  12. 从高量到高质,私域流量的变革与发展
  13. 前端学习 -- HtmlCss -- 表单
  14. 运维自动化-ansible
  15. 2017年12月24日23:46:07
  16. android string-array xml 引用,如何把数据动态地写进array.xml的string-array里?
  17. 宠物收养所(c++)
  18. Unity ShaderGraph图片发光效果
  19. CSS图片底部留白的解决办法
  20. @CacheEvict-缓存

热门文章

  1. 【报告分享】2021中国消费者报告-麦肯锡.pdf(附下载链接)
  2. 【白皮书分享】2020年未来智慧园区白皮书-华为.pdf(附下载链接)
  3. 测试需求分析第一部分
  4. 假如BERT系论文变成Commit History
  5. python如何保存列表_python中数据的保存
  6. 搜索引擎如何评估外贸网站内容?
  7. 苹果手机收不到推送信息_[赞助信息]拜仁签约新赞助商 球员将被禁用苹果手机...
  8. linux同内核覆盖,Linux内核代码覆盖率 – GCOV
  9. 如何解决ValueError: unknown is not supported
  10. centos7上使用chrony自动同步时间