DG环境下 redo和 standby redo的增加和删除--及相关遇到的问题

原创 2015年11月18日 11:34:47

起因是alert.log 里经常报

Thread 1 cannot allocate new log, sequence 37255
Checkpoint not complete

相关原因,thomas kyte已经在书中将了一些解决方法。这里仅仅补充一点:如果依靠增加DBWr进程数来解决,并不能缓解此问题,相反会增加日志切换频率,更容易报错。

下面就考虑以增加日志组和 修改日志组大小为例。


当前redo log文件,一个是50M,随着业务增加已经明显不够用了。计划增加redo group数,并把每个redo大小改成300m。

主库上:

SQL> select group#,thread#,sequence#,archived,status, bytes/1024/1024 from v$log;

    GROUP#    THREAD#  SEQUENCE# ARC STATUS           BYTES/1024/1024
---------- ---------- ---------- --- ---------------- ---------------
         1          1      39472 YES INACTIVE                     50
         2          1      39473 YES INACTIVE                     50
         3          1      39474 YES INACTIVE                     50
         4          1      39476 NO  CURRENT                    300
         5          1      39475 YES ACTIVE                       300


注意,这里仅仅能drop 状态为inactive的。

alter database drop logfile group 1;
alter database drop logfile group 2;

然后再添加相应的日志组。 但是主要要先删除磁盘上的对应日志文件。不然会报错。

alter database add logfile group 1 '/data/oracle/oradata/test/redo01.log' size 300m;

alter database add logfile group 2 '/data/oracle/oradata/test/redo02.log' size 300m;

新加的redo log 开始会是unused的状态,切换几次switch logfile,即会变化。

主库基本操作完成。


备库:

首先要停掉备库的日志应用:

alter database recover managed standby database cancel;

再次,要把standby_logfile_management参数改成手动:

alter system set standby_file_management=manual;

现在就可以开始做drop和 add操作了。举例:

alter database add logfile group 4 '/data/oracle/oradata/test/redo04.log' size 300m;

ALTER DATABASE ADD STANDBY LOGFILE GROUP 6 '/data/oracle/oradata/test/stredo1.log' size 1g;

这里在删除standby redo组的时候会遇到一些特使情况;

1. 首先要清理archive logfile,然后再drop

alter database clear logfile group 2;

alter database drop logfile group 2;

2,如果还是 出现问题,尝试在主库切换下日志。 alter system switch logfile;

3.此外,在clear lofile 的时候可能会报错:

SQL> alter database clear logfile group 2;

alter database clear logfile group 2
*
ERROR at line 1:
ORA-19527: physical standby redo log must be renamed
ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/xezf/redo02.log'

 

ORA报错查询:

ORA-19527:
physical standby redo log must be renamed

Cause:
The CLEAR LOGFILE command was used at a physical standby database. This command cannot be used at a physical standby database unless the LOG_FILE_NAME_CONVERT initialization parameter is set. This is required to avoid overwriting the primary database's logfiles.
 
Action:
Set the LOG_FILE_NAME_CONVERT initialization parameter.
 

我们需要设置LOG_FILE_NAME_CONVERT 参数,才能使用clear logfile命令。

SQL> show parameter NAME_CONVERT

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert                 string
log_file_name_convert                string

SQL> alter system set log_file_name_convert='/data/oradata/test','/data/oradata/test' scope=spfile;

System altered. 之后重启数据库。

再进行clear logfile 就成功了。

结束后,要还原上面设置,并开启设置开启日志应用。

alter database recover managed standby database cancel;
alter database recover managed standby database using current logfile disconnect from session;



理解standby redo log

在创建Oracle Dataguard的时候,难免会碰到Standby Redo Log(SRL),它和ORL到底有何不同,下面是我自己的一点理解,大部分都是翻的Oracle官方文档: 1. SRL...
  • techsupporter
  • techsupporter
  • 2016年08月14日 16:44
  • 2053

oracle dg坏境主库redolog修改大小

dagaguard环境修改在线日志redolog大小
  • lihaiwenshu
  • lihaiwenshu
  • 2014年10月31日 11:05
  • 1114

oracle在线添加日志组和日志组成员

1.在线添加日志组成员 SQL> alter database drop logfile member '/u01/app/oracle/oradata/orcl/redo01a.log'; Dat...
  • cscscscsc
  • cscscscsc
  • 2016年06月15日 10:14
  • 2616

oracle 11gr2 创建standby 日志组、删除standby 日志组操作

一、创建standby日志组 奇怪的是上次同样的命令一直报错,今天却能执行完毕,很是不解啊!!          查看standby日志组情况的视图为v$standby_log   sys@...
  • gyanp
  • gyanp
  • 2011年11月23日 16:25
  • 3747

oracle dg坏境主库redolog修改大小

dagaguard环境修改在线日志redolog大小
  • lihaiwenshu
  • lihaiwenshu
  • 2014年10月31日 11:05
  • 1114

【翻译自mos文章】Standby Redo Logs (SRL)的用途,益处与限制

【翻译自mos文章】Standby Redo Logs (SRL)的用途,益处与限制
  • msdnchina
  • msdnchina
  • 2016年02月07日 01:11
  • 1438

Standby Redo Log 的设定原则、创建、删除、查看、归档位置

设定: 1.每个standby redo log file 至少要和primary database的redo log 一样大,为了方便管理,Oracle 建议主备库的redo log 设置成一样...
  • zhang123456456
  • zhang123456456
  • 2017年03月10日 23:20
  • 496

dg的几个redo解释及备库目录

备库的路径可能有下面的几个形式 Standby System Directory Structure Consequences Same as primary ...
  • aoerqileng
  • aoerqileng
  • 2014年09月15日 10:04
  • 649

rman恢复的方式搭建dataguard后redo log 的处理

转载:http://www.dbdream.org/?p=548 搭建DATA GUARD,利用RMAN备份恢复备库时,由于RMAN不会备份REDO文件,还原后的备库缺少REDO日志文件,对于用...
  • changyanmanman
  • changyanmanman
  • 2014年05月08日 15:08
  • 1474

10G DATAGUARD增加REDO日志组、删除日志组、删除日志成员实验

参考文档:http://www.eygle.com/digest/2010/10/oracle_dataguard_redo_changing.html Metalink 473442.1 号文档 近...
  • q947817003
  • q947817003
  • 2014年04月20日 22:23
  • 1836
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:DG环境下 redo和 standby redo的增加和删除--及相关遇到的问题
举报原因:
原因补充:

(最多只允许输入30个字)