RAC student guide 的中文笔记
Rac student guide
一.体系结构
Cluser 的硬件结构
Nodes, interconnect,共享文件系统
Nodes
一个节点是一个服务器可以是smp也可以是numa的
在一个cluser中,需要两个或更多的节点.
每个节点支持rac数据库的一个实例.
Interconnect
通过标准网络协议例如 tcp/IP
如果使用gbit仪态网,vender-specific 提高是系统会有最好的效果.
共享文件系统
通常情况下, 裸设备在unix,逻辑驱动器在windows上
各个节点同时对共享文件系统进行访问
Cluser software
为了各个节点之间的通讯的软件.不同的操作系统不同的软件,unix 由产商提高这个软件,
如果是windows,由oracle提供
Cluser manager
包括gv视图,管理cluster的信息,控制cluser的成员.
节点monitor组建监控node的状态
OSD cluserware: 控制interconnect的信息;为rac传输信息和数据库
Rac 的组件:
一个rac数据库包括 数据库文件和一个到多个实例
磁盘访问
控制文件,数据文件,online redo log,quorum disk on some os,配置数据,spfile,配置信息,服务器参数文件
gsd进程
这个用来coordinate 其它的工具来管理rac 数据库和实例
一个gsd进程支持一个节点上的所有的数据库
gsd不需要配置
lmno: global enqueue service monitor
监控cluser的global enqueues 和资源
执行恢复操作
lmd: global enqueue service daemon
管理对global enqueues和资源的访问
处理对其它实例的资源请求
LMS: global cache service processes
管理在cluster中对data block的访问
传输block的images在不同的实例的buffercache中 (cache fusion)
LCK进程
辅助lms,管理实例的资源和cross-instance的call,这个call与协调访问字典和row cache对象有关系
诊断进程:
二.安装和转换
安装
1. 使用interconnect连接好cluser
2. 安装和配置osd cluserware
3. 确保所有的节点都可以访问shared disk
4. 创建需要的文件系统或分区
gsd
gsd配置文件必须identified为了完成一个rac的安装
当用dbca创建数据库的时候,gsd必须在运行
如果是手工建库或者是从8i升级,那么必须在每个节点手工的启动gsd.
Gsd配置文件
Srvconfig –init 初试化gsd配置文件
把一个single 实例转变成rac
1. 配置硬件
2. 评估表空间和log文件
3. 创建共享文件系统或裸设备
4. 从旧的数据库中取数据出来
5. 安装基于os的cluster 软件
6. 安装rac选项
7. 创建数据库
8. 把数据从旧数据库装入到新数据库
9. 调整数据库
10. 启动数据库
配置硬件:
1. 安装和测试cluster的interconnect
2. 确保每个节点都可以访问共享磁盘
评估表空间和log文件的需求
创建共享文件系统和裸设备
1. 控制文件的copy,数据文件,log member的一个成员
2. spfile
从旧的数据库中取data
1. rman
2. exp
安装osd和rac
创建db
把数据装入到新的db中
调整参数
启动数据库
三.管理和配置工具
GSD管理
启动gsd
server control 工具
srvctl
管理rac环境
管理cluser的数据库配置信息
提供cluser的数据库管理命令
需要gsd在运行
srvctl命令的用法
可以添加和删除cluster db,
可以添加和删除一个rac中的实例
可以rename一个实例
可以移动一个实例
可以为一个rac set和unset 环境
可以为一个实例 set和unset环境
rac的参数文件
可以继续使用client-side的初始化参数文件
可以使用一个spfile为所有的实例
这个spfile在共享文件系统上.
可以使用alter system命令改变所有的实例的参数.
Sid=’*’
* 表示所有的实例
四.可扩展性和cache fusion
可扩展性的级别
硬件
os
db
app
oracle net srvice的负债均衡
客户端的负责均衡
connection的负债均衡
自适应的并行查询
Cache Fusion
提供传输的扩展性
在实例间传输block 的image
跟踪资源的当前位置和状态
每个实例的sga的目录结构中保存有资源信息
cache fusion 的模型
Global resoure directory
由global cache service 来管理
记录
资源的模式
资源的角色
block在实例中的状态
在各个活动的节点发布资源的master
重新发布master在有必要的时候,例如实例的启动和关闭
global cache service 的资源模式
三种
null (默认的)
share(s) (查询)
exclusive(x) (可以改变block的内容,其它的实例就是null mode)
资源的角色
local 第一次请求资源的初试模式;只有一个实例可以有这个block 的dirty copy
global
在一个block在多于一个实例中变dirty了. Local 就变成了global
block只能由slobal cache service写到磁盘中
Cache fusion block 的transfer
例如有 abcd四个节点.
global cache service : gcs
1.
Read with no transfer
如果c节点需要向共享磁盘文件上读一个block,
那么它向global cache service 发送请求,
这个时候请求被定向到节点d,d是这个block的master (每个资源都有master)
gcs 把资源授权为 share mode 和local role,在目录中记录下了他的状态(目录在节点d),
然后通知c,c 把这个资源从null share
c开始i/o,现在c有了这个block 以s模式 (从磁盘文件读)
2.
read to write transfer
b也要这个block,并且不仅是读,而且还要改变它的内容.
B向d (这个block的mater)gcs发出请求,
Gcs向c发出请求,要求c把这个block 给b
C 把block 给b,
B收到了,告诉gcs,,现在b可以修改这个block了
3.
Write to write transfer
A向d节点的gcs发出请求,
Gcs告诉b节点放心他的x 锁,并且把当前的image传到a,
如果这个请求没有完成,就会方到gcs的队列里面了
b把这个block传到a,这个时候,要写log,强制log flush,把模式变成n
发送到a,并且告诉它这这个exclusive的资源可以用了
a收到了这个block的image,会通知gcs 并且告诉它block的status是x
这个时候,b不能对这个block做操作,虽然在它的buffer cache中.它还有这个block的copy.
4.
Write to read transfer
C要读 这个block,先向d (master)发出请求
Gcs要求a把它传输到c,
A接受到请求,完成它的工作,这可能会在a 写log 和log flush在发送这个block之前.
A会把它的x 锁降低到s (share)模式,
C把从a收到的block 的scn取出来,建设成一个资源assumption 信息为gcs,更新global resource directory
可以关闭Cache fusion,设置参数gc_files_to_locks
这样就向8i 的ops一样,别的节点要访问数据快,必须等待别的节点提交,写回数据文件中.
Cache fusion,就是从别的实例中读buffer
一.体系结构
Cluser 的硬件结构
Nodes, interconnect,共享文件系统
Nodes
一个节点是一个服务器可以是smp也可以是numa的
在一个cluser中,需要两个或更多的节点.
每个节点支持rac数据库的一个实例.
Interconnect
通过标准网络协议例如 tcp/IP
如果使用gbit仪态网,vender-specific 提高是系统会有最好的效果.
共享文件系统
通常情况下, 裸设备在unix,逻辑驱动器在windows上
各个节点同时对共享文件系统进行访问
Cluser software
为了各个节点之间的通讯的软件.不同的操作系统不同的软件,unix 由产商提高这个软件,
如果是windows,由oracle提供
Cluser manager
包括gv视图,管理cluster的信息,控制cluser的成员.
节点monitor组建监控node的状态
OSD cluserware: 控制interconnect的信息;为rac传输信息和数据库
Rac 的组件:
一个rac数据库包括 数据库文件和一个到多个实例
磁盘访问
控制文件,数据文件,online redo log,quorum disk on some os,配置数据,spfile,配置信息,服务器参数文件
gsd进程
这个用来coordinate 其它的工具来管理rac 数据库和实例
一个gsd进程支持一个节点上的所有的数据库
gsd不需要配置
lmno: global enqueue service monitor
监控cluser的global enqueues 和资源
执行恢复操作
lmd: global enqueue service daemon
管理对global enqueues和资源的访问
处理对其它实例的资源请求
LMS: global cache service processes
管理在cluster中对data block的访问
传输block的images在不同的实例的buffercache中 (cache fusion)
LCK进程
辅助lms,管理实例的资源和cross-instance的call,这个call与协调访问字典和row cache对象有关系
诊断进程:
二.安装和转换
安装
1. 使用interconnect连接好cluser
2. 安装和配置osd cluserware
3. 确保所有的节点都可以访问shared disk
4. 创建需要的文件系统或分区
gsd
gsd配置文件必须identified为了完成一个rac的安装
当用dbca创建数据库的时候,gsd必须在运行
如果是手工建库或者是从8i升级,那么必须在每个节点手工的启动gsd.
Gsd配置文件
Srvconfig –init 初试化gsd配置文件
把一个single 实例转变成rac
1. 配置硬件
2. 评估表空间和log文件
3. 创建共享文件系统或裸设备
4. 从旧的数据库中取数据出来
5. 安装基于os的cluster 软件
6. 安装rac选项
7. 创建数据库
8. 把数据从旧数据库装入到新数据库
9. 调整数据库
10. 启动数据库
配置硬件:
1. 安装和测试cluster的interconnect
2. 确保每个节点都可以访问共享磁盘
评估表空间和log文件的需求
创建共享文件系统和裸设备
1. 控制文件的copy,数据文件,log member的一个成员
2. spfile
从旧的数据库中取data
1. rman
2. exp
安装osd和rac
创建db
把数据装入到新的db中
调整参数
启动数据库
三.管理和配置工具
GSD管理
启动gsd
server control 工具
srvctl
管理rac环境
管理cluser的数据库配置信息
提供cluser的数据库管理命令
需要gsd在运行
srvctl命令的用法
可以添加和删除cluster db,
可以添加和删除一个rac中的实例
可以rename一个实例
可以移动一个实例
可以为一个rac set和unset 环境
可以为一个实例 set和unset环境
rac的参数文件
可以继续使用client-side的初始化参数文件
可以使用一个spfile为所有的实例
这个spfile在共享文件系统上.
可以使用alter system命令改变所有的实例的参数.
Sid=’*’
* 表示所有的实例
四.可扩展性和cache fusion
可扩展性的级别
硬件
os
db
app
oracle net srvice的负债均衡
客户端的负责均衡
connection的负债均衡
自适应的并行查询
Cache Fusion
提供传输的扩展性
在实例间传输block 的image
跟踪资源的当前位置和状态
每个实例的sga的目录结构中保存有资源信息
cache fusion 的模型
Global resoure directory
由global cache service 来管理
记录
资源的模式
资源的角色
block在实例中的状态
在各个活动的节点发布资源的master
重新发布master在有必要的时候,例如实例的启动和关闭
global cache service 的资源模式
三种
null (默认的)
share(s) (查询)
exclusive(x) (可以改变block的内容,其它的实例就是null mode)
资源的角色
local 第一次请求资源的初试模式;只有一个实例可以有这个block 的dirty copy
global
在一个block在多于一个实例中变dirty了. Local 就变成了global
block只能由slobal cache service写到磁盘中
Cache fusion block 的transfer
例如有 abcd四个节点.
global cache service : gcs
1.
Read with no transfer
如果c节点需要向共享磁盘文件上读一个block,
那么它向global cache service 发送请求,
这个时候请求被定向到节点d,d是这个block的master (每个资源都有master)
gcs 把资源授权为 share mode 和local role,在目录中记录下了他的状态(目录在节点d),
然后通知c,c 把这个资源从null share
c开始i/o,现在c有了这个block 以s模式 (从磁盘文件读)
2.
read to write transfer
b也要这个block,并且不仅是读,而且还要改变它的内容.
B向d (这个block的mater)gcs发出请求,
Gcs向c发出请求,要求c把这个block 给b
C 把block 给b,
B收到了,告诉gcs,,现在b可以修改这个block了
3.
Write to write transfer
A向d节点的gcs发出请求,
Gcs告诉b节点放心他的x 锁,并且把当前的image传到a,
如果这个请求没有完成,就会方到gcs的队列里面了
b把这个block传到a,这个时候,要写log,强制log flush,把模式变成n
发送到a,并且告诉它这这个exclusive的资源可以用了
a收到了这个block的image,会通知gcs 并且告诉它block的status是x
这个时候,b不能对这个block做操作,虽然在它的buffer cache中.它还有这个block的copy.
4.
Write to read transfer
C要读 这个block,先向d (master)发出请求
Gcs要求a把它传输到c,
A接受到请求,完成它的工作,这可能会在a 写log 和log flush在发送这个block之前.
A会把它的x 锁降低到s (share)模式,
C把从a收到的block 的scn取出来,建设成一个资源assumption 信息为gcs,更新global resource directory
可以关闭Cache fusion,设置参数gc_files_to_locks
这样就向8i 的ops一样,别的节点要访问数据快,必须等待别的节点提交,写回数据文件中.
Cache fusion,就是从别的实例中读buffer
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7316690/viewspace-201695/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7316690/viewspace-201695/