`
duoerbasilu
  • 浏览: 1485430 次
文章分类
社区版块
存档分类
最新评论

判断Oracle10G RAC redo日志大小是否存在问题

 
阅读更多

在此我们将提到两个可能出现的问题。


首先提到的就是批处理任务,该任务可能没有足够的完整重做空间来完成,或是因为速度快,以致联机重做日志在归档到脱机重做日志前即已切换(使用了所有的重做日志,并且开始再次写入第一个重做日志)。联机重做日志只有在归档(启用归档时)后才可以被重写,因此DML 和 DDL 活动必须等待,直到有可用的联机日志。在操作系统级别上,按它们最近的更新日期和时间列出联机重做日志,您可以判断它们切换的是否频繁。还可以用查询 V$LOG_HISTORY 来得到最近的日志交换记录( 以前是100个,现在增加了 )。如果增加了联机重做日志的大小,就可以为那些执行大型的 INSERT、UPDATE 和 DELETE 操作的批处理任务提供足够的空间。较好的解决办法是增加联机重做日志的数目,这样就可以在有很频繁的日志切换(很小但却非常多的联机重做日志)时提供足够的空间。


第二个要考虑的问题就是那些要长时间运行的任务,这些任务可能要花大量的时间来切换联机重做日志。当整个任务正好只需用到一个联机重做日志时,这种长时间运行的任务可能非常快。对于联机事务处理(OLTP)类型的环境来说,最好使用较小的重做日志。我的经验是每半个小时(不考虑可以缩短这段时间的一些长时间运行的批处理操作)就切换一次联机重做日志。通过在操作系统级别上监控联机重做日志发生的日期和时间(或查询 v$log_history,也可以查询),就可以确定增加联机重做日志的大小或数目,从而设置一个优化的切换时间间隔。

下面的查询显示了两个日志切换的间隔时间,这样我们可以方便地判断系统是否存在问题。


1、对于单实例
select b.recid,
       to_char(b.first_time, 'dd-mon-yy hh:mi:ss') start_time,
       a.recid,
       to_char(a.first_time, 'dd-mon-yy hh:mi:ss') end_time,
       round(((a.first_time - b.first_time) * 25) * 60, 2) minutes
  from v$log_history a, v$log_history b
 where a.recid = b.recid + 1
 order by a.first_time asc

2、对于集群
select b.recid,
       to_char(b.first_time, 'dd-mon-yy hh:mi:ss') start_time,
       a.recid,
       to_char(a.first_time, 'dd-mon-yy hh:mi:ss') end_time,
       round(((a.first_time - b.first_time) * 25) * 60, 2) minutes
  from v$log_history a, v$log_history b
 where a.recid = b.recid + 1 and   a.thread#=b.thread# and a.thread#=1
 order by a.first_time desc

上面这个是对于节点1的联机日志切换(a.thread#=b.thread# and a.thread#=1),如果对于节点2的也很简单(a.thread#=b.thread# and a.thread#=2)即可

可以在操作系统级别上检查联机重做日志文件的大小或查询 V$LOG 和 V$LOGFILE 表,以此来确定这些文件的大小。下面列出的查询中显示了关于重做日志的显示信息:

select a.member, b.* from v$logfile a, v$log b where a.group# = b.group#;


3、 其他有帮助的重做日志命令


使用 ALTER DATABASE ADD LOGFILE. . .命令创建较大的日志,然后删除较小的日志,以此来增加额外的日志。需要注意的是,基于在 init.ora 文件中为 CHECKPOINT_INTERVAL 指定的块数量,检查点的时间间隔会强加一个检查点。因此,如果增加联机重做日志文件的尺寸,则要确保也增加检查点的时间间隔。为了多路复用联机重做日志文件(创建一个镜像副本),可以使用如下的命令将日志文件添加到已有的组:

alter database add logfile member '+RAC/jscn/onlinelog/redo011.dbf' to group 4;
alter database add logfile member '+RAC/jscn/onlinelog/redo021.dbf' to group 5;


可以用下面的命令删除某个联机重做日志成员:

alter database drop logfile member '+RAC/jscn/onlinelog/redo021.dbf';

如果要添加一个新的联机重做日志组,可使用下面的命令:

alter database add logfile thread 1 group 5 '+RAC/jscn/onlinelog/redo01.dbf' size 512m;


分享到:
评论

相关推荐

    ORACLE 修改redo日志文件 大小的方法

    ORACLE 修改redo日志文件 大小的方法 供大家参考

    构建最高可用Oracle数据库系统 Oracle 11gR2 RAC管理、维护与性能优化

    1.4 RAC存在的问题 1.4.1稳定性 1.4.2高性能 1.5 RAC软件 1.5.1存储管理软件 1.5.2集群管理软件 1.5.3数据库管理软件 1.6本章小结 第2章 搭建类似生产环境的RAC 2.1搭建环境 2.1.1 RAC的物理结构 2.1....

    Oracle 日志挖掘(LogMiner)使用详解

    Logminer依赖于2个包:DBMS_LOGMNR和DBMS_LOGMNR_D,Oracle 11g默认已安装 Logminer 基本使用步骤 <1>. Specify a LogMiner dictionary. 指定Logminer字典 <2>. Specify a list of redo log files for analysis. ...

    深入解析OracleDBA入门进阶与诊断案例 4/4

     7.5 Oracle 10g Redo的增强   7.6 Redo的内容   7.7 产生多少Redo   7.8 Redo写的触发条件   7.9 Redo Log Buffer的大小设置   7.10 commit做了什么?   7.11 日志的状态   7.12 日志的块...

    深入解析OracleDBA入门进阶与诊断案例 3/4

     7.5 Oracle 10g Redo的增强   7.6 Redo的内容   7.7 产生多少Redo   7.8 Redo写的触发条件   7.9 Redo Log Buffer的大小设置   7.10 commit做了什么?   7.11 日志的状态   7.12 日志的块...

    深入解析OracleDBA入门进阶与诊断案例 2/4

     7.5 Oracle 10g Redo的增强   7.6 Redo的内容   7.7 产生多少Redo   7.8 Redo写的触发条件   7.9 Redo Log Buffer的大小设置   7.10 commit做了什么?   7.11 日志的状态   7.12 日志的块...

    [Oracle] Data Guard 之 Redo传输详解

    1、使用ARCn传输Redo日志默认情况下采用ARCn传输redo日志,不过只有在最高性能模式下才可以使用ARCn(具体可参考《[Oracle] Data Guard 之 三种保护模式介绍》),采用ARCH传输Redo日志的示意图如下:其大致过程如下...

    深入解析Oracle.DBA入门进阶与诊断案例

    7.5 Oracle 10g Redo的增强 304 7.6 Redo的内容 307 7.7 产生多少Redo 310 7.8 Redo写的触发条件 314 7.8.1 每3秒超时(Timeout) 314 7.8.2 阈值达到 314 7.8.3 用户提交 315 7.8.4 在DBWn写之前 315...

    Oracle DataGuard 生产库dg最佳实施文档

    2. 创建11g数据库基本目录 3. 修改配置lisener监听文件 4. 修改配置tnsname.ora文件 5. 重启监听服务(主库备库都要执行) 6. 启动备库到nomount状态 7. 备库做RMAN恢复 8. 在备库上,启动redo apply 四、 备库...

    Oracle 11g Dataguard参数详解

    注:本文译自《Oracle Data Guard 11g Handbook》 Page 78 – Page 88 就Data Guard(后面都写成DG)来说,我们只关注如下三种参数: 1.独立于数据库角色的参数 2.数据库角色为primary时的参数 3.数据库角色为...

    如何使用log miner分析oracle日志

    当我们不小心误操作致使数据库数据丢失、改变时, 需要对数据库对象做基于时间点的恢复,找到我们需要的数据,这个时间点不能认为精确确定,我们可以通过对oracle日志进行分析,而获得无操作的精确时间点。...

    Oracle性能究极优化

    下面我们增加 SGA 重做日志的大小: DB3: Log Buffer Database Block Size 2K SGA Buffer Cache 128M SGA Shared Pool 128M SGA Redo Cache 16M Redo Log Files 16M Tablespaces Dictionary TPC Results Load Time ...

    Oracle常用命令大全集

    正在看的ORACLE教程是:Oracle常用命令大全集。第一章:日志管理  1.forcing log switches  sql> alter system switch logfile;  2.forcing checkpoints  sql> alter system checkpoint;  3.adding online ...

    [Oracle] Data Guard CPU/PSU补丁安装详细教程

    非Data Guard的补丁安装教程可参考《[Oracle] CPU/PSU补丁安装详细教程》,Data Guard需要Primary和Standby同时打上补丁,所以步骤更复杂一些,其主要步骤如下:1.在Primary停止日志传输服务;2.关闭Standby数据库,...

    Oracle数据库数据丢失恢复的几种方法总结

    根据oracle数据库的特点和提供的工具,主要方法有以下几种方法: 利用逻辑备份使用import工具丢失数据的表 利用物理备份来通过还原数据文件并进行不完全恢复 利用dbms_logmnr包从redo log文件中恢复 利用...

    [Oracle] Data Guard 之 三种保护模式介绍

    这样会有一个严重的问题,就是当standby出现故障或网络故障,导致日志无法同步时,primary数据库会被shutdown,这在生产系统中是不可接受的,因此这种模式很少用。 2)最高性能模式(Maximum Perfor

Global site tag (gtag.js) - Google Analytics