Created
October 24, 2014 04:32
-
-
Save chenzx/f7e230693de685cd88f7 to your computer and use it in GitHub Desktop.
深入理解Oracle RAC 12c
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
深入理解Oracle RAC 12c | |
跳转至: 导航、 搜索 | |
目录 | |
1 概述 | |
2 集群件管理和故障诊断 | |
3 运行实践 | |
4 新特性 | |
5 存储和ASM | |
6 应用设计上的问题 | |
7 管理和调优一个复杂的RAC环境 | |
8 备份与恢复 | |
9 网络实践 | |
10 优化RAC数据库 | |
11 锁与死锁 | |
12 并行查询 | |
13 集群件和数据库升级 | |
14 RAC One Node | |
概述 | |
p5 RAC使用缓存融合技术来管理所有节点的数据缓存并保持一致... | |
为什么不从高速IO网络读取,而是从其他节点的缓存? | |
p15 GCS GES GRD | |
还有一些后台进程:LMS LMON LMD LCK DIAG | |
集群体系结构 | |
全共享 | |
主-从:SQL Server集群、Oracle Fail Safe、RAC One Node | |
主-主:RAC | |
无共享 | |
12cR1 Flex集群 | |
p28 松散耦合的叶节点架构,少数Hub节点紧耦合 | |
多个物理网卡组合为一个逻辑网卡:Linux Bonding/MS NIC Teaming | |
11.2.0.2 HAIP | |
RAC组件:ASM + Clusterware | |
crsctl | |
OCR(集群注册表) | |
p19 ONS(通知服务) FAN(快速应用通知) FCF(快速连接故障切换) | |
脑裂:STONITH算法,健康节点让问题节点重新启动? | |
透明应用程序故障切换(TAF) | |
虚拟IP | |
应用连续性(AC) | |
滚动升级? | |
拥有成本:标准版Oracle数据库包含RAC,但CPU插槽总数<=4 | |
与大型SMP服务器相比更便宜,因为采用了Linux和低成本硬件? | |
RAC最多可承受N-1台故障,每个硬件规划留有N-1/N的余量 | |
集群件管理和故障诊断 | |
OHAS:GPnP GNS GIPC mDNS osysmond ologgerd | |
CRS(上层堆栈):CRS CSS CSS代理 CSS监视 CTSS EVM ONS oraagent orarootagent | |
一堆管理命令行程序:略 | |
运行实践 | |
LREG:执行监听的注册 | |
故障切换类型:NONE SESSION SELECT(记住游标位置)TRANSACTION | |
11.2 SCAN(前端重定向?) | |
12c GDS | |
临时表空间 | |
SS队列、使用CI队列的DFS锁句柄、11g+ 释放盘区缓存批量进行(每次100个) | |
大量数据的修改 | |
减少全局缓存的传输、尽可能在同一节点内分配所有的PX服务 | |
性能指标收集:OSWatcher、AWR、statspack | |
参数文件管理 | |
密码文件管理 | |
svrctl:管理数据库和实例 | |
新特性 | |
Flex集群和Flex ASM | |
略 | |
多租户:在一个CDB中有多个PDB | |
CDB$ROOT | |
PDB$SEED | |
PDB | |
其他:IPv6 GDS ACFS/ADVM 在线资源属性修改 | |
基于策略的数据库管理 | |
ASM磁盘组 | |
... | |
存储和ASM | |
存储协议:SCSI FC IP NAS | |
多路径:一组SCSI设备指向同一个存储设备(LUN) | |
ASMLib? | |
p169 强烈建议用像RAID 1+0这样的外接RAI配置来保证ASM冗余 | |
在ASM上存放OCR和voting disk | |
ACFS | |
应用设计上的问题 | |
‘右边索引增长竞争’(由于自增键?): | |
哈希索引分区 | |
哈希表分区(如果没有做好分区修剪数据,逻辑读会大量增加) | |
反向索引(不支持范围查询) | |
(应用控制的)使用多个不同范围的序列 | |
大量的TRUNCATE/DROP | |
可引发对象级别的检查点事件;全局等待会导致严重的问题 | |
全局临时表(GIT)? | |
序列缓存 | |
ORDER,CACHE 20 | |
空闲块链表和自动段表空间管理(ASSM) | |
过多的提交 | |
LGWR延迟会导致LMS延迟,进一步使其他节点全局缓存事件需要更长的等待,‘gc buffer busy wait’ | |
长时间没有提交的事务(导致很多回滚?) | |
本地访问* | |
小表更新 | |
索引设计 | |
位图索引很适合只读表;‘压缩索引’ | |
低效的执行计划 | |
过多的平行扫描 | |
全表扫描:直接路径? | |
应用之间的关联性* | |
应用改变的实施 | |
library cache lock/pin | |
管理和调优一个复杂的RAC环境 | |
共享 vs 非共享的主目录 | |
服务器池 | |
11gR2 实例锁定 | |
SQL> ALTER SYSTEM SET CPU_COUNT=2 SCOPE=BOTH SID='instance_name'; | |
小规模 vs 大规模 | |
裂脑:节点驱逐、fencing、STONITH | |
在网络层建立冗余 | |
为应用工作负载分配足够的CPU/内存并设定限额 | |
实施DBRM和IORM | |
避免配置过多的LMS_PROCESSES | |
AUTO DOP | |
节点驱逐 | |
延伸距离集群——摘要、概括和最佳实践 | |
RAC安装配置在不同OS中的考虑/窍门 | |
Linux:HUGEPAGES、ASMM、GI | |
Windows: | |
让公用NIC优先于私有NIC? | |
使用异步IO | |
备份与恢复 | |
p240 利用快速恢复区(FRA) | |
多通道 | |
RMAN> configure channel 1 device type disk connect 'sys/passwd@RONDB_1'; | |
p250 块改变跟踪(BCT) | |
网络实践 | |
p265 RDS协议需要特定硬件(InfiniBand)和内核驱动 | |
与UDP类似,RDS中没有ACK机制,而且更进一步的,RDS设计是零复制;完全跳过了IP(?) | |
p270 VIP的存在避免了对于TCP超时的不必要等待 | |
集群内联/私有网络 | |
每块网卡需要配置独立的子网段(11.2+)=〉否则,拔除第一块网卡上的网线,ARP就无法正确更新ARP缓存(why?) | |
巨帧:MTU=9000 | |
LB和故障转移 | |
12c HAVIP | |
内核参数 | |
net.ipv4.ipfrag_low/high_thresh, net.ipv4.ipfrag_time | |
GC Lost Block问题 | |
GNS | |
优化RAC数据库 | |
GRD* | |
RAC等待事件* | |
GC Current Block 2-way/3-way | |
GC CR Block 2-way/3-way | |
GC CR Grant 2-way/GC Current Grant 2-way | |
GC CR Block Busy/GC Current Block Busy | |
GC CR Block Congested/GC Current Block Congested | |
占位等待事件 | |
发送端分析 | |
GCS Log Flush Sync | |
GC Buffer Busy Acquire/Release | |
唯一索引 | |
表块 | |
DRM进程概述* | |
AWR报告和ADDM | |
锁与死锁 | |
全局资源类型: | |
BL(Buffer Lock),GCS管理 | |
非BL:TX、TM、SQ,GES管理 | |
锁模式* | |
锁争用的故障排除方法* | |
入队争用(暂略) | |
TX | |
TM | |
HW | |
DFS Lock Handle | |
SV资源 | |
CI资源 | |
p373 队列类型:SS/IV/CI | |
Library Cache Locks/Pins | |
队列统计信息 | |
v$wait_chains | |
Hanganalyze | |
死锁 | |
LMD跟踪文件 | |
并行查询 | |
p416 Partition-Wise Join | |
传统PX使用的是Producer/Consumer模式,... | |
集群件和数据库升级 | |
RAC One Node |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment