Oracle RAC 概要
- Oracle9i 开始提供的cluster技术
可用性 | 实现高速故障转移,使得系统故障时的downtime时间最小化 |
扩展性 | 根据负荷量可以使得处理性能最优化 |
投資成本 | 可以导入最低限度的结构,减少初始成本
提供灵活使用资源,实现最优的投资成本 |
Oracle ASM 概要
- Oracle 10g开始提供的数据库最优存储管理
- Striping
- 磁盘group中,用所有的disk进行Striping
(不会发生hotspot)
Ø维持性能
- 镜像
- 根据文件类型,在oracle水平中进行镜像链接
(2重化 / 3重化 / 没有镜像)
Ø可用性的担保
- 动态rebalance
- disk的追加 / 删除时自动重新配置数据
Ø扩展性
数据中心最合适的平台
RAC / ASM 的进化历程
Oracle Grid Infrastructure 整体像
可以不考虑资源的物理位置将其作为服务来使用
传统的系统管理
- 特定的服务器上,运行RAC 数据库以及应用
- 在各个系统中,配置成本较高的专用服务器
- 对每个系统都进行资源最优化
对策base管理
- 排除专用服务器这种对策
- Oracle Clusterware 可以整合所有服务器
- 服务器的分配会自动管理Oracle Clusterware
通过服务器池对服务器虚拟化
服务器池
- 管理Oracle Clusterware 下的服务器的理论group
- 可以在cluster中制成多个
- 服务器池是排他的
- 1个服务器可以仅仅只在指定的服务器池中进行配置
- 通过不同的负载分离cluster
服务器池的种类
Grid Infrastructure 安装时的步骤
- 用户定义服务器池
- Generic 服务器池
- Free 服务器池
üGeneric 服务器池
–通过固定RAC 数据库运行的服务器的传统方法来管理使用(管理者管理)
–通过以下的用途来使用的服务器池
- 管理者管理 RAC 数据库
- 下位版本(11g Release 1) 的数据库
- 已经更新到11g Release 2 的数据库
- 11g Release 2 单独实例
- RAC One Node
Free 服务器池
–无论哪个服务器池都配置了无法分割的服务器
服务器池的属性
- 用服务器池定义的属性(对策属性)
最小数(MIN_SIZE)
- 服务器池中包含的服务器的最小值 (默认为0)
最大值(MAX_SIZE)
- 服务器池中包含的服务器的最大值 (默认为0)
重要度(IMPORTANCE)
- 服务器池的重要度(範囲:0-1000) (默认为0)
- 值越大越重要
- Oracle Clusterware 基于上述对策属性,对于服务器池分配服务器池
服务器池的管理 (作成删除结构变更)
- 使用Oracle Clusterware 来管理的对象
- 通过服务器控制utility(SRVCTL) 操作
- 可以通过Enterprise Manager 操作可能
- 服务器池的作成
$ srvctl add srvpool -g <pool_name> [-l <min>] [-u <max>] [-i <importance>] [-n “<server_list>”] [-f]
实例
$ srvctl add srvpool -g pool1 -l 0 -u 2 -i 5
- 服务器池的删除
$ srvctl remove srvpool -g <pool_name>
- 服务器池的结构变更
$ srvctl modify srvpool -g <pool_name> [-l <min>] [-u <max>] [-i <importance>] [-n “<server_list>”] [-f]
服务器池的管理 (查看status结构)
表示服务器池的status(服务器的分割)
$ srvctl status srvpool [-g <pool_name>] [-a]
[执行例] $ srvctl status srvpool -g pool1 –a
服务器池名: pool1
活跃服务器数: 2
活跃的服务器名: node1,node2
NAME=node1 STATE=ONLINE
NAME=node2 STATE=ONLINE
表示服务器池的结构信息 (服务器池的属性)
$ srvctl config srvpool [-g <pool_name>]
[执行例] $ srvctl config srvpool -g pool1
服务器池名: pool1
重要度: 5、最小: 0、最大: 2
候补服务器名:
对策base管理与服务器池
- 根据业务条件,定义提供服务的服务器数量以及重要程度
- Oracle Clusterware 根据服务器池的对策要求,自动分割服务器
- 不需要考虑配置服务的物理服务器
- 空白服务器,可以作为用于修复故障、扩展来使用
RAC 数据库的结构类型
- 管理者管理
- 传统的类型
- RAC将运行的服务器来固定
- 在Generic 服务器池中配置
- 对策管理
- 对策base管理
- RAC 运行的服务器以及实例都是动态的
- 构成cluster的所有节点都是运行候补
- 制成配置RAC的服务器池
对策管理 RAC 数据库
- 范围base管理
- 基于提供服务的范围的Capacity管理
- 服务器池是配置RAC 数据库以及服务的infrastructure
- 根据服务器池的扩展 / 减少,动态变更RAC实例以及服务配置
- RAC 数据库的范围
- 服务器池的最小数 / 最大值
- RAC 数据库的范围
- 服务的范围
- UNIFORM (服务器池的最小数 / 最大值)
- SINGLETON (単一)
对策管理 RAC 数据库的作成
- 在DBCA 中追加选择结构类型
- 管理者管理
- 选择构成RAC 的服务器
- 管理者管理
- 对策管理
- 指定构成RAC 的范围 (服务器数)
- 范围反映了服务器池的最大值
对策管理 RAC 数据库的活用例
1.构成5 节点的cluster环境
2.制成配置RAC 数据库的服务器池
3.制成RAC 数据库、服务
故障时,从Free池中动态分配服务器
4.变更服务器池的设定
RAC 数据库以及服务都会自动扩展
Oracle Clusterware 组件
通过Agent监视进程与资源
资源modeling的強化
- 为了在RAC 11g R2 中实现 (管理面、灵活性、泛用性)应用高效可用需要强化资源modeling
资源类型
- 可以在资源类型中定义资源属性
- 将共通的属性作为拥有资源的模板来使用
- 定义拥有资源类型的阶层结构
- 提高资源类型的可用性
- 可以制成custom资源类型
资源的依存关系
- 定义所有资源共通的依存关系
- 通过资源属性 START_DEPENDENCIES / STOP_DEPENDENCIES 定义
- 控制资源的启动順序以及停止順序
- 开始的依存性 (START_DEPENDENCIES)
–強依存性 (hard)
–弱依存性 (weak)
–集中依存性 (attraction)
–Pull up依存性 (pullup)
–分散依存性 (dispersion)
- 停止的依存性 (STOP_DEPENDENCIES)
–強依存性 (hard)
Oracle Clusterware 资源的依存关系
开始的依存关系
停止的依存关系
通过Agent进行资源监視
- 对所有资源都提供共通的,有高可用性的framework
- 作为提供资源以及应用的高可用性服务的常驻进程导入Agent
- 通过agent管理所有资源
Oracle Clusterware 资源的监視间隔
种类 | 资源 | 资源名 | 监視 CRS Agent | 监視间隔(秒) 11g R2 | 监視间隔(秒) 11g R1 |
节点应用 | GSD (*2) | ora.gsd | oraagent | 60 | 600 |
ONS | ora.ons | oraagent | 60 | 60 | |
VIP | ora.hostname.vip | orarootagent | 1 | 15 | |
网络 | ora.netnum.network | orarootagent | 1 | 没有 | |
数据库 | 数据库 | ora.dbname.db | oraagent | 1 | 300 (常时) |
服务 | ora.dbname.srvname.svc | oraagent | 600 | 没有 | |
listener | ora.listenername.lsnr | oraagent | 60 | 600 | |
Oracle ASM | Oracle ASM | ora.asm | oraagent | 60 (常时)(*1) | 300 (常时) |
diskgroup | ora.diskgroupname.dg | oraagent | 300 | 没有 | |
Oracle ACFS Registry | ora.registry.acfs | orarootagent | 30 | 没有 | |
SCAN | SCAN VIP | ora.scan_name.vip | orarootagent | 1 | 没有 |
SCAN listener | ora.scan_listenername.lsnr | oraagent | 60 | 没有 | |
其他 | OC4J (*2) | ora.oc4j | scriptagent | 60 | 没有 |
- CRSCTL (应用用)
- 在配置应用服务器池以及、管理资源时使用
- SRVCTL (Oracle 用)
- 在管理配置RAC 数据库的服务器池以及、CRS 资源
(有「ora」 Joint speech的服务器池以及资源)时使用
11g R2 ASM 的组件
ASM 动态volume管理 (ADVM)
概要
- 可以动态加载的vendor的 OS VFS 驱动
–与Linux 的 Kernel 完所有整合
- 对于ACFS 以及其他文件系统
提供标准的disk Device interface
- 提供动态volume管理服务
–新追加的 ASM 文件类型:
- ASMVOL (ASM Volume File)
- ASMVDRL(ASM Volume Dirty Region Logging)
–制成ASM volume文件时自动制成 OS 的device文件
- /dev/asm/vol1 (Linux)
- asm_dga_vol1 (Windows)
ADVM
ADVM 驱动的加载
- 被加载的三种驱动
#lsmod |head -4
Module Size Used by
oracleacfs 787588 2
oracleadvm 177792 6
oracleoks 226784 2 oracleacfs,oracleadvm
–Oracle ACFS 驱动
–Oracle ADVM 驱动
–Oracle Kernel Service 驱动(OKS 驱动)
- 通过ora.asm(init) 管理 ADVM 驱动
–开始资源的话就会加载ASM驱动
–停止资源的话就会卸载ASM 驱动
- 加载驱动的话
- 在/sbin下配置 ACFS 与 ADVM相关的命令
- 在/lib/modules下安装驱动
- Oracle Kernel Service 驱动 (OKS驱动) – oracleoks.ko
- 内存管理
- 锁定以及cluster的同步
- ADVM 驱动 – oracleadvm.ko
- 从Volume device中对动态volume映射I/O需求
- 文件系统的volume管理驱动interface
- ACFS 驱动 – oracleacfs.ko
- 支持所有的 ACFS 的文件操作
- ASM 文件与 ASM volume文件的Extent map的操作
- ADVM 驱动可以比ASM 的 AU(allocation unit) 単位Striping做到粒度更细致的Striping
- 可以更加灵活的设定volume文件的Striping粒度
–默认的Striping単位是 128k(4k ~ 1M)
–在以volume文件単位作成时定义
- 制成ADVM volume
–将尺寸设定为10GB,对 ASM diskgroup以 volume1 的名字来制成
ASMCMD> volcreate -G advm -s 1G volume1
–查看ADVM volume
ASMCMD> volinfo -G advm volume1
Volume Name: VOLUME1
Volume Device: \\.\asm-volume1-279
State: ENABLED
Size (MB): 1024
Resize Unit (MB): 32
Redundancy: UNPROT
Stripe Columns: 4
Stripe Width (K): 128
Usage:
Mountpath:
- Mount ADVM volume
–将制作完成的 ADVM volume对 Z: 驱动进行mount,登录到系统Registry中
C:\> advmutil mount Z: asm-volume1-279 /register
ASMvolumeasm-volume1-279被Z:mount了
驱动字符Z:被asm-volume1-279分配了
–
–查看mount
C:\> advmutil list /registry
驱动字符 ASMvolume
=============================================
Z: asm-volume1-279
- 制成文件系统
–Z: 驱动中以 advm 的volume标签制成NTFS 文件系统
C:\> format Z: /fs:ntfs /v:advm /q
文件系统的种类是 RAW。
新文件系统是NTFS。
警告: 硬盘的驱动 Z: 的数据丢失。
是否格式化(Y/N)? y
正在快速格式化1024M byte
制成文件系统结构。
格式化完成。
1048572 KB : 所有disk区域
1041044 KB : 可以使用的disk区域
ASM cluster文件系统(ACFS)
- 适合整合、grid、或者客户端
数据中心的潮流是专注于存储整合
–通过与ASM同时使用,可以整合结构化数据与非结构化数据
- 支持数据库以及应用的泛用文件数据
追踪文件、警报日志、应用报告、二进制文件、
结构文件 、画像、音声、text等
- 利用NFS 或者 CIFS,实现从远程客户端的访问
- 通过与cluster ware进行整合,作为cluster ware资源来管理
- 性能
–通过ASM Striping技术排除瓶颈
–文件系统区域中可以设定更加高度的Striping
- 高可用性
–通过ASM 镜像链接技术实现高可用性
–可以承受整体框架故障的结构
–块水平的故障可以自动修复
–通过使用Oracle Clusterware 可以保障高可用性
- 扩展性
–继承ASM 的scale out型的架构
–通过自动rebalance功能,可以缩小文件系统区域的online、迁移、扩展、缩小
- 管理性
–通过在多平台中应用,实现管理的标准化
–通过一元管理数据库区域与减少管理成本
- 平衡的分散配置
- 所有 ASM volume文件都灵活使用ASM extent的分散配置,在diskgroup中均匀分散
- ACFS 内的文件可以是 ASM 的冗长结构(镜像链接)
- 镜像链接属性有以下三种
- 2 重化/3 重化/没有镜像
- ACFS 会灵活使用ASM 的文件调整功能
$ /sbin/acfsutil size +50G /mnt/acfs
- ACFS 会使用以下两种高速缓存
ØACFS 上的用户数据
- 一般与 Linux/UNIX/Windows 的文件系统相同
将OS 页面缓存作为文件高速缓存来使用
ØACFS 自身的元数据
- 将物理内存的一部分用于分割元数据高速缓存
可以配置ACFS 的文件与Use Case
- 可以配置ACFS 的文件
–Oracle home、trace文件、警报日志、应用文件、结构文件、视频、图片 etc
–【New】 RMAN 备份文件(11.2.0.3 ~)
–【New】 归档文件(11.2.0.3 ~)
–【New】 Data Pump damp set文件 (11.2.0.3 ~)
- Use case
–[SAN 型]
- 在构成ACFS 的服务器中直接使用
- 作为Oracle Database 以及其他产品的(FM、Apps 等)的共享repository来使用
–[NAS 型]
- 可以通过NFS/CIFS 来访问的共享文件系统
- 作为cluster应用的共享repository来使用
- ACFS 对客户端提供两种访问形式
- ACFS
–无法储存数据库文件
–对ACFS 不进行dismount,也不使用SHUTDOWN ABORT 命令.
–Oracle ACFS Registry资源不支持Oracle Restart 结构,仅仅支持Oracle Grid Infrastructure cluster结构
- ADVM
–无法因为Bootstrap或者循环文件系统来使用
–无法将ADVM作为ASMLIB disk来使用
–对RAW 进行映射,无法作为 RAM volume device来使用
–无法制成分区( fdisk 命令)4
ACFS 的活用 其一
Database Home on ACFS
- 提供在ACFS上设置Oracle Database 的二进制,实现
共享oracle home环境 - 安装、构成的简单化
- 灵活使用ASM 的镜像链接以及、rebalancing的功能
- 提高对策base管理的 RAC 的亲和性
–通过ASMCA 制成 Oracle Database 用的 ACFS
- 注意
–如果在ACFS上配置Oracle Database 的话,存在与共享 ORACLE_HOME 环境相同的缺点
–不可进行Rolling更新以及rolling批量
–可能会变成単一故障point
- 需要讨论是否使用ACFS snapshot以及 ASM 的镜像链接を
- 与一般的文件系统相同将ACFS 输出,
可以通过NFS 以及 CIFS 来远程访问
- snapshot
- ACFS 的point In-time copy
- 仅仅捕获有更新的文件块 (Copy On Write)
- 可以读写的snapshot (11.2.0.3 ~)
- 复制(11.2.0.2~)
- 可以通过ACFS的网络来复制
- 通过配合Tagging使用,可以灵活指定复制对象
- 安全性 (11.2.0.2~)
- 控制OS 的访问时,可以进行控制更加细微的部分
- 通过文件操作 (open/create/delete..)可以控制时间段等
- 加密(11.2.0.2~)
- 可以从应用开始对ACFS区域的数据进行加密
- 指定文件単位、volume単位
- 使用ACFS 新功能时,需要设定compatible.asm 以及 compatible.advm
– SQL*Plus
SQL> alter diskgroup <DG名> set attribute ‘compatible.asm’ = ‘11.2.0.2.0’;
SQL> alter diskgroup <DG名> set attribute ‘compatible.advm’ = ‘11.2.0.2.0’;
– ASMCMD
ASMCMD> setattr -G <DG名> compatible.asm 11.2.0.2
ASMCMD> setattr -G <DG名> compatible.advm 11.2.0.2
ASMCMD> lsattr -l -G <DG名> %compat*
Name Value
compatible.advm 11.2.0.2
compatible.asm 11.2.0.2.0
compatible.rdbms 10.1.0.0.0
功能名 | compatible.asm | compatible.rdbms | compatible.advm |
可変 AU | >=11.1 | >=11.1 | n/a |
v$asm_attribute 视图的表示 | >=11.1 | n/a | n/a |
高速镜像再同步 | >=11.1 | >=11.1 | n/a |
可変extent | >=11.1 | >=11.1 | n/a |
Exadata存储 | >=11.1.0.7 | >=11.1.0.7 | n/a |
Intelligent Data Placement(IDP) | >=11.2 | >=11.2 | n/a |
OCR、投票disk的 ASM 管理 | >=11.2 | n/a | n/a |
支持4k sector disk驱动 | >=11.2 | >=11.2 | n/a |
ASM SPFILE 的 ASM 管理 | >=11.2 | n/a | n/a |
ASM 文件访问控制 | >=11.2 | >=11.2 | n/a |
ASM volume文件(ACFS) | >=11.2 | n/a | >=11.2 |
ACFS 复制、标记、安全性、加密 | >=11.2.0.2 | n/a | >=11.2.0.2 |
ACFS snapshot
point In-time copy
- 概要
- 获得snapshot时仅限pointer的拷贝,并且可以进行高效的区域管理
- ACFS 区域的online备份工具
- Read Only 的snapshot作为报告与分析的源来活用
- 在开发、测试环境中灵活使用可以读写snapshot
- 已获得的snapshot保存在同一文件系统中的
<mount point>/.ACFS/snaps 内 - 每个1 ACFS最多可以保存63个
- 管理方法
- 从Enterprise Manager中获得
- Copy-On-Write (COW) 是什么
- 复制数据对实际数据构成pointer
- 数据的备份时等等
- 不会复制实际数据
- 数据的更新时复制实际数据
- 如果高效使用disk space的话,就可以高效复制
- 使用文件系统的snapshot功能的技术
- OS 命令行工具
- /sbin/acfsutil snap create [/w|/r] <snap_name> <mountpoint>
- /sbin/acfsutil snap delete <snap_name> <mountp oint>
- 已获得的snapshot可以参考以下内容
- 在< mountpoint >/.ACFS/snaps目录中制成
- ACFS snapshot专用视图
- v$asm_acfssnapshots
- 管理方法
- Enterprise Manager、SQL*Plus
- ACFS 区域的online备份工具
- Read Only 的snapshot作为报告以及分析的源来使用
- 在开发以及测试环境中使用可以读写的snapshot
snapshot作成
C:\> acfsutil snap create /w test01_snap D:\mount\acfs_vol01
acfsutil snap create: snapshot的操作完成。
查看目录
C:\> dir D:\mount\acfs_vol01\.ACFS\snaps\TEST01_SNAP
2012/01/10 12:08 <DIR> lost+found
2011/01/11 21:09 0 test01.log.txt
查看SQL
SQL> select * from v$asm_acfssnapshots
FS_NAME VOL_DEVICE SNAP_NAME CREATE_T
———————- ——————— ————— ——–
D:\mount\acfs_vol01 \\.\asm-vol01-389 TEST01_SNAP 11-01-11
Oracle Cloud File System
- 概念
–提供云环境中的数据库、 Middleware、应用中的存储池
–对于数据库以及文件,提供可以整合存储的网络访问
– 支持灵活迅速的online存储流程Provisioning
通过Cloud File System 管理数据整合
- 为了使用Oracle Cloud File System 的功能的许可证定义
–参照:手册『Oracle Database 许可证信息 11g 2(11.2)』
http://download.oracle.com/docs/cd/E16338_01/license.112/b56284/options.htm#CJAEEFEG
Oracle Cloud File System
Oracle Cloud File System是需要独立许可证的产品。使用自动存储管理,提供用于存储的cluster文件系统,可以使用高效的数据管理功能以及安全性功能。Oracle Cloud File System 分为以下几个部分。
- 自動存储管理(ASM)
- ASM 动态volume管理(ADVM)
- ASM cluster文件系统(ACFS)
- 对ACFS 文件加上统计操作的标签
- ACFS 的读取专用snapshot
- ACFS 的持续复制
- ACFS 的加密
- ACFS 的roll base安全性
- Oracle Clusterware(支持ASM以及ACFS)
- Cloud FS是展示使用案例的Metalink Note (Doc ID 1322405.1)
https://support.us.oracle.com/oip/faces/secure/km/DocumentDisplay.jspx?id=1322405.1&h=Y
- A restricted use license to use Oracle Cloud File System (CloudFS) is included with all editions (EE or SE or SE One) of the database specifically for storing the following file types:
- Oracle Database software binaries/homes and related configuration, administrative and diagnostics files needed to operate the software
- Oracle middleware and application software binaries/homes (EBusiness Suite, PeopleSoft, My SQL, Golden Gate etc…) and related configuration, administrative and diagnostics files needed to operate the software
Storing any ‘user data’ in CloudFS i.e. database external files, documents, images, etc requires a CloudFS license. Oracle Cloud File System licensing is needed on all nodes of a cluster that installs the Grid Infrastructure. When upgrading from 11.2.0.1 to 11.2.0.2, CloudFS licensing is required if using any of the new features in 11.2.0.2. Otherwise, no new licensing is required.
- 定义1:是否是Oracle 产品相关文件
- 例:Oracle Database 的二进制、警报日志、trace文件
ØYes的情况
- 有Oracle Database 的许可证的话,就可以有限制地免费使用
ØNo的情况
- 需要Oracle Cloud File System 许可证
Ø不明的情况
- 用定义2 判断
- 定义2:是否是Oracle 产品输出的文件
- 例: Oracle EBS 输出的账目、PL/SQL 输出的text文件
ØYes的情况
- 有Oracle Database 的许可证的话,就可以有限制地免费使用
ØNo的情况
- 需要Oracle Cloud File System 许可证
Platform | Oracle DB Version |
ACFS | Advanced Data Services | ||||
snapshot | 复制 | 标记 | 安全性 | 加密 | |||
Linux | 11.2.0.1 | ○ | Read Only | – | – | – | – |
11.2.0.2 | ○ | Read Only | ○ | ○ | ○ | ○ | |
11.2.0.3 | ○ | Read Write | ○ | ○ | ○ | ○ | |
Windows | 11.2.0.1 | ○ | Read Only | – | – | – | – |
11.2.0.2 | ○ | Read Only | – | – | – | – | |
11.2.0.3 | ○ | Read Write | ○ | ○ | ○ | ○ | |
Solaris | 11.2.0.1 | – | – | – | – | – | – |
11.2.0.2 | ○ | Read Only | – | – | – | – | |
11.2.0.3 | ○ | Read Write | – | – | – | – | |
AIX | 11.2.0.1 | – | – | – | – | – | – |
11.2.0.2 | ○ | Read Only | – | – | – | – | |
11.2.0.3 | ○ | Read Write | – | – | – | – |
Leave a Reply