51CTO下载OracleRAC学习笔记基本概念及入门.docx
- 文档编号:6030648
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:24
- 大小:636.22KB
51CTO下载OracleRAC学习笔记基本概念及入门.docx
《51CTO下载OracleRAC学习笔记基本概念及入门.docx》由会员分享,可在线阅读,更多相关《51CTO下载OracleRAC学习笔记基本概念及入门.docx(24页珍藏版)》请在冰豆网上搜索。
51CTO下载OracleRAC学习笔记基本概念及入门
OracleRAC学习笔记:
基本概念及入门
oracle10grealapplicationclustersintroduction
4n"Jye6j0]_W_)^%2dmE
/:
__WP_F_1、什么是cluster
||__kn__m?
]_q_-e8q
_A__"f9_B*一个cluster是由两个或是多个独立的、通过网络连接的servers组成的。
几个硬件供应商多年以来提供了Cluster性能的各种需求。
一些Clusters仅仅为了提供高可用性的,在当前活动的node发生故障时转移到次节点node。
另一些是为了提供分布式的连接、工作的可扩展性。
另一个Cluster的共同特点是,对于一个应用程序,它可以看做是一个单独的server。
同样,管理几个servers应该尽可能像管理一个server一样简单。
Cluster管理器软件提供了这种功能。
Wmm%)O_gCf,vHKf@X
_@,pLw_}r如果是singleserver的nodes,文件必须存储在其各自node能访问的位置。
存在有几个不同拓扑结构来解决数据访问的问题,这主要依赖于Cluster设计的主要目标。
_*_`E}<^_-m)__h?
*:
_uz+\_4__~相互连接时一个物理的网络连接,作为每个Cluster节点直接的交互通信。
s<6[=ICV;808%__q
_IrE]R
=S_简而言之,一个Cluster就是一组独立的servers,它们共同协作,组成一个singlesystem。
__i__
JT,,lO__I_V
u_4MGg_GI{2、什么是OraclerealApplicationCluster(RAC)
q_I_=pq_#{u"\_5_>N;&
uh6___bB__RAC是一个软件可以使你通过运行多个依赖相同Database的Instance,使用Cluster硬件。
数据库files被存放在物理或是逻辑上连接每个节点的磁盘上。
以便于每个活动的Instance都可以对files进行读写操作。
pZ`____Q"_H*{}N1_6z
_T_z}q_$/_RAC软件管理着数据的访问。
所以更改操作在Instances之间是被相互协调的,并且每个Instance看到的信息和数据镜像都是一致的。
-?
_s_C<|b=/k1&>K+Q_2
seTy_e_\~通过RAC结构,可以获得冗余,从而使得即使在一个系统crash或是不可访问时,应用程序也可通过其他Instance访问Database。
"_1@Xp\it@@~N3\_8
m_?
.va'"Rb3、为啥使用RAC
shEU[%x_bw7>B)h@_-_
W!
!
Vj_VSRAC可以高度利用标准的Cluster,降低模块servers成本。
:
D*HPLOb^-_pf/87>)+1
|sMXf_X|BRAC自动的提供了服务的工作量管理。
应用程序的服务可以被分组或分类,组成商业组件完成应用工作任务。
RAC中的服务可以是持续的、不间断的Database操作,并为多Instance上的多个服务提供支持。
可以设计services到一个或多个Instance上运行,并且交替Instances可以用于备份Instances。
如果主Instance失败,Oracle会将services从失败的Instance节点移动到活动的可替代的Instance上。
Oracle也会自动的通过连接进行数据装载的平衡。
y$.V3O__~y7_f_hBUm
Y\@_yyq+mRAC利用多个廉价的computers共同提供Database的服务,就像一个大的computer一样,服务于只有大规模SMP才能提供的各种应用。
0%I_tq_\t_XF9W_PA!
_{
QjGk_ScR*RAC是基于共享磁盘结构的,在需求上可以增加或缩减,而不需要人为的在Cluster中进行数据的分隔。
并且RAC可以简单的增加、移出Cluster中的servers。
qv0o_F!
']H3Yfl]co_U
Jl_lf5<~V_QQ,}5
_4、Clusters和可扩展性
#T__q{qlx)__h"i~J
|!
7m#&s_@_J&M_>__
~jUiZ7E5H如果使用对称多处理(symmetricmultiprocessingSMP)机制能够对应用程序提供透明的服务,则应该使用RAC也可以得到同样的效果,而不需要进行应用程序代码的任何改动。
?
_cv*_uh_'I_kw_40V)5
j~_o__q4#s当一个节点发生失败,RAC可以排除该DatabaseInstance和node本身,从而保证Database的完整。
_h
~_kA6{0_B.bNx_pL
;__]m1>kbW下面是一些可扩展性的例子:
/@%_(v_EU]p7K+]>
_I8C.Jq+__允许更多并发的批处理。
_z_gP|7._!
/OZfzgA3
d<'Do3_4y允许更大程度的并发执行。
___~oQmqG__B^_b_O
5W%{^=a8_i在OLTP系统中可以是连接的用户大增。
7o1y_R_sf__,[p__LAV
.z*r"2f61)可扩展性的层次:
主要有四个层次
k2=2a=BC_vp6(c0Q!
j'
Fx_7X)_._Lhardware的可扩展性:
相互连接性是它的关键,这一般依赖于较高的带宽和较低的延迟。
_|9d____pXE[Ke_(_
_J_!
&,s_)_OS的可扩展性:
在OS中,同步方法可以决定系统的可扩展性。
在一些情况下,硬件的潜在可扩展性会因为OS无力并发维持请求的多个资源而被丢失。
__D__~RA|_T__TPi\
_\Wyv$O_1Database管理系统的可扩展性:
在并发结构中的一个关键因素是并发是由内部影响的还是外部进程影响的。
此问题的答案影响了同步的机制。
^__{mq>_,x^aeCH[$/s!
W}lhntb_B应用层次上的可扩展性:
应用程序必须被明确的设计为可扩展的。
当系统中如果多数情况下,每个session都在更新相同的data,则可能产生瓶颈。
这不仅是指RAC,对于single-instance系统也是一样。
+h`Znpj?
_B46_ip\$8F
v_}_+S*q需要明确的是,如果任何一个层次没有达到可扩展性,不管其他层次可扩展性多强,并发的Cluster进程都可能失败。
可扩展性不足的典型原因是共享资源的访问。
这使得并发的操作在此瓶颈上序列化执行。
这不仅仅是RAC中的局限,而是所有结构中的局限性。
_B~?
x1p%P~~
;!
p_
Skg:
_\yB8Hv__|D=[Z2)scaleup和speedup
__+-ohk__CnT3jz2x$S
{=OB^|U.L_VV}(_F|a_
ox_/"__S^scaleup是工作量和资源都成比例增加时能维持相同性能水平的能力(相应时间)
_7\@;._W,d_t]|;-,S_I
jzC,4]|8'Scaleup=(volumeparallel)/(volumeoriginal)–timeforipc
l;?
JC__?
)_c__4)mT_(t
'_&)q}xqH 4&C6_7JOS$_t___Tj -_3Co z%_[Speedup=(timeoriginal)/(timeparallel)–timeforipc A? Yjo_}OEF"_RLZa _ [4I_mtl;其中,ipc是进程间通信的简写——interprocesscommunication __8Q^_oQq >1Y(SK`GPY<_6GGU]#G j=h)8__aZ8~>$,_W4 p}U_(OWO6F }td__"EhsWzbnj__>_S/ u^X 6__! =zGva_1@$~MZD _ tle[3_-(c_wky0_z^_ _em 7oYQ? __|AzU[KdW1、RAC软件原理 F53_;_2,"_LQAOYj_2 __bn_Y0mnEQFojE__t >ZGI_fwu_"在一个RACInstance中,会见到一些普通Instance中不存在的后台进程,它们主要是用于维持Database在每个Instance中的一致性。 管理全局资源,具体如下: ? }.-M_v! d_N;`_ww__>^ 3=8w{_B#WLMON: 全局队列服务监控进程——GlobalEnqueueServiceMonitor r_/)li_sVLMD0: 全局队列服务守护进程——GlobalEnqueueServiceDaemon N! )#Q_h4\LMSx: 全局缓冲服务进程,x可以从0到j——GlobalCacheServiceProcesses K__4zBvP_LCK0: 锁进程——Lockprocess %iHxY6a+^dDIAG: 诊断进程——Diagnosibilityprocess +_.pMQ0? ca_=NgLM_k_ $zI_Ck1_[B在Cluster层,可以找到ClusterReadyServices软件的主要进程,它们在所有平台上提供标准的Cluster接口,并实现高可用性的操作。 在每个Clusternode上都可以看到如下的进程: l5_l2#efpeC\&j_*: _m '_! o\'_"3uCRSD和RACGIMON: 用于高可用性操作的引擎。 __xe8 _]SoOCSSD: 提供成员节点和服务组的访问 U(4D,3Q_EVMD: 事件检测进程,由oracle用户运行管理 GuF(mW<__OPROCD: Cluster的监控进程 N)! Zw%Mlv_42~cA@b_T 3N5l=N3.b-此外还存在几个工具用于管理Cluster中全局层次上的各种资源。 这些资源是ASMInstance、RACDatabase、Services和CRS应用节点。 本书中涉及的工具主要有ServerControl(SRVCTL)、DBCA和EnterpriseManager。 bds9Y_Nm? w'#k2zfMSC __&CXX4DY_2、RAC软件存储原理 1`__: -(P__+Xz>/__a "@so_nL_R}ILZ? ]_ot&5 3}gmY&]yX&Oracle10g的RAC安装分为两个阶段。 第一阶段是安装CRS,其次是安装带有RAC组件的Database软件并创建Cluster数据库。 CRS软件使用的Oraclehome必须不同于RAC软件使用的home。 尽管可以将Cluster中CRS和RAC软件通过使用Cluster文件系统共享存储,但是软件总是按一定规则安装在每个节点的本地文件系统中。 这支持在线补丁的升级,并消除了单节点软件造成的失败。 另外有两个必须存储在共享的存储设备中: XwQM_"$F __At7{t_|_ "J__Ic~Up7votingfile: 其本质上是用于ClustersynchronizationServices守护进程进行节点信息的监控。 大小约为20MB。 F=|e00_Pp_#uL____)q4 Cg__]6_YfOracleClusterRegistry(OCR)文件: 也是CRS关键的组成部分。 用于维护在Cluster中高可用性组件的信息。 例如,Cluster节点列表,Cluster数据库Instance到节点的映射和CRS应用资源的列表(如Services、虚拟内部链接协议地址等)。 此文件是通过SRVCTL类似的管理工具自动维护的。 其大小约100MB。 j_Q['=@_o__'H__8E_ _doP,Dg#votingfile和OCRfile是不能被存储在ASM中的,因为它们必须在任何OracleInstance启动前就可以被访问。 并且,两者必须是在冗余的、可靠的存储设备中存放,如RAID。 推荐最好的做法是将这些文件放在裸磁盘上。 k_>_ea&_B=P_FB|___C *'0oE5n+va3、OCR的结构 _2M_so+[f_T5;8b_i _yT__+! _@h_b|E_s[_R _;=t08_: Cluster的配置信息是在OCR中维护的。 OCR依赖分布式的共享缓存结构用于优化关于Cluster知识库的查询。 在Cluster中的每个节点都通过OCR进程访问OCR缓存在其内存中维护着一个副本。 事实上在Cluster中,只有一个OCR进程对共享存储中的OCR进行读写操作。 此进程负责刷新(refresh)其自己拥有的本地缓存以及Cluster中其他节点的OCRcache。 对于涉及到Cluster知识库的访问,OCR客户端直接访问本地OCR进程。 当客户端需要更新OCR时,它们将通过本地OCR进程与那个扮演读写OCR文件的进程进行交互。 lsP _q_Z_qtJ_-+v 1rd__U^PTOCR客户端应用有: Oracle通用安装器(OUI)、SRVCTL、企业管理器(EM)、DBCA、DBUA、NetCA和虚拟网络协议助理(VIPCA)。 此外,OCR维护管理着CRS内部中定义的各种应用程序的资源的依赖和状态信息,特别是Database、Instance、Services和节点的应用程序。 _qcd_YY%oZ\ElZ_M_ _: s_9&_#ac配置文件的名字是ocr.loc,并且配置文件变量是ocrconfig_loc。 Cluster知识库的位置是不受限于裸设备的。 可以将OCR放置在由Clusterfilesystem管理的共享存储设备上。 c}_%v_p_]_Mg0.M$q_9 zX7c9tt_}note: OCR也可用于在ASM的单Instance中作为配置文件,每个节点有一个OCR。 %uK/~~j9_5l%6_2uX"K __'W{W-}[slOipv]_y4、RACDatabase存储原理 `7AfDBe(F_}1? _ek$X __)cZ{1I~)U;~%4|__=_ Sq}i97$__与single-InstanceOracle的存储方式最主要的不同之处在于RAC存储必须将所有RAC中数据文件存放在共享设备中(裸设备或是Cluster文件系统)以便于访问相同Database的Instance能够共享。 必须为每个Instance创建至少两个redolog组,并且所有的redolog组必须也存储在共享设备中,从而为了crash恢复的目的。 每个Instance的在线redologgroups被称作一个Instance的在线redo线程。 }ZO___=k_O6Fv,f_)_ ~hZX_@x';+此外,必须为每个Instance创建一个共享的undo表空间用于Oracle推荐的undo自动管理特点。 每个undo表空间必须是对所有Instance共享的,主要用于恢复的目的。 u_@o&b__..ZY_|_EW _=*=__`^N归档日志不能被存放在裸设备上,因为其命名是自动产生的,并且每个是不一致的。 因此需要存储在一个文件系统中。 如果使用Clusterfilesystem(CFS),则可以在任何时间在任何node上访问这些归档文件。 如果没有使用CFS,就不得不使其他Cluster成员在恢复时那些归档日志是可用的,例如通过网络文件系统(NFS)来实现。 如果使用推荐的flashrecoveryarea特性,则其必须被存储在共享目录下,以便于所有的Instance能够访问。 (共享目录可以是一个ASM磁盘组,或是一个CFS)。 P{s_Gtn@#D1N@_Y54M 8h**RO! [h5、RAC和共享存储技术 \OY&J%__K%k_Y4w& l;`|rFA"._存储是网格技术中的关键组成部分。 传统上,存储都直接依附在每个Server(directlyattachedtoeachindividualServerDAS)上。 在过去的几年来,更灵活的存储出现并得到应用,主要是通过存储空间网络或是正规的以太网来实现访问。 这些新的存储方式使得多个Servers访问相同的磁盘集合成为可能,在分布式环境中,可以获得简单的存取。 zr_=! }<+"tT14_r]<% =/Z;02vFstorageareanetwork(SAN)代表了数据存储技术在这一点的演进。 传统上,C/S系统中,数据被存储在Server内部或是依附它的设备中。 随后,进入了networkattachedstorage(NAS)阶段,这使得存储设备与Server和直接连接它们的网络向分离。 它在SAN遵循的原则进一步允许存储设备存在于各自的网络中,并直接通过高速的媒介进行交换。 用户可以通过Server系统对存储设备的数据进行访问,Server系统与本地网络(LAN)和SAN相互连接。 CqnFnl(! #X}"pJT_Z: $G'3^Ub_文件系统的选择是RAC的关键。 传统的文件系统不支持多系统的并行挂载。 因此,必须将文件存储在没有任何文件系统的裸卷标或是支持多系统并发访问的文件系统中。 _t7K`_N5BgKsi#_9E- 9s_g$d>w,(因此,三个主要的方法用于RAC的共享存储有: d_ 8/V_5_F.<_P_+eU_ e$tc: __dlL裸卷标: 既是一些直接附加的裸设备,需要用于存储,并以block模式进程操作。 _O9s(__n7_<7E60j1 @HAGM! zv_VClusterfilesystem: 也需要以block模式进程存取。 一个或多个Clusterfile系统可以被用于存储所有的RAC文件。 T____ez! lA>i@s>k\_? xD#o.Zf_e.自动存储管理(ASM): 对于OracleDatabasefiles,ASM是一个轻便的、专用的、最佳化的Clusterfilesystem。 __-O_;.`l! __9c$/dV 1Uo^m~bS-_6、OracleClusterfilesystem ac/w[dSC_E9__;rdpL+ F^%pGX@__OracleClusterfilesystem(OCFS)是一个共享文件系统,专门为OracleRAC设计。 OCFS排除了OracleDatabasefiles被连接到逻辑磁盘上的需要,并使得所有的节点共享一个ORACLEHome,而不需每个node在本地有一个副本。 OCFS卷标可以横跨一个或多共享disks,用于冗余和性能的增强。 _D)^_pllX9"f_U/__; 3GX{}_"_V下面时可放入OCFS中的文件类表: W____g_Sv _teIE[*Oraclesoftware的安装文件: 在10g中,此设置只在windows2000中支持。 说是后面的版本会提供在Linux中的支持,但我还没具体看。 _XpU1[zZ"_RwV__wH $_/_q8NhOracle文件(控制文件、数据文件、redologs文件,bfiles等) LC1_;_U_o"^d_t'#_a7 lF0}"Gw3T_共享配置文件(spfile) _! _n_'_*5on`_h_lnD2 _{cdx_+? _R<\v_9_& iB_jb_._: voting和OCR文件 zZ7_vXa@8c_$9oV_w=;_ __)d'_3M-OracleClusterfilesystem对开发人员和用户时免费的。 可从官方网站下载。 Csu_Q#aC w_Q{f? _ K;.\: ^P_fm7、自动存储管理(ASM) X_L6)^jq_6}\_D<_n], x__8_[7y*#是10g的新特性。 它提供了一个纵向的统一管理的文件系统和卷标管理器,专门用于建立OracleDatabase文件。 ASM可以提供单个SMP机器的管理或是贯穿多个OracleRAC的Cluster节点。 2Zy'-hK|$O]_w=_pB9F g_L__>(.UASM无需再手动调节I/O,会自动的分配I/O负载到所有的可用资源中,从而优化性能。 通过允许增加Database大小而不需shutdown数据库来调节存储分配,来辅助DBA管理动态数据库环境。 zYw+W=O(_Ed#b&A_ C_GA|.1Z6uASM可以维护数据的冗余备份,从而提高故障的容错。 它也可以被安装到可靠的存储机制中。 ^A+m{i_E.7a! R_: R__E _2E5(_h__8、选择RAW或CFS Gd]S\[YuH___Yu3_! |r_ 4$__O^/*#"CFS的优点: 对于RAC的安装和管理非常简单;对RAC使用Oraclemanagedfiles(OMF);singleOracle软件安装;在Oracledatafiles上可以自动扩展;当物理节点失败时,对归档日志的统一访问。 N_u_____51dS_zr: __D S_s_HH_! _裸设备的使用: 一般会用于CFS不可用或是不被Oracle支持的情况下;它提供了最好的性能,不需要在Oracle和磁盘之间的中间层;如果空间被耗尽,裸设备上的自动扩展将失败;ASM、逻辑存储管理器或是逻辑卷标管理其可以简化裸设备的工作,它们也允许加载空间到在线的裸设备上,可为裸设备创建名字,从而便于管理。 ry1Xe,Bvx _W)*__|_,rL>3_A5 Us7c~___? ( _73IA_nx_N_' j+Z1_I#v _Cet]k_B__JhV_KZ9 uiZHz_B_Xhbwb[ktG9、RAC的典型Cluster栈 ~_c<_5I_/TvX_H&Mf}` _OYI_g_Kli_GW)|_ F__1_kLS_mEzU_? _pr[ B5_[y_rcO在Cluster中的每个节点都需要一个被支持的相互连接的软件协议来支持内部Instance的交互,同时需要TCP/IP支持CRS的轮询。 所有的UNIX平台在千兆以太网上使用userdatagramprotocol(UDP)作为主要的协议并进行RAC内部Instance的IPC交互。 其他支持的特有协议包括用于SCI和Sunfire的连接交互的远程共享内存协议和超文本协议,用于超光纤交互。 在任何情况下,交互必须能被平台的Oracle所辨识。 _'bq-_eFS,_5G/_[op_ 0F_K! c'O0_使用Oracleclusterware,可以降低安装并支持并发症。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 CTO 下载 OracleRAC 学习 笔记 基本概念 入门