Tag Archives: rac

Cache Fusion 剖析(一)

本系列文章翻译自网站:DataDisk.co.uk (原文链接) Cache Fusion 是RAC的核心,本系列文章意在帮助大家理解RAC的内部和运作机理,有些名词和概念在新版本的RAC中改变了名称或者很少提及,但是本质保持不变。 译文开始 我之前在GRD那一节提到过Cache Fusion, 这里我会介绍更多实现的细节。我也会给出一些我自己的RAC系统上的具体例子。 Cache Fusion尽可能使用最有效的通信方法以降低私有网络上的通信流量,现在管理RAC环境您已经不需要关心这么底层的细节了,当然了解这些有助于理解RAC的工作原理和调试问题。RAC看起来只有一个大的buffer但事实并非如此,每个节点上的buffer cache依然保持独立,数据块通过分布式锁和消息操作实现共享。RAC通过私有网络把数据块复制到别的实例,因为这比从磁盘读取要有效的多,没错,内存和网络协同工作比磁盘I/O更快。 数据块从一个实例的buffer cache传输到另外一个实例的buffer cache被称之为ping。正如较早前提到的那样,当一个实例需要一个数据块,它会发送请求到锁的master实例要求以希望的锁方式访问此块,这个过程叫做BAST。当实例收到BAST消息之后,它就会尽快的把持有的锁降级,但此时实例或许要将对应的数据块写回磁盘,这个操作叫做Disk ping或者hard ping。在最近的RAC版本中,Disk Ping已经被大大降低,然后总还是有少量的Disk Ping发生,因而更加依赖于实例间的数据块传输。在最新版本的RAC中,当实例收到BAST后,发出数据块或者把锁降级可能被延迟几十毫秒,这点额外的时间使得持有锁的实例可以完成当前活动的事务并妥善标记数据块的头。这样接受的实例就不用在接受/读取数据块之后立刻去检查事务的状态。检查事务状态是一个耗时的操作,因为可能需要访问(或者ping)相应的回滚段头和回滚段数据块。参数_gc_defer_time用来定义实例延迟降级锁的时长。 在GRD那一节我提到了PI(过去映像),简单来说他们就是存在于实例本地buffer cache中的数据块的副本。当一个实例需要发送一个刚刚修改过的数据块给别的实例时,它就会保留那个数据块的一个副本,标记为PI。PI一直被保留直到那个数据块被当前的所有者写回磁盘。当一个数据块被写回磁盘且此数据块有一个全局角色,也就是说此数据块有PI存在于其他实例的buffer cache。GCS就会通知持有这些PI的实例丢弃这些PI。当需要做检查点时,就会通知GCS要做写的动作,GCS负责找到最新的数据块映像并通知持有这些映像的实例执行数据块写操作。GCS然后通知所有全局资源的持有者他们可以释放包含PI副本数据块的缓存,从而允许释放全局资源。可以通过表X$BH查看过去映像的数据块。 select state, count(state) from X$BH group by state; Note: the state column with 8 is the past images. … Continue reading

Posted in 数据库 | Tagged , | Leave a comment

Post rootupgrade.sh for 11gR2 upgrade

When you upgrade Grid Infrastructure from pre 11.2.0.3 to 11.2.0.3, after execute rootupgrade.sh and lost you OUI windows by incident says: first node reboot. You might be confused what was missed and need to do afterward. After rootupgrade.sh successfully executed … Continue reading

Posted in 数据库 | Tagged | Leave a comment

如何在11gR2 RAC上配置GoldenGate (下)

上回书说到在11gR2上配置GoldenGate,今天应要求继续贴出下篇,下面的步骤是针对GoldenGate的HA配置 第一步 Add VIP resource for OGG 1. Create new VIP resource, use IP address 10.245.48.47 as example, login as root and run: # /u01/app/11.2.0/grid/bin/appvipcfg create -network=1 -ip=10.245.48.47 -vipname=ggatevip -user=root NOTE 1: '/u01/app/11.2.0/grid' is the default Oracle GRID infrastructure software … Continue reading

Posted in 数据库 | Tagged , | Leave a comment

installment loans 如何在11gR2 RAC上配置GoldenGate (上)

