awr报告是获取数据库性能的重要入口。常规的使用方法是直接sqlplus调用awrrpt.sql来生成指定snapID的awr报告。但当需要生成每小时的awr报告时,使用这个方法就不是很方便了。即使是用bash脚本来写也相对来说麻烦一些。
这时候,我们可以使用dbms_workload_repository.awr_report_text(awr_report_html是用来生成html格式的)来生成awr报告.
SELECT output FROM TABLE(dbms_workload_repository.awr_report_text(1219033930,1,3,45))
其中4个参数分别为:DBID,instance_id,start_snap_id,end_snap_id.
通过脚本来控制输入输出,完成生成每小时的awr报告还是很容易的。
#!/bin/bash
#env vars
ORACLE_HOME=/u01/app/oracle/db_1
ORACLE_SID=orcl1
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_HOME
export ORACLE_SID
export PATH
#vars
typeset -i start_snap=$1
typeset -i end_snap=$2
typeset -i start_id=$1
typeset -i end_id=`expr $1 + 1`
DBID=1219033930
instance_num=1
hostn=`hostname`
connect_str="system/welcome1"
plsql_set="set heading off feedback off pagesize 9999 linesize 500"
sql_awr="SELECT output FROM TABLE(dbms_workload_repository.awr_report_text(${DBID},${instance_num},${start_id},${end_id}));"
spool_loc="${hostn}_awr.rpt"
SQL()
{
echo $connect_str
echo $plsql_set
while [ $start_snap -lt $end_snap ]
do
echo $sql_awr
sleep 10
start_snap=`expr $start_snap + 1`
start_id=`expr $start_id + 1`
end_id=`expr $end_id + 1`
done
}
#begin sql
SQL|sqlplus -s 》$spool_loc
-END-
Oracle
awr, rdbms
从整体架构上来说,Oracle RAC分为几大部分
- OCR&Voting disk
- CRS stack
- CRS resources
而CSS是CRS stack中的一部分,极重要的一部分,是整个RAC所有节点维系一致性的纽带。
CSS Daemon主要由Group Management(GM)和Node Monitor(NM)组成。
- GM:管理instance and communicate with LMON
- NM:时刻监控集群中各个节点的生存状态。通过network heartbeat 和disk heartbeat来确保各节点alive. 例如,解决split-brain,network/process failure.
NM和GM都有一个Master node。而且选择方法也不尽相同,就现有资料及log来说,
- NM:master被称为RM(reconfig manager),the lowest node number.
- GM:1. oldest node 2. the node not the RM(也许出于平衡的考虑)
总之,就master node来说,是不一定一样的。这在多节点cluster里体现的可能更为明显些。
当有节点离开/加入cluster,CSS Daemon会进行reconfig。整体的一个流程如下:
- NM初始化,RM会给各节点发送同步信息,其他节点response with ACK.
- vote阶段,RM会发给各节点一个写vote的信息。其他节点反馈一个带有vote信息的ACK(包括node标识,状态及GM lister endpoint)
- split检查,RM会利用vote信息来判断cluster中是否发生了脑裂的症状。
- evict阶段,RM会根据split检查结果发送给失败节点evict信息,失败节点会返回ACK(等待MISSCOUNT),并reboot自己。
- NM 更新阶段,RM会发送一个带有cluster成员和节点信息的信息给所有节点,所有节点返回ACK确认,然后都发送一个reconfig event事件(NMEVENT_RECONFIG)给各自GM
- 确定GM master
- GM master广播成员变化信息,update新group的各节点新的通讯方式(endpoint),并完成锁同步。
11.2的RAC在集群方面变化很大,至于CSS internal的改变,还需要再仔细研究,也欢迎大家讨论。
-END-
Oracle
css, RAC
Oracle DB是一个多语言产品,因此OUI会根据系统语言来设定界面语言。这是个必备的功能。但当出现安装错误时,由于local的语言不是英语而造成信息的不明 确,确会给解决问题带来困扰。而且对windows这种不具有*uix那样方便的LANG设置来说,修改OUI界面语言为英语也是必要的一招。
方法很简单,修改安装文件中的oraparam.ini,改NLS_ENABLED=FALSE。这样OUI就成了单语言的了。
metalink里有相关解释, 563647.1
Oracle Universal Installer displays the translated GUI only if the variable NLS_ENABLED has been set to TRUE in the oraparam.ini file.
If the NLS_ENABLED variable is set to FALSE, all text is shown in English.
-END-
Oracle
install, tips
最近在做RAC 11.2 ocr&voting on ASM的测试. 由于OCR Master会影响到crsd.bin的运行状态,所以做了些深入的研究。
OCR(Oracle Cluster Registry), 记录了cluster的配置信息,譬如资源信息及依赖关系,节点、instance、service信息等。OCR利用了一个分布式的共享cache结构来优化cluster对cluster repository的查询。每个节点都有一个local cache,并与master node的cache保持一致。OCR信息的读写以及同步由OCR Process来控制。读cluster repository则直接从local cache获取,写则需要由local OCR process告知master OCR process来完成。

OCR Architecture
OCR Master(OCR Writer)特性:
- 每一时刻cluster只有一个master,只有它具有写入共享存储OCR的权限。其他节点都只能读,或者告知master去同步写。
- OCR master节点down掉后会有新的节点成为master,来接替写OCR的权限。
- OCR automatic backup由master节点完成。
判断OCR master的方法(首先需要明白,没有一个command或者utility可以帮助你来获取master信息)
- cluster中crs最快启动的节点
- cluster中node number最小的(当进行master切换时,这条就起作用了)
- 通过最新的auto backup(ocrconfig -showbackup auto)
- crsd.log and ocssd.log(最好的方法) the ocr master and cssd reconfig master is different(modified on 2009-6-18).
Log in ocssd.log in 11gR2
------------
2009-05-18 20:38:19.264: [CSSD][2851584912]clssgmCMReconfig: reconfiguration successful,
incarnation 138141189 with 2 nodes, local node number 2, master node number 1
------------
Log in crsd.log in 11gR2
------------
[ OCRMAS][2879687568]th_calc_av:5': Rturn persisted AV [186646784] [11.2.0.1.0]
2009-05-18 20:38:22.652: [ OCRMAS][2879687568]th_master: NEW OCR MASTER IS 1
------------
OCR Process:从10g到11.2,都没有这样的一个后台进程,我认为是crsd.bin进程的一个thread(望批评指正).
Client Process(or OCR client application)有很多种,例如OUI, SRVCTL, EM, DBCA, DBUA, NETCA, VIPCA.
-END-
Oracle
OCR, RAC