• 1. Oracle 10g RAC 培训
  • 2. 什么是 Oracle RAC 集群?Oracle Real Application Server,真正应用集群,简称Oracle RAC ,是Oracle的并行集群,位于不同服务器系统的Oracle实例同时访问同一个Oracle数据库,节点之间通过私有网络进行通信,所有的控制文件、联机日志和数据文件存放在共享的设备上,能够被集群中的所有节点同时读写 。
  • 3. 了解体系结构集群的 数据库服务器镜像磁盘 子系统高速交换机和 互联集线器或 交换机结构网络集中 管理控制台存储区域网低延迟互联用户无单点故障共享缓存
  • 4. 了解体系结构共享磁盘数据库 共享内存/全局区域共享的 SQL日志 缓冲区. . .. . . 共享内存/全局区域共享的 SQL日志 缓冲区 共享内存/全局区域共享的 SQL日志 缓冲区 共享内存/全局区域共享的 SQL日志 缓冲区GES&GCSGES&GCSGES&GCSGES&GCS共享数据模型
  • 5. 了解体系结构公用网络节点 1 共享存储重做日志所有实例数据库和控制文件OCR 和 voting 磁盘(oracle_home)操作系统CRS集群互联数据库实例 1ASM 实例 1节点 2操作系统CRS数据库实例 2ASM 实例 2节点 3操作系统CRS数据库实例 3ASM 实例 3集群互联. . .
  • 6. 了解体系结构客户端首先访问某个实例,让后再通过集群管理软件访问到数据库的数据;节点之间使用内部连接进行通讯。
  • 7. 了解体系结构集群术语 基本功能 通过消除作为单点故障 (SPOF) 的节点和 Oracle,实现了高可用性 通过增加额外的处理容量,实现了可伸缩性 硬件组件 专用互联/网络交换机 共享存储器/并行访问/存储交换机 软件组件 操作系统、集群管理器、DBMS/RAC、应用程序 各种集群管理器之间的区别
  • 8. RAC 提供的好处多节点负载均衡; 提供高可用:故障容错和无缝切换功能,将硬件和软件错误造成的影响最小化 。
  • 9. RAC 提供的好处通过并行执行技术提高事务响应时间----通常用于数据分析系统; 通过横向扩展提高每秒交易数和连接数 ;----通常对于联机事务系统; 可扩展性好,可以方便添加删除节点,扩展硬件资源
  • 10. Oracle Clusterware 介绍Oracle Clusterware 是一个集群软件,使用它做集群的所有操作系统必须相同。 使用Oracle Clusterware 将多个装有相同操作系统的服务器捆绑到一起,当对这些集群的服务器进行访问时,就像访问一台服务器一样。 Oracle Clusterware 要求两个集群组件: (1)voting disk(表决磁盘):用于记录集群节点的信息。RAC 用它来确定哪些实例是集群实例。当网络发生故障时,还要用它存储的信息进行健康检查(例如检查成员服务器是否可用)和仲裁。表决磁盘必须存放在共享磁盘上。 (2)Oracle Cluster Registry(OCR,集群注册),用于记录集群配置信息。集群注册也必须存放在共享磁盘上。
  • 11. Oracle Clusterware 组件进程
  • 12. Oracle Clusterware 进程 crsd: 负责管理集群的高可用操作。管理的crs资源包括数据库、实例、监听、虚拟IP,ons,gds或者其他,操作包括启动、关闭、监控及故障切换。改进程由root用户管理和启动。crsd如果有故障会导致系统重启。 cssd,管理各节点的关系,用于节点间通信,节点在加入或离开集群时通知集群。该进程由oracle用户运行管理。发生故障时cssd也会自动重启系统。 oprocd – 集群进程管理 —Process monitor for the cluster. 用于保护共享数据IO fencing(IO隔离 )。io fencing用来防止脑裂 (split brain)的。在心跳网卡全部中断通讯的时候,各个节点由于失去了联系,会抢夺资源,这时候谁最先fencing disk霸占住,谁就是主用,抢不到的还是备用。 仅在没有使用vendor的集群软件状态下运行 evmd :事件检测进程,由oracle用户运行管理
  • 13. RAC 进程 使用缓存融合(Cache Fusion)技术技术对数据进行处理    缓存融合(Cache fusion)工作原理:   1.其中一个节点会从共享数据库中读取一个block到db cache中   2.这个节点会在所有的节点进行交叉db block copy   3.当任何一个节点缓存被修改的时候,就会在节点之间进行缓存修改   4.为了达到存储的一致最终修改的结果也会写到磁盘上
  • 14. RAC 进程RAC 使用两个进程来保证每个实例都包含一个查询或事务所需要的数据: Global Cache Service (GCS) 和 the Global Enqueue Service (GES)。 GCS 和 GES 使用 Global Resource Directory (GRD)来维护和记录每个数据文件的状态。GRD(全局资源目录)的内容分布在所有活动的实例上,RAC 的特定进程与 GRD 结合,使得 RAC 可以使用缓存融合,下面是 RAC 的几个进程: (1)LMS—Global Cache Service process(全局缓存服务进程) (2)LMD—Global Enqueue Service Daemon (全局查询服务守护进程) (3)LMON—Global Enqueue Service Monitor (全局查询服务监视进程) (4)LCK0—Instance Enqueue Process (实例查询进程)
  • 15. Oracle 集群存储选项需要存储的基本软件和数据
  • 16. Oracle 集群存储选项各部分支持的存储系统
  • 17. 规划体系结构消除单点故障 工作负载分布(负载均衡)策略 Net 服务 (SQL*Net) Oracle10g 服务 使用网格控件监控和管理并达成服务级别协议 处理节点 – 足够的CPU 以适应故障 可伸缩 I/O 子系统 使用 ASM 和 S.A.M.E.
  • 18. 规划体系结构无单点故障 集群互联 FastEthernet、千兆以太网 公用网络 以太网、FastEthernet、千兆以太网 推荐的服务器配置 每台服务器最少 2 个 CPU 2 个和 4 个 CPU 服务器的成本通常最经济 每个 CPU 1-2 GB 内存 光纤通道、SCSI 或 NAS 存储连接
  • 19. 规划体系结构集群互联冗余 RH 3.0 NIC Bonding www.kernel.org/pub/linux/kernel/people/marcelo/linux-2.4/Documentation/networking/bonding.txt 本地 ORACLE_HOME OCFS V2 支持共享的 ORACLE_HOME 裸设备上的 OCR 和 Voting 磁盘
  • 20. Oracle RAC 安装操作系统环境准备(程序包、内核参数、用户等) 安装CRS 安装oracle 软件 打补丁 创建数据库 Oracle RAC 功能测试(failover、loadbalance) 详细安装步骤可参看在各操作系统相关的安装文档
  • 21. Oracle RAC 负载均衡功能参数配置tnsnames.ora 参数配置 ZHUMORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = vip1)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = vip2)(PORT = 1521)) (LOAD_BALANCE = yes) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ZHUMORCL) (failover_mode = (type=session) (method=basic) (delay=5) ) ) ) 在sql 下运行以下语句: SQL>ALTER SYSTEM SET local_listener = '(ADDRESS = (PROTOCOL = TCP)(HOST = 19.48.25.11)(PORT = 1521))' SCOPE=both SID='ZHUMORCL1'; SQL>ALTER SYSTEM SET local_listener = '(ADDRESS = (PROTOCOL = TCP)(HOST = 19.48.25.12)(PORT = 1521))' SCOPE=both SID='ZHUMORCL2';
  • 22. Oracle RAC日常基本维护命令使用 SRVCTL 启动/停止所有实例 $ srvctl start database -d orcl $ srvctl stop database -d orcl 查看所有实例和服务的状态 $ srvctl status database -d orcl Instance orcl1 is running on node linux1 Instance orcl2 is running on node linux2
  • 23. Oracle RAC日常基本维护命令集群资源状态查询 crs_storacle@agxt1:/home/oracle> crs_stat -t 名称 类型 目标 状态 主机 ------------------------------------------------------------ ora....SM1.asm application ONLINE ONLINE agxt1 ora....T1.lsnr application OFFLINE OFFLINE ora.agxt1.gsd application OFFLINE OFFLINE ora.agxt1.ons application OFFLINE OFFLINE ora.agxt1.vip application OFFLINE OFFLINE ora....SM2.asm application ONLINE ONLINE agxt2 ora....T2.lsnr application OFFLINE OFFLINE ora.agxt2.gsd application OFFLINE OFFLINE ora.agxt2.ons application OFFLINE OFFLINE ora.agxt2.vip application OFFLINE OFFLINE ora.szshare.db application OFFLINE OFFLINE ora....e1.inst application OFFLINE OFFLINE ora....e2.inst application OFFLINE OFFLINE
  • 24. Oracle RAC日常基本维护命令集群资源启动/停止 crs_start –all crs_stop –all
  • 25. Oracle RAC日常基本维护命令特定节点上节点应用程序的状态 $ srvctl status nodeapps -n linux1 VIP is running on node: linux1 GSD is running on node: linux1 Listener is running on node: linux1 ONS daemon is running on node: linux1 ASM 实例的状态 $ srvctl status asm -n linux1 ASM instance +ASM1 is running on node linux1.
  • 26. Crs Troubleshooting 日志分析文件 $ORA_CRS_HOME/crs/log Contains trace files for the CRS resources. $ORA_CRS_HOME/crs/init Contains trace files of the CRS daemon during startup. Good place to start with any CRS login problems. $ORA_CRS_HOME/css/log The Cluster Synchronization (CSS) logs indicate all actions such as reconfigurations, missed check-ins, connects, and disconnects from the client CSS listener. In some cases, the logger logs messages with the category of auth.crit for the reboots done by Oracle. This could be used for checking the exact time when the reboot occurred.
  • 27. Crs Troubleshooting 日志分析文件$ORA_CRS_HOME/css/init Contains core dumps from the Oracle Cluster Synchronization Service daemon (OCSSd) and the process ID (PID) for the CSS daemon whose death is treated as fatal. If abnormal restarts for CSS exist, the core files will have the format of core. $ORA_CRS_HOME/evm/log Log files for the Event Volume Manager (EVM) and evmlogger daemons. Not used as often for debugging as the CRS and CSS directories. $ORA_CRS_HOME/evm/init PID and lock files for EVM. Core files for EVM should also be written here.
  • 28. Crs Troubleshooting 日志分析文件$ORA_CRS_HOME/srvm/log Log files for Oracle Cluster Registry (OCR), which contains the details at the Oracle cluster level. $ORA_CRS_HOME//log Log files for Oracle Clusterware (known as the cluster alert log), which contains diagnostic messages at the Oracle cluster level. This is available from Oracle database 10g R2.Log Directory Structure in the Oracle RDBMS
  • 29. 避免逐出故障节点如果一些重要进程无法快速响应,则可能会收到“heart beat”故障 为 LMS 启用实时优先级 不要长时间在 100% CPU 情况下运行系统 确保对于控制文件和 voting 磁盘都具有良好的 I/O 响应时间
  • 30. 性能监控/调整首先对单个实例 10g 进行调整 Oracle 性能管理器 / ADDM / AWR RAC 特定的视图 使用脚本/跟踪进行补充 监控 V$SESSION_WAIT 看等待事件中涉及哪些块 跟踪类似 10046/8 的事件可提供附加的等待事件详细信息 如同在单个实例上一样监控警报日志,跟踪文件 使用系统级别监控进行补充 CPU 使用率从来不会达到 100% I/O 服务次数从来不会大于可接受的阈值 CPU 在优化级别运行队列
  • 31. 性能监控/调整单个节点上明显的应用程序不足无法通过多个节点得到解决。 单点争用。 在 SMP 上不可伸缩 单个实例数据库上的 I/O 限制 在单个实例数据库上进行调整来首先确保应用程序的可伸缩 使用 v$segment_statistics 识别涉及的对象,从而识别/调整争用 如果绝大部分时间都是在等待,则集中关注排在前面的那些等待事件 如果出现 CPU 限制,则集中关注有问题的 SQL 在基础系统(数据库、操作系统、存储子系统等)上维护一个均衡负载 单个组件上过多的负载可能会引起异常行为。
  • 32. 性能监控/调整判断 RAC 是否是性能瓶颈 “集群”等待事件类 交叉实例通讯量的数量 请求的类型 块的类型 反应时间 块接收时间 缓冲区大小因素 带宽因素