Oracle 11gR2 RAC和GoldenGate都是Oracle比较热门的产品,经过简单的学习和阅读文档,配置单节点的GoldenGate进行数据的复制相信不是什么太有难度的事情,但是对于利用GoldenGate进行RAC系统到RAC系统的复制,还是有些配置的技巧和策略设置的,前阵子就遇到一个这样一个问题:假设源和目标分别是两节点的RAC系统,如何保证目标部分节点失效的时候replicate会自动切换? 其实如果了解GG的工作机制和RAC的资源管理,问题的解决就十分清晰了。 best installment loans for bad credit 今天就从系统的介绍下11gR2 RAC上OGG (Oracle GoldenGate的简称,下同)的完整配置步骤,并简单谈谈如何解决上面这个场景的问题。 第一阶段:下载OGG(可以参考之前的单节点的复制例子,不再赘述) OGG的下载地址 第二阶段:OGG的安装 1)登录源端的RAC系统中的任一个节点,并在ACFS上建立一个供OGG使用的共享目录,比如叫/cloudfs/goldengate 2)解压OGG的安装包到/cloudfs/goldengate目录 3) 设置好OGG工作的环境变量,比如 export LIBRARY_PATH=/cloudfs/goldengate:$ORACLE_HOME/lib:$LD_LIBRARY_PATH 4)启动ggsci并创建目录,然后进行必要的设置,启动manager $ ggsci GGSCI > create subdirs (optional, support for DDL/Sequence) Create and edit the parameter file … Continue reading

Posted in 数据库 | Tagged , | Leave a comment

srvctl起停Oracle实例内幕

早上跟小荷 @oracleblog 探讨说利用srvctl 和sqlplus启动Oracle实例上有什么不同,大概的工作过程是怎样的。 并且他在Solaris上遇到了一个因为project设置问题导致srvctl启动失败的bug,详细过程可以参考这个帖子。 今天就简单介绍下在Oracle 11gR2中利用srvctl启动和停止Oracle instance的过程以及对应的日志查看方法。 简单来说,过程就是:srvctl->srvm (UIserver)->CRSD PE(proxy engine)->CRSD AGFW(agent framework)->agent->GIMH 1)环境是11.2.0.3,Linux64bit,两个节点的RAC $ ./crsctl query crs activeversion Oracle Clusterware active version on the cluster is [11.2.0.3.0] [Wed Nov 30 09:11:43][crsusr@node05:/scratch/u01/11203/grid/bin] $ 2)首先检查下,当前的数据库状态和资源状态 $ date; ./srvctl status database … Continue reading

Posted in 数据库 | Tagged , | 2 Comments

How to configure IPMI to work with Oracle RAC

We know there are several kinds of kill/eviction in Oracle RAC CSS component (Cluster Sync Service). instance kill -> node member kill The relationship between these two kinds of kill regarding CSS is: A member kill escalation. For example, database … Continue reading

Posted in 数据库 | Tagged | 1 Comment

如何修改Oracle 11gR2中的资源属性

今天简单介绍下Oracle GI 11gR2中CRS相关资源属性的修改。 在Oracle 11gR2中,所有的资源在安装结束的时候都有一些默认属性。这里的资源不仅仅包含CRS资源比如nodeapps, asm, listener, db等等,也包括在11gR2中新引入的ohasd资源(当然crs也是OHASD资源的一种),包括crsd, gpnpd, gipcd, ctssd等等。这些属性比如超时时间,启动脚本,依赖关系等等。当然这里提供的只是一个方法,至于是否需要修改,什么时候修改则请慎重使用,而且很多资源资源是不被官方支持的。 在11gR2中,资源属性的查看方法是使用crsctl命令,另外简单提一句,经常看到很多人在查看资源的时候习惯于使用之前版本(10gR2, 11gR1)的一些命令,比如crs_stat, crs_start ,其实这些命令在11gR2已经废弃,保留他们的目的也只是为了向后兼容。在11gR2中另外一个推荐的命令就是srvctl。这两个命令在11gR2都得到了很大的增强,而且基本可以完成所有的管理任务了。 crsctl status resource -t 可以显示所有的CRS资源及状态 ?View Code BASHcrsctl status resource -t -init 可以显示所有的OHASD资源及状态 bash-3.00# /u01/app/crshome/bin/crsctl stat res -t -init ——————————————————————————– NAME TARGET STATE SERVER STATE_DETAILS … Continue reading

Posted in 数据库 | Tagged , | Comments Off on 如何修改Oracle 11gR2中的资源属性

RAC Team Hiring (Beijing)

RAC Team Hiring – 2 opening 一个是有关ACFS的,另外一个是虚拟化,有Linux/Unix管理经验和虚拟化经验优先。 欢迎推荐或者自荐 Email: winston.huang@oracle.com 1) (Senior)Member of Technical Staff-RAC Product Development * Beijing, China KEY OBJECTIVE: Responsible for implementing, maintaining, and enhancing test scripts, plan, and methodologies that ensure exhaustive testing of all assigned … Continue reading

Posted in 数据库 | Tagged | Leave a comment