07月 3rd, 2008 |post by Kevin.yuan |【转载时请务必以超链接形式标明文章原始出处和作者信息】
前言: 本文主要记录了自己在学习和管理维护RAC过程中的一点心得和笔记,鉴于网上安装文档参考资料相对详尽,故尽量对此过程减少笔墨。RAC是一个相对复杂的体系,其高效稳定运行与主机/存储/网络等密不可分,因此文中很多认知难免存在偏颇疏漏之处,姑且抛砖引玉。藉此,希望能得到更多指正并不吝分享宝贵经验。
如不加特殊说明,后续提及环境皆为RedhatAS 4/Oracle 10gR2.
提供PDF下载,下载地址>>.ITPUB下载地址>>
目录:
一 RAC相关以及基础知识…
1.CRS简介…
(1).CRS进程…
(2).Virtual IP Address.
(3).OCR,Voting disk.
2.ASM相关…
3.RAC存储/网络需求…
(1).存储需求…
(2).网络需求…
4.其他概念…
(1).缓存融合…
(2).后台进程..
二 RAC安装…
1.安装规划部署…
2. 安装过程…
3.几点注意问题.
三 RAC管理维护…
1.CRS管理维护…
(1).OCR的管理维护…
(2).Voting disk管理维护…
2.RDBMS管理维护…
(1).spfile以及相关参数说明…
(2)REDO/UNDO管理
(3)Archivelog/flashback配置管理
(4)ASM管理
3.Database备份/恢复…
(1) .Archivelog对各节点可见的备份/恢复…
(2). Archivelog对各节点不可见的备份/恢复…
四.故障切换/负载平衡配置
1.Service 18
2. failover 18
(1).TAF以及实现
(2).FCF以及实现
3.Load Balance
五.其他维护实施相关/案例
1.集群中主机名的更改
2.集群中IP地址的更改
3.集群中节点的删除/添加
4.升级与迁移
5.高可用架构:RAC+DG
六.RAC监控优化
1.思路及等待事件说明
2.性能诊断
07月 1st, 2008 |post by Kevin.yuan |【转载时请务必以超链接形式标明文章原始出处和作者信息】
trigger抛出ORA-04091异常,无非是当前trigger下的事务access了一mutating table,比较常见的就是trigger访问了自身上的表.在一个指定on delete cascade模式下的父子表中,trigger中如果有对其相关的父/子表的访问,依然会抛出ORA-04091.这是比较隐性的.
拿oracle的示例表emp和dept来做这个试验.
dept的表结构如下:
create table DEPT
(DEPTNO NUMBER(2) not null primary key,
DNAME VARCHAR2(14),
LOC VARCHAR2(13));
emp表结构如下:
【阅读全文】
06月 20th, 2008 |post by Kevin.yuan |【转载时请务必以超链接形式标明文章原始出处和作者信息】
今天终于搭建好了属于自己的blog.
Wordpress是个好东西,也难怪它现在这么流行.只要有个php+mysql的主机环境,就可以轻松的搭建属于自己的blog平台.
本想买一个付费空间,出于blog刚破土而出,还是选择了使用免费空间作为练手和过渡.当然,使用免费有一定的风险,因为你不晓得它什么时候就无缘无故的关闭了,不过在我们做好充足的备份的前提下,这点小瑕疵对与像我这种Wordpress的新手来说,还是基本上可以忽略不计的.
如果你还不想付费而又急不可待的想拥有一个个人blog,那就高举免费大旗吧.推荐几个我用过de不错de php+mysql免费空间,都是国外的,相比国内来说,国外的服务商诚信度和稳定性都要好很多,而且,对免费用户的支持和问题响应度也还说的过去.
【阅读全文】
05月 10th, 2008 |post by Kevin.yuan |【转载时请务必以超链接形式标明文章原始出处和作者信息】
段空间手动管理的LMT下,Segment header被用来记录freelist的使用情况,extent的扩展分配情况以及记录HWM等重要信息。当table/index等object被建立的时候,被分配一个block用来记录segment header信息。随着object的数据量增大,导致 extent大量扩展,初始分配的这一个段头block必然不能维护容纳下当前的信息,Oracle将又继续分配一个/几个block用来存放(这些块,暂且称之为extent map block)。Oracle采用链表的方式,将这些块串联起来,用来维护整个segment。而这个/些block的逻辑存储位置,就是前一个segment header/extent map block块里记录中的最后一个extent 的下一个extent的首个块。做如下一个测试:
1.创建一个非ASSM管理的LMT表空间,设置uniform size 40K,使得在空间有限的情况下,extent尽量扩展
SQL>create tablespace test_mu datafile ‘E:\ORACLE\PRODUCT\10.2.0\ORADATA\DEMO\TEST_Mu.DBF’ size 500M segment space management manual uniform size 40K;
Tablespace created
2.创建表test_header
【阅读全文】
05月 10th, 2008 |post by Kevin.yuan |【转载时请务必以超链接形式标明文章原始出处和作者信息】
首先构造产生读一致性的案例环境,本例采用2个session来构造读一致性案例(当然一个session也可完成该实验)。为力求效果明了,本次排除延时块清除以及itl重用等情况。
Session 1:
SQL> conn mecoyoo/mecoyoo@test
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
Connected as mecoyoo
SQL> create table test_cr (id number, value number) tablespace test;
Table created
SQL> insert into test_cr values(1,10′);
1 row inserted
SQL> insert into test_cr values(2,20′);
1 row inserted
SQL> commit;
Commit complete
SQL> exec pro_test_cr; –执行pro_test_cr,在此过程中,开启session 2 并执行相应 DML操作,等待session 1 产生结果。
【阅读全文】
category:
Database | tags:
consistent read,
oracle |
Comments Off
05月 5th, 2008 |post by Kevin.yuan |【转载时请务必以超链接形式标明文章原始出处和作者信息】
有这样种情况,由于误操作了一个业务表(drop/truncate/delete column,etc..)幸被及时发现.此时,我们可以在短时间内恢复这个表的常规操作有这么几种:
1) Flashback/Logmnr(如果是DML类,可以使用闪回查询或者logmnr挖掘;如果是drop,可以使用flashback table,但若是字段的更改或者truncate等操作,上述就无法起到作用了)
2) Dataguard端恢复(当然,需要standby端设置delay,利用延迟应用日志时间差,来迅速将standby recover到故障时间点之前,然后利用逻辑exp&imp来实现表级恢复)
Dataguard体系下,方法2不失为一种高效简洁的办法.下面,看如下一个试验:
【阅读全文】
05月 5th, 2008 |post by Kevin.yuan |【转载时请务必以超链接形式标明文章原始出处和作者信息】
9i以后,Oracle Data Guard 有三种保护模式:
1、MAXIMIZE PERFORMANCE(最大性能模式):该模式下日志文件传送采用arch或者lgwr异步传送,可能丢失数据情况,对主库的性能影响最小。
2、MAXIMIZE AVAILABILITY(最大可用模式):正常情况下采用lgwr同步数据传输,异常情况切换到MAXIMIZE PERFORMANCE模式,是一种性能和数据保护折中的方案。
3、MAXIMIZE PROTECTION(最大保护模式) :该模式提供最大的数据保护,LGWR同步数据传输,对主库的性能影响最大。
应该说,这三种模式各有优劣点,选用何种模式作为容灾手段,依照系统情况灵活处理。
相比MAXIMIZE AVAILABILITY和MAXIMIZE PERFORMANCE,MAXIMIZE PROTECTION下的DG体系,对主库性能的影响相对易见的,尤其是单物理standby库情况,往往备库端的异常情况会导致主库的不可用。
【阅读全文】
category:
Database | tags:
Dataguard,
oracle |
Comments Off
05月 3rd, 2008 |post by Kevin.yuan |【转载时请务必以超链接形式标明文章原始出处和作者信息】
[摘录那段凌乱局促的往日,还有曾经的那些幼稚想法,权作对自己的警醒,生活总是一个过程,即便在若有所得中继续着若有所失...... ]
向往上海,只因为有个如此简单的理由–我不可能免俗,而且俗不可耐…
释怀,十一长假的第3天,日子依旧慵懒,唯一值得庆幸的,是我终究打算给自己一个迟到的决定,许是迫不得已.我决定要
离开了,去一个我不曾熟悉别人也不曾熟悉我的城市,去梦想我那个早就悸动已久却未曾有勇气面临的梦想..
一直以来,我始终迈不出一道坎去,久久横亘在我心中,又像是一种毒素,时不时发作起来刺激着我脆弱的神经。庆幸有了
逃离这个名义,我找了一个自我安慰与平衡点.感谢些些突发的变故,让我有了破茧的决心.
我把它看成是一次破茧,对于我,也许是一次重生.又或许是一次牢狱..前途本就是一件未曾可知的东西,我把握不住,至少我
不再去畏惧舍弃或是放手..成功与失败的界定,往往就在一瞬间的兑变.曾经我太怕去承担,过于希望有收获的回报,而现实往往
背离..
也许我错了,一路奔波,杭州,广州..城市与城市尽管有不尽相同的风情,很多定性的东西未曾改变..当我投向珠海那个过路
城市太多个人感情的时候,我发觉自己曾经的理由很牵强。也许我自以为是到无以复加,固执到连去追求都要遵循固定的模式。
我为自己设想了过多的轨迹.生活本不经由任何人安排,我所能做的,只是如何打理自己更好的适应生活..
那些子夜下的大排档,那些红绿灯下熙攘的人群,还有那些我未曾感知的温存..
—-2006年国庆于广州
category:
Life | tags:
Life,
呼天呛地 |
4 Comments