资讯专栏INFORMATION COLUMN

DG中处理主备和物理备机上的ORL和SRL

IT那活儿 / 3665人阅读
DG中处理主备和物理备机上的ORL和SRL

点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!

1

调整原因

在重做日志切换频繁结束时,在主警报日志中报告 ORA-16401 和 ORA-16055 的情况下已经看到。所以建议是增加在线重做日志的大小以减少重做日志切换频率。这也可能需要提高主数据库的性能。
主 ALERT.LOG 中报告 ORA-16401 和 ORA-16055 错误:
ARC3: Archive log rejected (thread 1 sequence 136480) at host (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=XXX.XXX.X.XX)(PORT=1530))(CONNECT_DATA=(SERVICE_NAME=)(SERVER=DEDICATED)))
Errors in file //trace/_arc3_7445.trc:
ORA-16401: archivelog rejected by RFS
FAL[server, ARC3]: FAL archive failed, see trace file.
Errors in file //trace/_arc3_7445.trc:
ORA-16055: FAL request rejected
ARCH: FAL archive failed. Archiver continuing
ORACLE Instance dbinfo - Archival Error. Archiver continuin
g.
这里的问题是主数据库过于频繁地切换日志
使用 ARCH 发送档案,每次发生日志切换时,主服务器都必须将存档日志发送到备用服务器,同时主服务器上发生了另一个日志切换,这也会导致另一个存档日志发送到备用服务器,但第一个没有完成后,备用设备形成并检测到 GAP。
此时第一个 Archivelog 也作为 FAL Request 发送,但是这个会失败,因为第一个还在存档,锁定,所以第二个失败。 

2

注意事项

  • 如果使用最大保护模式,您需要先降级到最大可用性模式;
  • 调整前需注意standby_file_management参数是否为MANUAL;
  • 注意需停止日志应用。

 

3

调整过程

3.1 查询主备日志日志信息

  • 主库数据库上:


PRIMARY
SQL> select status,instance_name,database_role from v$database,v$instance;

STATUS INSTANCE_NAME DATABASE_ROLE
------------ ---------------- ----------------
OPEN pri2101 PRIMARY

SQL>
 select group#,sum(bytes/1024/1024)"Size in MB" from v$log group by group#;

    GROUP# 大小 (MB)
---------- ----------
         1 50
         2 50
         3 50

SQL>
 select group#,sum(bytes/1024/1024)"Size in MB" from v$standby_log group by group#;
GROUP# 大小 (MB)
---------- ----------
         6 50
         4 50
         5 50
        7 50


  • 备库数据库上:


STANDBY
SQL> select status,instance_name,database_role from v$database,v$Instance;

STATUS INSTANCE_NAME DATABASE_ROLE
------------ ---------------- ----------------
OPEN std2101 物理STANDBY

SQL> select group#, sum(bytes/1024/1024)"Size in MB" from v$log group by group#;

    GROUP# 大小 (MB)
---------- ----------
         1 50
         2 50
         3 50

SQL> select group#,sum(bytes/1024/1024)"Size in MB" from v$standby_log group by group#;

    GROUP# 大小 (MB)
---------- ----------
         6 50
         4 50
         5 50
         7 50

3.2 调整备库数据库参数信息

SQL> show parameter standby_file_management

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
standby_file_management string AUTO

SQL>
 alter system set standby_file_management=manual;

System altered.

SQL>
 show parameter standby_file_management

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
standby_file_management string MANUAL

3.3 主备库修改日志组

检查联机重做日志的状态并通过删除非活动重做日志并使用新大小重新创建它们来调整它们的大小。删除inactive状态的,同样的方法去修改三个日志组,只列举一组:
-- PRIMARY database
SQL> select group#,status from v$log;

GROUP#
 STATUS
---------- ----------------
1 INACTIVE
2 INACTIVE
3 CURRENT

SQL>
 alter database drop logfile group 1;

Database altered.

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

Database altered.

--standy database
SQL> select group#,status from v$log;

GROUP#
 STATUS
---------- ----------------
1 CURRENT
3 CLEARING
2 CLEARING
SQL> alter database drop logfile group 2;
alter database drop logfile group 2
*
ERROR at line 1:
ORA-01156: recovery or flashback in progress may need access to files
SQL> alter database recover managed standby database cancel; ##需停止日志应用,否则会报ORA-01156
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 UNUSED
状态为 CLEARING 的组 3 也是如此。我们将手动清除它,删除它并使用新尺寸创建。

3.4 调整主备数据库上备用重做日志的大小

主数据库上备用重做日志 (SRL) 的状态将是未分配的,因为它们仅在主数据库开始作为备用(切换)运行时才会使用。
我们可以轻松删除未分配的 SRL 并使用新的重新创建它们尺寸。对主数据库上的其余 SRL 重复此操作:
PRIMARY database

SQL>
 select group#,status from v$standby_log;

GROUP#
 STATUS
---------- ----------
4 UNASSIGNED
5 UNASSIGNED
6 UNASSIGNED
7 UNASSIGNED
SQL> alter database drop standby logfile group 4;

Database altered.

SQL>
 alter database add standby logfile group 4 size 100M;

Database altered.


--standy database
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 50

SQL>
 select group#,status from v$standby_log;

GROUP#
 STATUS
---------- ----------
4 ACTIVE
5 UNASSIGNED
6 UNASSIGNED
7 UNASSIGNED
清除之前完成的状态为 ACTIVE 的 SRL 组,删除该组并重新创建它们,其大小与在线重做日志的大小相同。

对于状态为 UNASSIGNED 的 SRL 组,只需删除该组并使用与在线重做日志相同的大小重新创建它们。
SQL> select group#,sum(bytes/1024/1024)"size in MB" from v$log group by group#;

GROUP#
 size in MB
---------- ----------
1 100
2 100
3 100

4

文章结语

一旦主数据库和备用数据库上的所有备用重做日志和联机重做日志都调整了大小,在备用数据库上将 STANDBY_FILE_MANAGEMENT 设置为 AUTO 并在备用数据库上启动恢复 (MRP)。
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;

PROCESS STATUS SEQUENCE#
--------- ------------ ----------
ARCH CONNECTED 0
ARCH CLOSING 66
ARCH CONNECTED 0
ARCH CLOSING 63
RFS IDLE 0
RFS IDLE 0
MRP0 WAIT_FOR_LOG 71
RFS IDLE 71
RFS IDLE 0

RAC+DG架构数据库删除日志组语句
For RAC database :

Syntax to add /drop group are as Below


SQL>Alter database add standby logfile Thread group <group no> size <>M;

SQL>Alter database add logfile Thread group <group no> size <>M;


 


END




本文作者:余家豪

本文来源:IT那活儿(上海新炬王翦团队)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129501.html

相关文章

  • 19C DG Broker配置测试

    19C DG Broker配置和测试 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; ...

    IT那活儿 评论0 收藏2941
  • DG库读写测试方案

    DG备库读写测试方案 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; margin:0...

    IT那活儿 评论0 收藏856
  • 基于代理数据库分库分表框架 Mycat实践

    摘要:文章共字,阅读大约需要分钟概述在如今海量数据充斥的互联网环境下,分库分表的意义我想在此处就不用赘述了。 showImg(https://segmentfault.com/img/remote/1460000017453449); 文章共 1796字,阅读大约需要 4分钟 ! 概 述 在如今海量数据充斥的互联网环境下,分库分表的意义我想在此处就不用赘述了。而分库分表目前流行的方案最起码...

    el09xccxy 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<